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

Container Service for Kubernetes:エッジノードに関するFAQ

最終更新日:Dec 19, 2024

このトピックでは、ACK edgeクラスターでのエッジノードの使用に関するよくある質問 (FAQ) に対する回答を提供します。

ACK Edgeコンポーネントは、クラウドノードとエッジノードをどのように区別しますか?

ACK Edgeは、ノードのalibabacloud.com/is-edge-workerラベルに基づいて、ノードがエッジノードであるかどうかを判断します。

ノードがクラウドノードプールまたはエッジノードプールに追加された場合、is-edge-workerラベルは自動的にノードに追加されます。 ノードのis-edge-workerラベルの値がtrueの場合、ノードはエッジノードです。 ラベルの値がfalseの場合、ノードはクラウドノードです。

Express Connect回路を介してノードプールにエッジノードを追加するにはどうすればよいですか?

ACK edgeクラスターのエッジノードをExpress Connect回線を介してノードプールに追加する場合は、次の要件に注意してください。 詳細については、「Express Connect回路が使用されている場合のACK Edgeクラスターの特別な設定」をご参照ください。

  • エッジノードプールを作成するときは、ノードプールタイプをdedicatedに設定します。 次に、エッジノードの追加を参照して、エッジノードを専用エッジノードプールに追加するためのスクリプトを生成します。

    専用エッジノードプールの詳細については、「エッジノードプールの作成」をご参照ください。

    説明

    KubernetesバージョンのACK Edgeクラスターが1.22以降の場合、スクリプトでinDedicatedNetworkパラメーターを指定して、Express Connect回線を介してノードプールにエッジノードを追加することはできません。 バージョンが1.22より前の場合は、バージョンをアップグレードします。

  • Express Connect回線を介してエッジノードをノードプールに追加する場合、エッジノードはプライベートアドレスを介してAlibaba Cloudサービスと通信する必要があります。 エッジノードが、Object Storage Service (OSS) 、Container Registry、Server Load Balancer (SLB) などの関連するAlibaba Cloudサービスに接続されていることを確認します。

GPU高速化ノードをノードプールに追加するにはどうすればよいですか?

  • まずGPUドライバーをインストールする必要があります。

  • サポートされているドライバーのバージョンの詳細については、「ACKでサポートされているNVIDIAドライバーのバージョン」をご参照ください。

  • ノードをクラウドに接続するために使用するスクリプトで、gpuVersionパラメーターを設定する必要があります。 次のGPUモデルがサポートされています。

      アーキテクチャ

      GPUモデル

      ACK Edgeバージョン

      AMD64/x86_64

      Nvidia_Tesla_T4

      1.16.9-aliyunedge.1以降

      AMD64/x86_64

      Nvidia_Tesla_P4

      1.16.9-aliyunedge.1以降

      AMD64/x86_64

      Nvidia_Tesla_P100

      1.16.9-aliyunedge.1以降

      AMD64/x86_64

      Nvidia_Tesla_V100

      1.18.8-aliyunedge.1以降

      AMD64/x86_64

      Nvidia_Tesla_A100

      1.20.11-aliyunedge.1以降

      AMD64/x86_64

      Nvidia_Tesla_A10

      1.20.11-aliyunedge.1以降

      AMD64/x86_64

      Nvidia_L20

      1.26.3-aliyun.1以降

      AMD64/x86_64

      Nvidia_L40

      1.26.3-aliyun.1以降

      image.png

  • パラメーターを設定すると、接続ツールは自動的にnvidia-containerd-runtimeをインストールします。 詳細については、「NVIDIA Container Runtime」をご参照ください。

ノード接続スクリプトの実行失敗を処理する方法を教えてください。

スクリプトの実行失敗に対処する方法を次の表に示します。 次の表に問題が記載されていない場合は、ノードの診断情報を収集し、チケットを起票します。 エッジノードの診断情報を収集する方法の詳細については、ACK Edgeクラスター内のノードの診断情報を収集するにはどうすればよいですか。 このトピックのセクション。

エラーメッセージ

原因の失敗

推奨ソリューション

os XXXのサポート解除

エッジノードのオペレーティングシステムバージョンはサポートされていません。

サポートされているオペレーティングシステムのバージョンの詳細については、「エッジノードの追加」をご参照ください。

無効なnodeName

ノード名が無効です。

  1. ノード名には、小文字、ハイフン (-) 、およびピリオド (.) を使用できます。

  2. ノード名は1 ~ 253文字である必要があります。

  3. ノード名をlocalhostで始めることはできません。

ノードルートがサービスcidrと重複する

ノードのルートが、クラスターのポッドCIDRブロックまたはサービスCIDRブロックと競合します。

クラスターを再作成し、ポッドCIDRブロックまたはサービスCIDRブロックを再構成します。 これらのCIDRブロックがノードのNameServerアドレスおよびルートと競合しないようにしてください。

レスポンスエラーmsg: TOKEN_EXPIRED

ノードをクラウドに接続するためのトークンが期限切れです。

  1. ノードをクラウドに接続するための別のスクリプトを生成します。

  2. ノードのシステムクロックが正常かどうかを確認します。

XXXという名前のノードが既にクラスタに存在している

同じ名前のノードがすでにクラスターに存在します。

クラスターからノードを削除します。

エラー実行フェーズjoin-node: failed to get cluster info: failed to get cluster-info configmap, Get "https:// xx.xxx.xx.xx:6443/api/v1/namespaces/kube-public/configmaps/cluster-info": tcp. xxx.xx.xx:6443: i/oタイムアウト

