近期阿里雲Container ServiceKubernetes版(ACK)建立叢集中安裝的Helm已升級至v3版本。由於Helm v2 Tiller服務端在社區一直存在已知的安全問題,攻擊者可以通過tiller在叢集內安裝未經授權的應用,因此推薦您升級至Helm v3版本。
影響範圍
首先執行命令kubectl get deploy -n kube-system tiller-deploy查看是否存在tiller deployment。如果存在,判斷以下條件:
ACK叢集存取金鑰(kubeconfig)是否提供給外部客戶使用。
阿里雲Container Service控制台是否提供給外部客戶登入訪問。
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重裝一遍,請評估對業務的影響。
重裝應用會導致原有資料丟失,請注意資料備份與保護。