古い Kubernetes バージョンには、セキュリティと安定性の問題がある可能性があります。ACK Edge で新しい Kubernetes バージョンがサポートされている場合は、ACK Edge クラスターをこのバージョンにアップグレードすることをお勧めします。これは、クラスターの安全で安定した環境を確保し、新しいバージョンで提供される新機能を活用できるようにします。ACK Edge は、インプレースアップグレードを使用して ACK Edge クラスターをアップグレードします。このトピックでは、ACK Edge クラスターを更新するための手順と考慮事項について説明します。
ACK Edge クラスターをアップグレードする必要がある理由
セキュリティと安定性のリスクの軽減: セキュリティと安定性の脆弱性は、新しいバージョンで修正されます。古い Kubernetes クラスターを使用すると、ビジネスにセキュリティと安定性のリスクが生じる可能性があります。
テクニカルサポートとカスタマーサービスの向上: ACK Edge は、古い Kubernetes バージョンのセキュリティパッチや修復プログラムをリリースしなくなりました。さらに、ACK Edge は、古い Kubernetes バージョンのテクニカルサポートの品質を保証しません。新しい Kubernetes バージョンを使用すると、テクニカルサポートとカスタマーサービスが向上します。
新機能: ACK Edge は、機能と最適化が強化された新しいバージョンをリリースし、よりスムーズな開発と運用エクスペリエンスを提供します。
使用上の注意
ACK Edge クラスターは、1.18 から 1.24 までのバージョン間のクラスターアップグレードをサポートしています。ただし、現在の Kubernetes バージョンから次のバージョンにのみアップグレードできます。ACK Edge クラスターを以前の Kubernetes バージョンにロールバックすることはできません。
たとえば、ACK Edge クラスターの Kubernetes バージョンを 1.18 から 1.22 にアップグレードするには、最初にクラスターを 1.20 にアップグレードしてから、クラスターを 1.22 にアップグレードする必要があります。
説明Kubernetes 1.26 以降のバージョンに ACK Edge クラスターをアップグレードできます。 Kubernetes 1.26 から 1.30 にアップグレードするには、チケットを送信する ホワイトリストに追加申請してください。
ACK Edge クラスターでは、エッジノードプールとコントロールプレーンは最大 2 つのマイナーバージョンまで異なる可能性があります。たとえば、コントロールプレーンで Kubernetes 1.22 が実行されている場合、エッジノードプールでは少なくとも Kubernetes 1.20 が実行されている必要があります。そうでない場合、クラスターは期待どおりに動作しない可能性があります。
アップグレード手順、方法、および期間
アップグレード手順
準備
ACK コンソール にログオンします。 [クラスタ] ページで、スペックアップする ACK Edge クラスタ を選択し、 [バージョン] 列でクラスタの現在の Kubernetes バージョンと利用可能な新しいバージョンを確認します。
ACK Edge クラスター でサポートされている Kubernetes バージョンのリリースノートを読んで、さまざまな Kubernetes バージョンの機能について学習します。詳細については、「Kubernetes 1.30 の ACK Edge のリリースノート」をご参照ください。
クラスターをアップグレードする
クラスターのコントロールプレーンとクラウド上ノードプールを更新する前に、クラスターが事前チェックに合格する必要があります。事前チェックの結果で問題が報告された場合は、更新を開始する前に問題を修正する必要があります。
コントロールプレーンの更新: ローリングアップデートを使用して、kube-apiserver、kube-controller-manager、kube-scheduler などのコントロールプレーンコンポーネントを更新します。
クラウド上ノードプールの更新: クラウド上ノードプールを更新する場合は、ノードプールの kubelet とコンテナーランタイムを更新する必要があります。ノードプールはバッチで更新されます。
ノードプールは 1 つずつ更新されます。一度に更新されるノードプールは 1 つだけです。
ノードプール内のノードはバッチで更新されます。最初のバッチには 1 つのノードが含まれます。後続のバッチでは、ノードの数は 2 の累乗で増加します。バッチ更新ポリシーは、一時停止した更新を再開した後も適用されます。[ノードプールのアップグレード] ページで最大バッチサイズを指定できます。最大バッチサイズを 10 に設定することをお勧めします。
エッジノードプールの更新: 各エッジノードプール内のすべてのノードで、更新コマンドを 1 つずつ実行する必要があります。
更新期間
ACK Edge クラスター のコントロールプレーンを更新するには、約 5 分かかります。
クラウド上ノードプール内のノードはバッチで更新されます。各バッチ更新には約 5 分かかります。
エッジノードプールの場合、ノードプール内のすべてのノードで更新コマンドを実行する必要があります。したがって、エッジノードプールの更新期間は、ノードプール内のノードの数によって異なります。
更新を確認する
クラスターの Kubernetes バージョンが更新されているかどうか、ノードプールが期待どおりに実行されているかどうか、およびクラスター内の業務が期待どおりに実行されているかどうかを確認します。
手順
手順 1: コントロールプレーンを更新する
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。左側のウィンドウで、 を選択します。
[クラスターのアップグレード] ページで、[対象バージョン] を設定し、事前チェック をクリックして、更新における潜在的なリスクを検出します。
事前チェックが完了すると、[事前チェックの結果] セクションで事前チェックの結果を表示できます。
問題が表示されない場合は、クラスターが事前チェックに合格したことを示します。更新を開始できます。
問題が表示された場合でも、クラスターは引き続き期待どおりに実行され、クラスターの状態は変更されません。コンソールによって提供される提案に基づいて問題を修正できます。詳細については、「クラスターチェック項目とクラスターの問題を修正するための提案」をご参照ください。
説明クラスターで Kubernetes 1.20 以降が実行されている場合、事前チェックでは、クラスターで非推奨の API が使用されているかどうかがチェックされます。事前チェックの結果は参考情報であり、クラスターが更新可能かどうかを判断するものではありません。詳細については、「非推奨の API」をご参照ください。
クラスターが事前チェックに合格したら、[更新を開始] をクリックし、画面の指示に従ってコントロールプレーンを更新します。
[クラスターのアップグレード] ページの右上隅で、更新履歴を表示できます。
更新が完了したら、[クラスター] ページに移動し、クラスターの Kubernetes バージョンを確認して、コントロールプレーンが更新されているかどうかを確認できます。コントロールプレーンを更新した後に新しいノードを追加すると、新しいノードは新しい Kubernetes バージョンを使用します。
手順 2: クラウド上ノードプールを更新する
コントロールプレーンを更新した後、オフピーク時にできるだけ早くクラウド上ノードプールを更新することをお勧めします。クラウド上ノードプールを更新する場合は、ノードプールの kubelet とコンテナーランタイムを更新する必要があります。クラウド上ノードプールを更新する方法と更新ノートの詳細については、「クラウド上ノードプールを更新する」をご参照ください。
手順 3: エッジノードプールを更新する
コントロールプレーンが更新されていることを確認します。
エッジノードプールは、ノードプール内のすべてのノードが更新された場合にのみ更新されたと見なされます。
ランタイムが Docker の場合の更新操作
ACK Edge クラスター の Kubernetes バージョンを 1.24 にアップグレードするには、クラスターに Docker ランタイムを使用するノードが含まれている場合、コンテナーランタイムを Docker から containerd に変更する必要があります。 Kubernetes 1.24 は Docker ランタイムをサポートしていません。次の方法を使用して更新を完了できます。
(推奨) containerd ランタイムを使用する新しいノードプールを作成し、ローリング移行を実行する: 新しいノードプールを作成し、ランタイムを containerd に設定して、ノードの数を増やします。古いノードプールをスケジュール不可に設定するか、ワークロードで指定されたノードプールのスケジューリング方法 (ラベルを使用) を変更することで、すべてのアプリケーションを新しいノードプールに徐々に移行してから、古いノードプールをオフラインにします。ノードプールの作成方法については、「エッジノードプールの管理」をご参照ください。ノードをスケジュール不可に設定する方法については、「ノードのドレインとスケジューリングステータス」をご参照ください。
インプレース更新: ノードのランタイムを containerd から Docker に変更します。更新前にノードをドレインします。更新中は、ノード上のすべてのコンテナーが再起動されます。
ノードをドレインします。
エッジノードプール内のすべてのノードで、次のコマンドを 1 つずつ実行します。
export REGION="" INTERCONNECT_MODE="" TARGET_CLUSTER_VERSION=""; export ARCH=$(uname -m | awk '{print ($1 == "x86_64") ? "amd64" : (($1 == "aarch64") ? "arm64" : "amd64")}') INTERNAL=$( [ "$INTERCONNECT_MODE" = "private" ] && echo "-internal" || echo "" ); wget http://aliacs-k8s-${REGION}.oss-${REGION}${INTERNAL}.aliyuncs.com/public/pkg/run/attach/${TARGET_CLUSTER_VERSION}/${ARCH}/edgeadm -O edgeadm; chmod u+x edgeadm;./edgeadm upgrade --interconnect-mode=${INTERCONNECT_MODE} --region=${REGION}次の表にパラメーターを示します。
パラメーター
説明
例
TARGET_CLUSTER_VERSION
新しい Kubernetes バージョン。
説明値を更新されたコントロールプレーンの Kubernetes バージョンに設定します。
1.24.6-aliyunedge.1
ACK Edge クラスター でサポートされている Kubernetes バージョンの詳細については、「サポートされている Kubernetes バージョンのリリースノート」をご参照ください。
REGION
クラスターのリージョン ID。
cn-hangzhou
ACK Edge クラスター でサポートされているリージョンの詳細については、「サポートされているリージョン」をご参照ください。
INTERCONNECT_MODE
ノードへの接続のネットワークタイプ。
basic: パブリックネットワーク。
private: Express Connect 回線。
basic
次の出力は、ノードが更新されたことを示します。

