云容器引擎各region將逐步切換至Helm v3。模板管理不再支持Helm v2版本的模板,若您在短期內不能切換至Helm v3,可通過Helm v2 客戶端在后臺管理v2版本的模板。
前提條件
在CCE中創建的Kubernetes集群已對接kubectl,具體請參見使用kubectl連接集群。
注意事項
CCE當前會嘗試轉換v2模板實例到v3模板實例。若在后臺操作Helm v2模板實例,刪除實例后,發現CCE 模板管理頁面仍有實例信息,單擊刪除即可。
安裝Helm v2
本文以Helm v2.17.0為例進行演示。
如需選擇其他合適的版本,請訪問。
步驟 1 在連接集群的虛擬機上下載Helm客戶端。
wget //get.helm.sh/helm-v2.17.0-linux-amd64.tar.gz
步驟 2 解壓Helm包。
tar -xzvf helm-v2.17.0-linux-amd64.tar.gz
步驟 3 將helm拷貝到系統path路徑下,以下為/usr/local/bin/helm。
mv linux-amd64/helm /usr/local/bin/helm
步驟 4 因為Kubernetes APIServer開啟了RBAC訪問控制,所以需創建tiller使用的service account:tiller并給其分配cluster-admin這個集群內置的ClusterRole。按如下創建tiller的資源帳戶。
vim tiller-rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tiller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
步驟 5 部署tiller資源帳戶。
kubectl apply -f tiller-rbac.yaml
步驟 6 初始化Helm, 部署tiller的Pod。
helm init --service-account tiller --skip-refresh
步驟 7 查看狀態。
kubectl get pod -n kube-system -l app=helm
回顯如下
NAME READY STATUS RESTARTS AGE
tiller-deploy-7b56c8dfb7-fxk5g 1/1 Running 1 23h
步驟 8 查看helm版本。
# helm version
Client: &version.Version{SemVer:"v2.17.0", GitCommit:"a690bad98af45b015bd3da1a41f6218b1a451dbe", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.17.0", GitCommit:"a690bad98af45b015bd3da1a41f6218b1a451dbe", GitTreeState:"clean"}
安裝Helm模板chart包
CCE提供的模板不能滿足要求時,可下載模板的chart包進行安裝。
在//github.com/helm/charts的stable目錄中查找您需要的chart包,下載后將chart包上傳至節點。
- 下載并解壓已獲取的chart包,一般chart包格式為.zip。
unzip chart.zip
- 安裝Helm模板。
helm install aerospike/
- 安裝完成后,執行helm list查看已經安裝的模板實例狀態。
常見問題
- 執行Helm version時,提示如下錯誤信息:
Client:
&version.Version{SemVer:"v2.17.0",
GitCommit:"a690bad98af45b015bd3da1a41f6218b1a451dbe", GitTreeState:"clean"}
E0718 11:46:10.132102 7023 portforward.go:332] an error occurred
forwarding 41458 -> 44134: error forwarding port 44134 to pod
d566b78f997eea6c4b1c0322b34ce8052c6c2001e8edff243647748464cd7919, uid : unable
to do port forwarding: socat not found.
Error: cannot connect to Tiller
出現上述問題,說明未安裝socat,請執行如下命令安裝socat。
出現上述問題,說明未安裝socat,請執行如下命令安裝socat。
yum install socat -y
- socat已安裝,執行Helm version時,提示如下錯誤信息:
test@local:~/k8s/helm/test$ helm version
Client: &version.Version{SemVer:"v3.3.0", GitCommit:"021cb0ac1a1b2f888144ef5a67b8dab6c2d45be6", GitTreeState:"clean"}
Error: cannot connect to Tiller
Helm模板從“.Kube/config”中讀取配置證書和kubernetes進行通訊,出現上述錯誤信息說明kubectl配置有誤,請重新對接kubectl,具體請參見使用kubectl連接集群。
- 對接云存儲后,存儲未創建成功。
出現上述問題可能是創建的pvc中annotation字段導致的,請修改模板名稱后再次進行安裝。
- 如果kubectl沒有配置好,helm install時會出現如下報錯:
[root@prometheus-57046 ~]# helm install prometheus/ --generate-name
WARNING: This chart is deprecated
Error: Kubernetes cluster unreachable: Get "//localhost:8080/version?timeout=32s": dial tcp [::1]:8080: connect: connection refused
解決辦法: 給節點配置kubeconfig,配置方法請參見使用kubectl連接集群。