Helm入门文档和介绍

    技术2022-08-01  74

    概要

      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 系统进行安装。

    将包解压后放置后的结构如下图: 配置环境变量: 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

    本来想写这块的使用,没想到官方讲解的很详细。不过这里列一下模版操作的坑,如下截图:

    Processed: 0.035, SQL: 9