Helm V2 の Tiller には既知のセキュリティ脆弱性があり、攻撃者がクラスターに不正なアプリケーションをインストールできる可能性があります。このリスクを排除するため、Helm V3 にアップグレードしてください。
影響範囲
以下のコマンドを実行して、Tiller デプロイメントの有無を確認します。
kubectl get deploy -n kube-system tiller-deploy
Tiller デプロイメントが存在する場合は、次の条件を確認してください。
- クラスターの kubeconfig が外部ユーザーと共有されている。
- ACK コンソールへの外部アクセスが許可されている。
- クラスターがマルチテナントモードで動作しており、ユーザー権限の隔離が行われている。
いずれかの条件に該当する場合は、Helm V3 にアップグレードしてください。
代替手段:Tiller のみをアップデートする
クラスターが影響を受けていない場合、または Helm V3 へのアップグレードができない場合は、代わりに Tiller を最新バージョンにアップデートしてください。
-
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 V3 にアップグレードする前に、クラスターの状態を確認してください。
- kubectl get deploy -n kube-system tiller-deploy を実行して、Tiller がインストールされているかどうかを確認します。
- Tiller が存在する場合は、インストール済みのアプリケーションを一覧表示するために helm ls -a を実行します。
-
アプリケーションが存在する場合は、削除してください。Helm V2 と V3 のデータ形式は互換性がありません。
重要 Helm コミュニティは、V2 の構成およびリリースを V3 に移行するためのhelm-2to3 プラグインを提供しています。データ損失を防ぐため、このプラグインは慎重に使用してください。
操作手順
- 事前チェックを完了します。
- Tiller デプロイメントを削除します:kubectl delete deploy tiller-deploy -n kube-system。
-
Helm V3 クライアントをダウンロードし、アプリケーションを再インストールします。
重要アプリケーションを再インストールする前に、以下の点にご注意ください。
- Helm V2 でインストールしたアプリケーションは、Helm V3 を使用して再インストールする必要があります。ワークロードへの影響を評価してください。
- 再インストールによりデータ損失が発生します。事前にデータをバックアップしてください。