クラスターに関する情報の取得に失敗しました。

edgeadmがエッジノードに接続する場合、edgeadmはIPアドレスを使用してAPIサーバーにアクセスする必要があります。 APIサーバーのSLBインスタンスに設定されたアクセス制御リスト (ACL) ルールがIPアドレスをブロックしているかどうかを確認します。

エラー実行フェーズの参加ノード: エッジハブのインストールに失敗しました: ファイル /tmp/edge-hubを /usr/bin/edge-hubにコピー失敗: オープン /usr/bin/edge-hub: テキストファイル使用中 | 40009 | 40009

エッジハブのバイナリファイルが既にノードに存在するため、エッジハブのインストールに失敗します。

edgeadm resetコマンドを実行してノード上のデータをクリアし、ノード接続スクリプトを再度実行します。

エラー実行フェーズのポストチェック: 条件を待ってタイムアウト

システムコンポーネントの起動に失敗しました。

  1. edgeadmツールを再度ダウンロードし、edgeadm resetコマンドを実行してツールを再インストールします。 edgeadmの最新バージョンが使用されていることを確認してください。

  2. エッジノードが関連するパブリックアドレスに期待どおりにアクセスできるかどうかを確認します。 パブリックアドレスの詳細については、「ネットワーク管理の概要」をご参照ください。

  3. ノードに関する診断情報を収集し、チケットを起票します。 診断情報を収集する方法の詳細については、ACK Edgeクラスター内のノードの診断情報を収集するにはどうすればよいですか。 このトピックのセクション。

ACK edgeクラスターをアップグレードするときにエッジノードのアップグレードに失敗した場合はどうすればよいですか。

エッジノードプールのアップグレード時に、[このノードは正常にアップグレードされました] メッセージが返されない場合は、次の表に示すソリューションを参照して問題のトラブルシューティングを行います。

エラーメッセージ

原因の失敗

推奨ソリューション

edgeadmバージョンxxxxがクラスターバージョンと一致しない

アップグレードツールのバージョンがクラスターのバージョンと一致していません。

  1. クラスターの制御プレーンがアップグレードされているかどうかを確認します。

  2. TARGET_CLUSTER_VERSIONパラメーターが正しく指定されているかどうかを確認します。

ノードはすでにxxxにアップグレードされています

ノードのバージョンは、既に所望のバージョンに更新されている。

ノード上の特定のコンポーネントがアップグレードされていない場合は、ログと チケットを起票します。

kubeletターゲットバージョンxxxxがクラスターバージョンxxxxと一致しません

kubeletのバージョンがクラスターの制御プレーンのバージョンと一致していません。

  1. kubelet-versionパラメーターが指定されている場合は、パラメーターの値がクラスターのコントロールプレーンのバージョンと一致しているかどうかを確認します。

  2. このパラメータを空のままにすると、チケットを起票します。

パラメーターcurrentVersion cann't null

edgeadmの以前のバージョンが使用されます。

  1. 最新バージョンのedgeadmが使用されているか確認してください。

  2. クラスターをKubernetes 1.18から1.20に、またはKubernetes 1.20から1.22に更新できます。

アップグレードkubeletはフェーズインストールで失敗し、以前の状態に回復します。

エラー実行フェーズのアップグレード: xxxx

クラスターのアップグレードに失敗し、以前の状態に自動的にロールバックされました。 ノードのステータスは影響を受けません。

ログを保持し、チケットを起票します。

フェーズインストールでkubeletのアップグレードに失敗し、以前の状態に回復

回復kubelet失敗, err: xxx

エラー実行フェーズのアップグレード: xxxx

クラスターのアップグレードに失敗し、以前の状態に自動的にロールバックされました。 ノードのステータスが影響を受けます。

ログを保持し、チケットを起票します。

ACK Edgeクラスター内のノードに関する診断情報を収集するにはどうすればよいですか。

ACK Edgeクラスター内のノードで例外が発生した場合は、次の手順を実行して、データ分析のためにノードに関する診断情報を収集します。

  1. ACK Edgeクラスターの異常なノードにログインします。

  2. 次のコマンドを実行して診断スクリプトをダウンロードします。

    curl -o /usr/local/bin /diagnoste_edge_node.sh https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/public/diagnose/diagnose_k8s.sh
  3. 次のコマンドを実行して、診断スクリプトを実行可能にします。

    chmod u + x /usr/local/bin /diagnoste_edge_node. sh
  4. 次のコマンドを実行して、指定したディレクトリに切り替えます。

    cd /usr /ローカル /bin/
  5. 次のコマンドを実行して診断スクリプトを実行します。

    . /diagnoste_edge_node.sh

    期待される出力: 診断スクリプトを実行するたびに、異なる名前のファイルが生成されます。 この例では、ログファイルの名前はdiagnoste_1578310147.tar. gzです。

    ......
    + エコー '診断のためにdiagnoste_1578310147.tar.gzを取得してください'
    診断のためにdiagnoste_1578310147.tar.gzを入手してください
    + echo 'diagnoste_1578310147.tar.gzという名前のファイルを送信して、テクニカルサポートをリクエストしてください。'
    diagnoste_1578310147.tar.gzという名前のファイルを送信し、テクニカルサポートをリクエストします。
  6. llコマンドを実行し、diagnoste_1578310147.tar. gzという名前の診断レポートが存在することを確認します。