すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:エッジノードのオフラインO&M

最終更新日:Nov 11, 2024

ほとんどのクラウドエッジコラボレーションシナリオでは、ネットワークの不安定性によりエッジノードがオフラインになることがあります。 これらのオフラインノードでノード自律性が有効になっている場合、ビジネスオペレーションは中断なく実行できます。 ただし、ノードがオフラインの場合、ビジネスの更新や構成の変更などのO&Mタスクの実行が困難になります。 Container Service for Kubernetes (ACK) EdgeクラスターはオフラインのO&Mツールを提供します。これにより、ユーザーは緊急時に、バージョンのロールバック、リソースの再構成、設定の更新など、エッジノードでO&M操作を実行できます。 このトピックでは、オフラインO&Mツールを使用してエッジノードを管理する方法について説明します。

image

前提条件

制限事項

  • 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: パブリックネットワーク。

  • プライベート: Express Connect回路。

basic

一般的なO&M操作

次の表に、コマンドの実行時に置き換える必要がある変数と、その取得方法を示します。

変数

説明

入手方法

{pod-name}

変更するポッドの名前に置き換えます。

ノードでcritl podsコマンドを実行してクエリを実行します。

{namespace}

ポッドが属する名前空間の名前に置き換えます。

{pod-id}

ポッドに対応するIDに置き換えます。

{configmap-name}

変更するConfigMapの名前に置き換えます。

ノードでls /etc/kubernetes/cache/kubelet/configmaps.v1.core/{namespace} コマンドを実行してクエリを実行します。

{secret-name}

変更するシークレットの名前に置き換えます。

ノードでls /etc/kubernetes/cache/kubelet/secrets.v1.core/{namespace} コマンドを実行して照会します。

シナリオ1: ポッドテンプレートの変更

  1. ポッドが存在するエッジノードで次のコマンドを実行して、ポッドテンプレートを編集します。

    edgeadm -n {namespace}  edit pod {pod-name} 
  2. 編集モードに入り、ポッドテンプレートを変更し、変更を保存して終了します。

  3. 変更後、ポッドは自動的に再起動します。 次のコマンドを実行してポッド構成を照会し、変更が有効かどうかを確認します。

    crictl inspectp {pod-id}

シナリオ2: 特定のポッドのConfigMapを変更する

  1. ポッドが存在するエッジノードで次のコマンドを実行して、ConfigMapテンプレートを編集します。

    edgeadm -n {namespace} -p {pod-name} edit configmap {configmap-name}
  2. 編集モードに入り、ConfigMapテンプレートを変更し、変更を保存して終了します。

  3. 変更後、指定されたポッドは再起動し、更新されたConfigMapを使用します。 このConfigMapを使用する同じノード上の他のポッドについては、次のコマンドを実行して手動でそれらを再起動し、変更を適用します。

    crictl stopp {pod-id}
    説明

    このコマンドを実行すると、指定されたポッドのみが停止し、その後kubeletは自動的にポッドを再起動します。

シナリオ3: 特定のポッドのシークレットを変更する

  1. ポッドが存在するエッジノードで次のコマンドを実行して、シークレットテンプレートを編集します。

    edgeadm -n {namespace} -p {pod-name} edit secret {secret-name}
  2. 編集モードに入り、シークレットテンプレートを変更し、変更を保存して終了します。

  3. 変更後、指定されたポッドは再起動し、新しいシークレットを使用します。 このシークレットを使用している同じノード上の他のポッドについては、次のコマンドを実行して手動でそれらを再起動し、変更を適用します。

    crictl stopp {pod-id}