Helm charts

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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Helm Charts 是 Kubernetes 的一种包管理工具,用于将 Kubernetes 应用程序的部署、配置和管理打包成可重复使用的包。使用 Helm Charts 可以大大简化 Kubernetes 应用程序的部署和管理。 以下是 Helm Charts 的学习文档: 1. Helm 官方文档:https://helm.sh/docs/ Helm 官方文档提供了 Helm 的概述、安装、使用、开发等方面的详细介绍,是学习 Helm 的最佳资源。 2. Helm Charts 官方文档:https://helm.sh/docs/topics/charts/ Helm Charts 官方文档介绍了 Helm Charts 的结构、模板、依赖关系、值文件等方面的内容,可以帮助你了解如何编写和使用 Helm Charts。 3. Kubernetes 官方文档:https://kubernetes.io/docs/home/ Kubernetes 官方文档提供了 Kubernetes 的概述、安装、使用、开发等方面的详细介绍,是学习 Kubernetes 的最佳资源。 4. Helm Tutorials:https://helm.sh/docs/topics/tutorials/ Helm Tutorials 提供了一系列的教程,包括如何使用 Helm 安装应用程序、如何编写自己的 Helm Charts 等方面的内容。 5. Helm Hub:https://hub.helm.sh/ Helm Hub 是一个 Helm Charts 的社区库,包含了大量的 Helm Charts,可以帮助你快速找到并部署所需要的应用程序。 6. Helm Best Practices:https://helm.sh/docs/chart_best_practices/ Helm Best Practices 提供了一系列的最佳实践,包括如何编写高质量的 Helm Charts、如何管理 Helm Charts 的版本等方面的内容,可以帮助你编写更好的 Helm Charts。 总之,学习 Helm Charts 需要掌握 Helm 的基本概念和使用方法,熟悉 Kubernetes 的基本概念和使用方法,并且有一定的编写经验。通过不断地学习和实践,你可以成为一个熟练的 Helm Charts 开发者。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值