ランタイムが Docker ではない場合の更新操作
エッジノードプール内のすべてのノードで、次のコマンドを 1 つずつ実行します。
export REGION="" INTERCONNECT_MODE="" TARGET_CLUSTER_VERSION=""; export ARCH=$(uname -m | awk '{print ($1 == "x86_64") ? "amd64" : (($1 == "aarch64") ? "arm64" : "amd64")}') INTERNAL=$( [ "$INTERCONNECT_MODE" = "private" ] && echo "-internal" || echo "" ); wget http://aliacs-k8s-${REGION}.oss-${REGION}${INTERNAL}.aliyuncs.com/public/pkg/run/attach/${TARGET_CLUSTER_VERSION}/${ARCH}/edgeadm -O edgeadm; chmod u+x edgeadm;./edgeadm upgrade --interconnect-mode=${INTERCONNECT_MODE} --region=${REGION}次の表にパラメーターを示します。
パラメーター | 説明 | 例 |
TARGET_CLUSTER_VERSION | 新しい Kubernetes バージョン。 説明 値を更新されたコントロールプレーンの Kubernetes バージョンに設定します。 | 1.24.6-aliyunedge.1 ACK Edge クラスター でサポートされている Kubernetes バージョンの詳細については、「サポートされている Kubernetes バージョンのリリースノート」をご参照ください。 |
REGION | クラスターのリージョン ID。 | cn-hangzhou ACK Edge クラスター でサポートされているリージョンの詳細については、「サポートされているリージョン」をご参照ください。 |
INTERCONNECT_MODE | ノードへの接続のネットワークタイプ。
| basic |
次の出力は、ノードが更新されたことを示します。

FAQ
クラスターをアップグレードしないと、ACK Edge はクラスターのアップグレードを強制しますか?私がそうでない場合マイ クラスター?
いいえ、強制しません。ACK Edge クラスター は手動でしかアップグレードできません。アップグレードしないことを選択した場合、クラスターは元の Kubernetes バージョンのままになります。包括的な機能とテクニカルサポートにアクセスするには、迅速にアップグレードすることを強くお勧めします。
エッジノードのアップグレードに失敗した場合はどうすればよいですか? エッジノードとは?
エッジノードプールのアップグレード時に、成功メッセージ This node has been upgraded successfully が返されない場合は、「ACK Edge クラスターをアップグレードするときにエッジノードのアップグレードに失敗した場合はどうすればよいですか?」をご参照ください。
参考資料
アップグレード前にクラスターが事前チェックに失敗した場合は、「クラスターチェック項目とクラスターの問題を修正するための提案」をご参照ください。