Helm入门文档和介绍

概要

  helm 作为kubernetes 的包管理。

  • github地址
  • Helm hub

主要概念

  • Helm
      是一个命令行下的客户端工具
      Helm 通过kubernetes的Api 渲染 模版和通讯
      Helm 可以在你想要的任务地方运行
  • Tiller
      Tiller是Helm的服务端,部署在Kubernetes的集群中。接收来自Helm的请求,
      并根据Chart生成K8s的部署文件(Release),然后提交给K8s去创建应用。
      Tiller还提供了Release的升级,删除,回滚的功能性。
  • Charts
      Helm的软件包,采用Tar格式。
  • Repoistory
      Helm的软件仓库,提供一系列Chart软件包供用户下载使用。
  • Release
      使用helm install 命令在k8s集群部署的Chart成为Relese;

安装

包安装

  前往the official releases page. 去下载符合系统的安装包,本次采用macos 系统进行安装。

  • 将包解压后放置后的结构如下图:
    Helm入门文档和介绍_第1张图片
  • 配置环境变量:
vi ~/.bash_profile
# 按照你的路径配置
source ~/.bash_profile

安装Tiller

  • 执行如下命令进行安Tiller到k8s的集群中
helm init
  • 变更仓库地址为阿里仓库
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.9  --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

注意: v2.16.9 变更为你对应的helm版本

  • 查看k8s民命空间为kube-system中的tiller状态
kubectl get po -n kube-system |grep tiller
  • 创建 Kubernetes 的服务帐号和绑定角色
kubectl create serviceaccount --namespace kube-system tiller

kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
  • 给 Tiller 的 deployments 添加刚才创建的 ServiceAccount
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
  • 查看 Tiller deployments 资源是否绑定 ServiceAccount
kubectl get deploy -n kube-system tiller-deploy -o yaml | grep serviceAccount
  • 查看 Tiller 是否安装成功
helm version 

  安装成功后可以使用helm install xxx 进行安装helm的应用。

  注意: 如果想要移除tiller 则可以执行如下命令:

kubectl delete deployment tiller-deploy --namespace kube-system

# 或者
helm reset

命令使用

  • helm 创建chart模版
helm create helm_test

生成的结构如下:

.
├── Chart.yaml
├── charts
├── templates
│   ├── NOTES.txt
│   ├── _helpers.tpl
│   ├── deployment.yaml
│   ├── ingress.yaml
│   ├── service.yaml
│   ├── serviceaccount.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml
  • helm 打包Chart模版
helm package helm_test
  • helm search 查找可用的 Chart 模板
helm search nginx
  • helm inspect 查看指定 Chart 的基本信息
helm inspect stable/nginx-ingress
  • helm 回滚版本
# helm rollback [RELEASE] [REVISION]
helm rollback happy-panda 1

Chart模版介绍和使用

Chart结构介绍

.
├── Chart.yaml                      # Chart 信息的 YAML 文件, 包括 Chart 的版本、名称等
├── charts                          # 存放子Subchart , 是一个很棒的存在
├── templates                       # 该目录下存放 Chart 所有的 K8s 资源定义模板
│   ├── NOTES.txt                   # 一段简短使用说明的文本文件,用于安装 Release 后提示用户使用
│   ├── _helpers.tpl                # 存放可重用的模板片段
│   ├── deployment.yaml
│   ├── ingress.yaml
│   ├── service.yaml
│   ├── serviceaccount.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml                     # 当前 Chart 的默认配置的值. 注意:也可以使用 helm install --values=myvals.yaml nginx 来指定特定的配置文件

Chart使用

官方:Chart Template 的 使用的 DOCS

本来想写这块的使用,没想到官方讲解的很详细。不过这里列一下模版操作的坑,如下截图:
Helm入门文档和介绍_第2张图片

你可能感兴趣的:(Linux--运维)