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 |
永久刪除鏡像
# helm del --purge plinking-dolphin |