ほとんどのクラウドエッジコラボレーションシナリオでは、ネットワークの不安定性によりエッジノードがオフラインになることがあります。 これらのオフラインノードでノード自律性が有効になっている場合、ビジネスオペレーションは中断なく実行できます。 ただし、ノードがオフラインの場合、ビジネスの更新や構成の変更などのO&Mタスクの実行が困難になります。 Container Service for Kubernetes (ACK) EdgeクラスターはオフラインのO&Mツールを提供します。これにより、ユーザーは緊急時に、バージョンのロールバック、リソースの再構成、設定の更新など、エッジノードでO&M操作を実行できます。 このトピックでは、オフラインO&Mツールを使用してエッジノードを管理する方法について説明します。
前提条件
Kubernetesバージョン1.26以降を実行するACK Edgeクラスターが作成されました。 詳細については、「コンソールでのACK Edgeクラスターの作成」をご参照ください。
エッジノードがACK Edgeクラスターに追加されました。 詳細については、「エッジノードの追加」をご参照ください。
制限事項
O&Mツールは、エッジノードがオフラインのときの緊急使用を目的としています。
変更できるリソースタイプは、Pod、ConfigMap、Secretの3種類のみです。
リソースの変更は、ノードに対してローカルである。 たとえば、ConfigMapへの変更はそのノードにのみ影響し、同じConfigMapを使用する他のノードには影響しません。
O&Mツールで行われた変更は、クラウドに同期されません。 ノードのステータスが正常に戻ると、ツールを使用して行われた変更は、クラウド内のコンテンツによって上書きされます。 クラスターへの恒久的な変更はクラウドで行う必要があります。
edgeadm O&Mツールの入手
次のコマンドを実行して、オフラインのO&Mツールを取得します。
export REGION="" INTERCONNECT_MODE="" 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/${CLUSTER_VERSION}/${ARCH}/edgeadm -O edgeadm; chmod u+x edgeadm;
下表に、各パラメーターを説明します。
パラメーター | 説明 | 例 |
CLUSTER_VERSION | ACK Edgeクラスターのバージョンに置き換えます。 ACK EdgeクラスターでサポートされているKubernetesバージョンの詳細については、「サポートされているKubernetesバージョンのリリースノート」をご参照ください。 | 1.26.3-aliyun.1 |
地域 | ACK Edgeクラスターが存在するリージョンのID。 ACK Edgeクラスターでサポートされているリージョンの詳細については、「サポートされているリージョン」をご参照ください。 | cn-hangzhou |
INTERCONNECT_MODE | ノードへの接続のネットワークタイプ:
| basic |
一般的なO&M操作
次の表に、コマンドの実行時に置き換える必要がある変数と、その取得方法を示します。
変数 | 説明 | 入手方法 |
| 変更するポッドの名前に置き換えます。 | ノードで |
| ポッドが属する名前空間の名前に置き換えます。 | |
| ポッドに対応するIDに置き換えます。 | |
| 変更するConfigMapの名前に置き換えます。 | ノードで |
| 変更するシークレットの名前に置き換えます。 | ノードで |
シナリオ1: ポッドテンプレートの変更
ポッドが存在するエッジノードで次のコマンドを実行して、ポッドテンプレートを編集します。
edgeadm -n {namespace} edit pod {pod-name}
編集モードに入り、ポッドテンプレートを変更し、変更を保存して終了します。
変更後、ポッドは自動的に再起動します。 次のコマンドを実行してポッド構成を照会し、変更が有効かどうかを確認します。
crictl inspectp {pod-id}
シナリオ2: 特定のポッドのConfigMapを変更する
ポッドが存在するエッジノードで次のコマンドを実行して、ConfigMapテンプレートを編集します。
edgeadm -n {namespace} -p {pod-name} edit configmap {configmap-name}
編集モードに入り、ConfigMapテンプレートを変更し、変更を保存して終了します。
変更後、指定されたポッドは再起動し、更新されたConfigMapを使用します。 このConfigMapを使用する同じノード上の他のポッドについては、次のコマンドを実行して手動でそれらを再起動し、変更を適用します。
crictl stopp {pod-id}
説明このコマンドを実行すると、指定されたポッドのみが停止し、その後kubeletは自動的にポッドを再起動します。
シナリオ3: 特定のポッドのシークレットを変更する
ポッドが存在するエッジノードで次のコマンドを実行して、シークレットテンプレートを編集します。
edgeadm -n {namespace} -p {pod-name} edit secret {secret-name}
編集モードに入り、シークレットテンプレートを変更し、変更を保存して終了します。
変更後、指定されたポッドは再起動し、新しいシークレットを使用します。 このシークレットを使用している同じノード上の他のポッドについては、次のコマンドを実行して手動でそれらを再起動し、変更を適用します。
crictl stopp {pod-id}