近期阿里云容器服務Kubernetes版(ACK)新建集群中安裝的Helm已升級至v3版本。由于Helm v2 Tiller服務端在社區一直存在已知的安全問題,攻擊者可以通過tiller在集群內安裝未經授權的應用,因此推薦您升級至Helm v3版本。
影響范圍
首先執行命令kubectl get deploy -n kube-system tiller-deploy查看是否存在tiller deployment。如果存在,判斷以下條件:
ACK集群訪問密鑰(kubeconfig)是否提供給外部客戶使用。
阿里云容器服務控制臺是否提供給外部客戶登錄訪問。
ACK集群是否應用在多租戶場景下,且有用戶之間權限隔離的情況存在。
如果滿足以上任何一點,建議您將安裝的Helm升級到Helm v3系統。
未在上述范圍或者暫時無法升級Helm v3
對于不在影響范圍內或暫時無法升級Helm v3的用戶可以手動升級Helm v2 tiller到最新版本,以獲取更加強健的安全性保障。升級方式如下。
執行以下命令。
helm init --tiller-image registry.cn-hangzhou.aliyuncs.com/acs/tiller:v2.16.3 --upgrade
待tiller健康檢查通過后,執行命令helm version查看版本升級情況。
這里只會升級 Helm服務端。客戶端在各平臺的最新版下載地址,請參見下載地址。
未在上述范圍內的用戶,或者暫時無法升級Helm v3的用戶,將Tiller升級到最新版即可,不需要再執行下面的操作,后續可以根據自己需求逐步地遷移至Helm v3。
前置檢查
升級Helm v2之前,請進行前置檢查。
首先判斷自己集群內是否含有tiller。執行命令kubectl get deploy -n kube-system tiller-deploy查看是否存在此deployment。
如果存在,執行命令helm ls -a查看是否已經安裝了應用。
如果安裝了應用,需要先刪除應用,因為Helm v2與Helm v3數據不兼容。
重要Helm社區提供了Helm v2 to Helm v3插件,但是請慎重使用,以免出現數據丟失情況。Helm v2 to Helm v3插件信息,請參見helm-2to3。
升級步驟
確保前置檢查通過。
執行命令kubectl delete deploy tiller-deploy -n kube-system。
下載helm v3客戶端安裝新的應用。
重要安裝新的應用前:
需要將原有Helm v2安裝的應用使用Helm v3重裝一遍,請評估對業務的影響。
重裝應用會導致原有數據丟失,請注意數據備份與保護。