标签:-- charts helm master Helm tiller kube root
helm 是一个类似 yum 用来简化部署 k8s 上容器的程序,虽然 helm 本身并不存放任何镜像,镜像依旧存储在各个镜像仓库如 docker hub 中.helm 仓库用来存储清单文件 charts,相对的 charts 需要在正式运行前赋予相关环境变量值以适用于不同的客制化信息,所以 helm 会从仓库中获取 charts 并存放在本地,之后创建容器时则先以本地 charts 为准,如果本地没有才会在仓库中寻找相关 charts,并且 charts 在部署以后便称之为 release.并且 helm 并不与 k8s 的 APIserver 直接交互,他们之间还有一个中间层 Tiller,再由 Tiller 与 APIserver 交互完成创建容器的操作,所以严格意义上来讲 helm 是 Tiller 的客户端.操作 helm 与 kubectl 类似通过命令行即可实现,同时 helm 还能完成版本控制
-
核心术语:
- Chart:一个 helm 程序包
- Repository:Charts 仓库,https/http 服务器
- Release:特定的 Chart 被赋予克制化信息后,部署于目标集群上的一个实例
-
程序架构:
- helm:客户端,管理本地的 Chart 仓库,管理 Chart, 与 Tiller 服务器交互,发送 Chart,实例安装、查询、卸载等
- Tiller:服务端,可运行在 k8s 之外但及其麻烦,接收 helm 发来的 Charts 与客制化信息,生成 relase 并完成部署
部署与使用
-
安装 helm
[root@master-0 ~]# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz [root@master-0 ~]# tar -zxvf helm-v2.9.1-linux-amd64.tar.gz [root@master-0 ~]# cp linux-amd64/helm /usr/local/bin/
-
安装 Tiller 可以通过
helm init
来安装 Tiller,第一次进行 helm init 的时候会联系 APIserver, 所以会获取 kube/config 的配置文件[root@master-0 .kube]# pwd /root/.kube [root@master-0 .kube]# ls cache config http-cache [root@master-0 .kube]# helm init # 国内可以使用如下站点 [root@master-0 .kube]# helm init --upgrade --tiller-image registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
-
给 Tiller 授权
[root@master-0 .kube]# kubectl get deployment --all-namespaces NAMESPACE NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE kube-system tiller-deploy 1 1 1 1 1h [root@master-0 .kube]# kubectl create serviceaccount --namespace kube-system tiller [root@master-0 .kube]# kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller [root@master-0 .kube]# kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}' deployment.extensions "tiller-deploy" patched [root@master-0 .kube]# kubectl get deploy --namespace kube-system tiller-deploy --output yaml|grep serviceAccount serviceAccount: tiller serviceAccountName: tiller
-
验证 Tiller 是否安装成功
[root@master-0 ~]# kubectl -n kube-system get pods|grep tiller tiller-deploy-6d68f5c78f-nql2z 1/1 Running 0 5m [root@master-0 ~]# helm version Client: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}
官方可用的Chart列表: https://hub.kubeapps.com/
标签:--,charts,helm,master,Helm,tiller,kube,root 来源: https://blog.csdn.net/FR13DNS/article/details/118229151
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。