网站首页 > 开源技术 正文
Helm
Helm是Kubernetes 的首选包管理工具。 Helm Chart为Kubernetes YAML清单文件提供了模板化语法。 一个chart在一个集群可以安装多次,每次安装会创建新的Release。 Repository类似与docker hub,用于存放和共享charts。
- 安装Helm
- 脚本安装
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
- 二进制版本安装
curl -SL -o helm-v3.6.3-linux-arm64.tar.gz
https://get.helm.sh/helm-v3.6.3-linux-arm64.tar.gz
tar -zxvf helm-v3.6.3-linux-arm64.tar.gz
mv linux-arm64/helm /usr/local/bin/helm
Spinnaker
Spinnaker意为三角帆,可以配合jenkins等CI工具来实现持续部署(CD)。
Spinnaker由多个微服务组成:Deck是WebUI,Gate是API网关,Orca用于流水线编排,Clouddriver适配云服务商并提供缓存与索引部署资源,Front50用于持久化应用/流水线/项目/通知的元数据,Rosco负责产生虚拟机镜像,Ignor可以与其它持续集成应用结合来触发流水线,Echo作为事件总线可以发送SMS/email/Slack通知并接收网络回调(webhooks),Fiat作为鉴权服务,Kayenta提供自动化的金丝雀分析,Keel负责人工介入的交付,Halyard作为配置服务,管理这些独立服务的生命周期,但仅在Spinnaker启动、更新、回滚时交互。
注意Spinnaker的硬件要求较高(4核16G内存),希望树莓派5快点出来,能支持16G甚至32G内存
- 安装Halyard
Halyard意为帆的升降索,可以配置、安装/升级Spinnaker。 可以直接使用安装脚步安装,也可以运行docker镜像.
# 下载安装脚本,不使用HTTPS,避免证书认证
curl -O http://raw.githubusercontent.com/spinnaker/halyard/master/install/debian/InstallHalyard.sh
# 安装
sudo bash InstallHalyard.sh
# 检查安装是否成功
hal -v
# 卸载
# hal deploy clean
# sudo ~/.hal/uninstall.sh
- 选择云服务商 Spinnaker支持多个云服务商,比如国内的AKS,国外的AWS, AZure, GAE等.自建的Kubernetes也支持. 使用Kubernetes时需要创建ServiceAccount,并设置对应的角色.
# https://spinnaker.io/docs/setup/install/providers/kubernetes-v2/
hal config provider kubernetes enable
hal config provider kubernetes account add default
- 选择部署用途
# 分布式,用于大资源池、高可用场景
# hal config deploy edit --type distributed --account-name default
# 默认本地包,用于小规模部署
hal config deploy edit --type localdebian
# 本机源码安装(需先安装git, curl, netcat, redis-server, jdk, node, yarn等),适用于Spinnaker开发人员
# hal config deploy edit --type localgit --git-origin-user=iMinusMinus
# hal config version edit --version branch:upstream/master
- 配置外部存储
Spinnaker依赖外部存储来持久化应用设置和配置的流水线,支持的外部存储有Azure Storage, Google Cloud Storage, Oracle Object Storagre, MinIO, Redis(不推荐在生产环境使用)。
hal config storage edit --type redis
# MinIO是一个兼容AWS S3协议的高性能、云原生、开源的对象存储服务
# https://spinnaker.io/docs/setup/install/storage/minio/
# hal config storage edit --type s3
- 部署Spinnaker
# 列出版本
hal version list
# 选择版本
hal config version edit --version $VERSION
# 部署Spinnaker
hal deploy apply
# 启动deck
hal deploy connect
# 浏览器访问localhost:9000,或使用8084端口访问网关
使用Helm安装Spinnaker
- Halyard方式Spinnaker的helm包本身就是对之前几个步骤的固化:安装halyard、配置存储、设置镜像仓库和云服务提供商(kubernetes),然后安装。详细细节可参考spinnaker/templates/configmap/halyard-config.yml。
helm repo add stable https://charts.helm.sh/stable
# 访问https://hub.helm.sh/charts,了解哪些仓库有spinnaker
# https://artifacthub.io/packages/helm/opsmx/spinnaker
helm repo add opsmx https://helmcharts.opsmx.com/
helm search repo spinnaker
helm repo update
# Error: Kubernetes cluster unreachable: Get "https://localhost:6443/version?timeout=32s": x509: certificate signed by unknown authority
# 证书默认域名为:k3s, kubernetes, kubernetes.default, kubernetes.default.svc, kubernetes.default.svc.cluster.local, localhost;默认IP: 127.0.0.1,安装时的ip
# 访问https://k3s:6443,然后导出证书为k3s.pem(base64编码)
# cat k3s.pem >> /etc/pki/tls/certs/ca-bundle.trust.crt
# helm install stable/spinnaker --generate-name --kubeconfig /etc/rancher/k3s/k3s.yaml
# Error: template: spinnaker/charts/minio/templates/deployment.yaml:210:20: executing "spinnaker/charts/minio/templates/deployment.yaml" at <(not .Values.gcsgateway.enabled) (not .Values.azuregateway.enabled) (not .Values.s3gateway.enabled) (not .Values.b2gateway.enabled)>: can't give argument to non-function not .Values.gcsgateway.enabled
# 此错误貌似是helm和go版本不匹配导致,先禁用minio
# helm install stable/spinnaker --generate-name --kubeconfig /etc/rancher/k3s/k3s.yaml --set minio.enabled=false
# halyard默认镜像地址为gcr会拉取镜像失败,redis默认使用8G内存!可以使用"--set"覆盖默认值,也可以指定文件("-f values.yaml")覆盖默认值
helm install stable/spinnaker --generate-name --kubeconfig /etc/rancher/k3s/k3s.yaml --create-namespace --set redis.enabled=false,persistence.size=1Gi,halyard.image.repository=gcr.azk8s.cn/spinnaker-marketplace/halyard
- Kebernetes Operator方式
# 创建目录并下载资源
mkdir -p spinnaker-operator && cd spinnaker-operator
bash -c 'curl -L https://github.com/armory/spinnaker-operator/releases/latest/download/manifests.tgz | tar -xz'
# 安装/更新CRD(定制资源定义的版本偏低,应当由"apiextensions.k8s.io/v1beta1"升级到"apiextensions.k8s.io/v1")
kubectl apply -f deploy/crds/ # 创建新的命名空间并部署spinnkaer-operator, halyard。以及对应的角色、服务账号
kubectl create ns spinnaker-operator
# kubectl -n spinnaker-operator apply -f deploy/operator/cluster
kubectl -n spinnaker-operator apply -f deploy/operator/basic
# 创建新的命名空间并安装spinnaker(spinsvc)
kubectl create ns spinnaker
kubectl -n spinnaker apply -f deploy/spinnaker/basic
# 查看安装进度
kubectl -n spinnaker get spinsvc spinnaker -w
上述的安装方式也可以使用如下方式替代:
# https://operatorhub.io/operator/spinnaker-operator
# 下载install.sh并执行,此时会往k8s安装定制资源描述(crds.yaml,类似于XML文件的DTD/schema)、创建命名空间/服务账号/集群角色/部署olm(olm.yaml)
curl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.18.3/install.sh | bash -s v0.18.3
kubectl create -f https://operatorhub.io/install/spinnaker-operator.yaml
# 在operators命名空间下查看ClusterServiceVersion/ClusterServiceVersionSpec
kubectl get csv -n operators
k3s下Helm安装Chart
k3s会将"/var/lib/rancher/k3s/server/manifests"目录下的的任何Kubernetes清单将以类似kubectl apply的方式自动部署到K3s。
curl -fsSL -o helm-charts.zip https://codeload.github.com/helm/charts/zip/refs/heads/master
unzip helm-charts.zip
# helm fetch stable/spinnaker ## 下载spinnaker-*.tar.gz到当前目录
# 编写 spinnaker相关的helm crd放到/var/lib/rancher/k3s/server/manifests/spinnaker.yaml, /var/lib/rancher/k3s/server/static/charts/spinnaker-{version}.tar.gz
# helm package charts-master/stable/spinnaker
# Error: found in Chart.yaml, but missing in charts/ directory: redis, minio
helm package charts-master/stable/spinnaker -u --version 2.2.6 -d /var/lib/rancher/k3s/server/static/charts/
cat > /var/lib/rancher/k3s/server/manifests/spinnaker.yaml << "EOF"
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: spinnaker
namespace: spinnaker
spec:
chart: https://%{KUBERNETES_API}%/static/charts/spinnaker-2.2.6.tgz
EOF
猜你喜欢
- 2024-10-18 血与泪的总结,使用Helm安装spinnaker到k8s集群
- 2024-10-18 管理需要大规模部署的微服务:您需要Spinnaker
- 2024-10-18 使用 Spinnaker 部署应用程序(spinnaker安装)
- 2024-10-18 Spinnaker Support收购多布勒咨询公司
- 2024-10-18 澳洲拼写比赛9岁华裔女童夺冠:爱读小说勤练习
- 2024-10-18 85岁老太拒绝平凡退休生活,她尝试各种极限运动
- 2024-10-18 英老太拒绝平凡退休生活,丈夫死后1年,她尝试各种极限运动
- 2024-07-11 潜水表里的王者——青铜款(潜水表是什么)
- 2024-07-11 Spinnaker强化Kubernetes自动化部署,不再需要操作复杂Manifests
- 2024-07-11 Sipcam Agro在美国推出新款甜菜杀菌剂Miramar(甲基硫菌灵)和Spinnaker
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)