ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Helm charts

2021-06-30 11:59:06  阅读:242  来源: 互联网

标签:-- 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 还能完成版本控制

20201007171713

  1. 核心术语:

    • Chart:一个 helm 程序包
    • Repository:Charts 仓库,https/http 服务器
    • Release:特定的 Chart 被赋予克制化信息后,部署于目标集群上的一个实例
  2. 程序架构:

    • helm:客户端,管理本地的 Chart 仓库,管理 Chart, 与 Tiller 服务器交互,发送 Chart,实例安装、查询、卸载等
    • Tiller:服务端,可运行在 k8s 之外但及其麻烦,接收 helm 发来的 Charts 与客制化信息,生成 relase 并完成部署

部署与使用

  1. 安装 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/
    
  2. 安装 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
    
  3. 给 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
    
  4. 验证 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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有