什么是 Helm
在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。况且随 着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本 管理和控制,很大程度上简化了 Kubernetes 应用的部署和管理
Helm 本质就是让 K8s 的应用管理(Deployment,Service(svc) 等 ) 可配置,能动态生成。通过动态生成 K8s 资源清单文件(deployment.yaml,service.yaml)。然后调用 Kubectl 自动执行 K8s 资源部署
Helm 是官方提供的类似于 YUM 的包管理器,是部署环境的流程封装。Helm 有两个重要的概念:chart 和 release
- chart 是创建一个应用的信息集合,包括各种 Kubernetes 对象的配置模板、参数定义、依赖关系、文档说明等。chart 是应用部署的自包含逻辑单元。可以将 chart 想象成 apt、yum 中的软件安装包
- release 是 chart 的运行实例,代表了一个正在运行的应用。当 chart 被安装到 Kubernetes 集群,就生成一个 release。chart 能够多次安装到同一个集群,每次安装都是一个 release
Helm 包含两个组件:Helm 客户端和 Tiller 服务器,如下图所示
- Helm 客户端负责 chart 和 release 的创建和管理以及和 Tiller 的交互。
- Tiller 服务器运行在 Kubernetes 集群中,它会处理 Helm 客户端的请求,与 Kubernetes API Server 交互。
Helm 部署
helm分为( 客户端 和 服务端)
Helm 由客户端命令行工具 helm 和服务端 tiller 组成,Helm 的安装十分简单。
客户端安装(helm)
1 2 3 4 5 6 7 |
#下载 helm 命令行工具到 master 节点 node1 的 /usr/local/bin 下,这里下载的 2.13. 1版本: ntpdate ntp1.aliyun.com wget https://storage.googleapis.com/kubernetes-helm/helm-v2.13.1-linux-amd64.tar.gz tar -zxvf helm-v2.13.1-linux-amd64.tar.gz cd linux-amd64/ cp helm /usr/local/bin/ chmod a+x /usr/local/bin/helm |
服务端安装(tiller)
因为 Kubernetes APIServer 开启了 RBAC 访问控制,所以需要创建 tiller 使用的 service account: tiller 、并分配合适的角色给它。
这里简单起见直接分配cluster-admin 这个集群内置的 ClusterRole 给它。
创建前先导入tiller镜像,这个不好下载,需要科学上网。本文提供下载地址 传送门 提取码:uyib
创建 rbac-config.yaml 文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
apiVersion: v1 kind: ServiceAccount metadata: name: tiller namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: tiller roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: tiller namespace: kube-system |
1 2 3 |
kubectl create -f rbac-config.yaml #执行 helm init --service-account tiller --skip-refresh |
tiller 默认被部署在 k8s 集群中的 kube-system 这个 namespace 下
1 |
kubectl get pod -n kube-system |
1 2 |
#查看helm客户端和服务端版本 helm version |
- 本文固定链接: https://www.yoyoask.com/?p=2406
- 转载请注明: shooter 于 SHOOTER 发表