edgeadm を使用します。クラウドとエッジのデプロイメントでは、ネットワークが不安定な場合にエッジノードがオフラインになることがあります。ノードの自律性が有効になっている場合、ワークロードは実行を継続しますが、クラウドコンソールから管理することはできません。edgeadm を使用して、オフラインのエッジノード上の Pod、ConfigMap、およびシークレットに緊急の変更を加えることができます。
-
不適切なデプロイメント後の不正なイメージのロールバック
-
サービス停止を引き起こしている設定ミスの ConfigMap の修正
-
期限切れまたは侵害されたシークレットのローテーション
edgeadm による変更はノードに対してローカルです。ノードが再接続されると、クラウド側の状態がローカルの変更を上書きします。永続的な変更を行うには、クラウドからクラスターを更新してください。
前提条件
以下を確認してください:
-
Kubernetes 1.26 以降を実行している ACK Edge クラスター。
-
クラスターに追加された エッジノード。
制限事項
-
edgeadmは、エッジノードがオフラインの場合の緊急使用のみを目的としています。 -
変更できるリソースタイプは、Pod、ConfigMap、Secret の 3 種類のみです。
-
変更はノードに対してローカルです。例えば、ConfigMap の変更は、そのノードにのみ影響し、同じ ConfigMap を使用する他のノードには影響しません。
-
変更はクラウドに同期されません。ノードが再接続されると、クラウド側の状態がローカルの変更を上書きします。永続的な変更を行うには、クラウドからクラスターを更新してください。
edgeadm のダウンロード
エッジノードで edgeadm をダウンロードします:
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 クラスターのバージョン。 詳細については、「サポートされている Kubernetes バージョンのリリースノート」をご参照ください。 | 1.26.3-aliyun.1 |
REGION |
ACK Edge クラスターのリージョン ID。サポートされているリージョンをご参照ください。 | cn-hangzhou |
INTERCONNECT_MODE |
ノード接続のネットワークタイプ:`basic` (インターネットモード) または `private` (Express Connect モード)。basic (パブリックネットワーク) または private (Express Connect 回線)。 |
basic |
このコマンドは、ノードのアーキテクチャ (`x86_64` の場合は amd64、`aarch64` の場合は arm64) を検出し、一致するバイナリをダウンロードします。
一般的な運用保守操作
対象リソースの次の値を確認します:
| 変数 | 説明 | 取得方法 |
|---|---|---|
{pod-name} |
変更する Pod の名前 | ノードで crictl pods を実行します |
{namespace} |
Pod が属する名前空間 | — |
{pod-id} |
Pod の ID | — |
{configmap-name} |
変更する ConfigMap の名前 | ノードで ls /etc/kubernetes/cache/kubelet/configmaps.v1.core/{namespace} を実行します |
{secret-name} |
変更するシークレットの名前 | ノードで ls /etc/kubernetes/cache/kubelet/secrets.v1.core/{namespace} を実行します |
Pod テンプレートの編集
-
Pod 仕様を編集用に開きます:
edgeadm -n {namespace} edit pod {pod-name} -
Pod テンプレートを変更し、保存して終了します。
-
Pod は自動的に再起動します。変更が有効になったことを確認します:
crictl inspectp {pod-id}
ConfigMap の編集
-
ConfigMap を使用する Pod のスコープで、編集用に ConfigMap を開きます:
edgeadm -n {namespace} -p {pod-name} edit configmap {configmap-name} -
ConfigMap を変更し、保存して終了します。
-
Pod は更新された ConfigMap で再起動します。この ConfigMap を使用する、同じノード上の他の Pod は手動で再起動してください:
crictl stopp {pod-id}説明crictl stoppは Pod を停止します。kubelet は自動的に再起動します。
シークレットの編集
-
シークレットを使用する Pod のスコープで、編集用にシークレットを開きます:
edgeadm -n {namespace} -p {pod-name} edit secret {secret-name} -
シークレットを変更し、保存して終了します。
-
Pod は更新されたシークレットで再起動します。このシークレットを使用する、同じノード上の他の Pod は手動で再起動してください:
crictl stopp {pod-id}説明crictl stoppは Pod を停止します。kubelet は自動的に再起動します。