古いクラスターバージョンによる潜在的なセキュリティリスクと安定性リスクを回避し、最新リリースの機能にアクセスするために、Container Service for Kubernetes (ACK) Edge クラスター のバージョンリリーススケジュールに従って、クラスターを速やかにアップグレードすることをお勧めします。 エッジノードのアップグレードは、クラスターのアップグレードプロセスにおいて重要な部分であり、手動で実行する必要があります。 このトピックでは、エッジノードを手動でアップグレードする手順について説明します。
前提条件
クラスターのコントロールプレーンが更新されていること。 クラスターコントロールプレーンの更新方法の詳細については、「ACK Edge クラスターをアップグレードする」をご参照ください。
制限事項
ACK Edge クラスター は、バージョン 1.18 から 1.24 へのアップグレードをサポートしています。 バージョン 1.26 から 1.30 にアップグレードするには、チケットを送信するして、Container Service チームに連絡してください。 その他のバージョンへのアップグレードはサポートされていません。
ACK Edge クラスターをアップグレードする場合、現在の Kubernetes バージョンから後続のバージョンにのみアップグレードできます。 たとえば、ACK Edge クラスターの Kubernetes バージョンを 1.18 から 1.22 にアップグレードするには、まずバージョン 1.20 にアップグレードしてから、バージョン 1.22 にアップグレードする必要があります。
エッジノードのアップグレード中は、段階的なアップグレードを使用し、プロセスをバッチあたり最大 20 ノードに制限することをお勧めします。
ACK Edge クラスターでは、エッジノードとコントロールプレーンは最大 2 つのマイナーバージョンまで異なっていてもかまいません。 たとえば、コントロールプレーンで Kubernetes バージョン 1.22 が実行されている場合、エッジノードでは少なくとも Kubernetes バージョン 1.20 を実行する必要があります。 コントロールプレーンとエッジノード間で一貫したバージョンを維持することをお勧めします。
次の手順は、エッジノードのアップグレードに適用されます。 クラウドノードのアップグレード方法については、「クラウド上のノードプールをアップグレードする」をご参照ください。
手順
ランタイムが 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 |
次の出力は、ノードが更新されたことを示しています。

よくある質問
エッジノードのアップグレードが失敗した場合はどうすればよいですか?
エッジノードプールのアップグレード後、This node has been upgraded successfully というメッセージが返されない場合は、「ACK Edge クラスターのアップグレード時にエッジノードのアップグレードが失敗した場合はどうすればよいですか?」の解決策を参照してトラブルシューティングを行ってください。
関連情報
不要になったエッジノードは、「エッジノードを削除する」をご参照ください。
クラウドエッジネットワークの切断中にサービスの継続性を維持するには、「エッジノードの自律性を構成する」をご参照ください。