Helm 可以理解为 Kubernetes 的包管理工具,可以方便地发现、共享和使用为Kubernetes构建的应用,它包含几个基本概念
Chart:一个 Helm 包,其中包含了运行一个应用所需要的镜像、依赖和资源定义等,还可能包含 Kubernetes 集群中的服务定义,类似 Homebrew 中的 formula,APT 的 dpkg 或者 Yum 的 rpm 文件,
Release: 在 Kubernetes 集群上运行的 Chart 的一个实例。在同一个集群上,一个 Chart 可以安装很多次。每次安装都会创建一个新的 release。例如一个 MySQL Chart,如果想在服务器上运行两个数据库,就可以把这个 Chart 安装两次。每次安装都会生成自己的 Release,会有自己的 Release 名称。
Repository:用于发布和存储 Chart 的仓库。
将helm安装在k8s集群的master上
下载helm到主k8s集群的master上
#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/ |
创建配置文件
因为Kubernetes APIServer开启了RBAC访问控制,所以需要创建tiller使用的service account: tiller并分配合适的角色给它。 详细内容可以查看helm文档中的[Role-based Access Control](https://docs.helm.sh/using_helm/#role-based-access-control)。 这里简单起见直接分配 cluster-admin 这个集群内置的 ClusterRole 给它。创建 rbac-config.yaml 文件:
#vim rbac-config.yaml |
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-syste |
执行配置文件,创建ServiceAccount
#kubectl apply -f rbac-config.yaml |
部署tiller
#docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.13.1 |
#helm init --service-account tiller --skip-refresh --tiller-image=registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.13.1 |
查看tiller信息
#helm version |
查看tiller pod状态
#kubectl get pod -n kube-system -l app=helm |
更查helm仓库
#helm repo update |
查看helm所需要的镜像
# helm search |
使用helm查看redis镜像
# helm search redis |
使用helm安装redis
#helm install stable/redis-ha |
查看helm所安装的镜像
# helm list --all |
卸载helm 所安装的redis
# helm delete plinking-dolphin |