このトピックでは、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 クラスタの特別な構成」をご参照ください。
エッジノードプールを作成する場合は、ノードプールタイプを [専用] に設定します。次に、「エッジノードを追加する」を参照して、専用エッジノードプールにエッジノードを追加するために使用するスクリプトを生成します。
専用エッジノードプールの詳細については、「エッジノードプールの管理」をご参照ください。
説明ACK Edge クラスタ の Kubernetes バージョンが 1.22 以降の場合、Express Connect 回線を介してノードプールにエッジノードを追加するスクリプトで
inDedicatedNetworkパラメーターを指定することはできません。バージョンが 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 モデル
Edge Kubernetes クラスタバージョン
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_A10
≥1.20.11-aliyunedge.1
AMD64/x86_64
Nvidia_L40
≥1.26.3-aliyun.1

パラメーターを構成すると、接続ツールは nvidia-containerd-runtime を自動的にインストールします。詳細については、「NVIDIA Container Runtime」を参照してください。
ノード接続スクリプトの実行エラーを処理するにはどうすればよいですか?
次の表は、スクリプトの実行エラーの処理方法について説明しています。次の表に問題が記載されていない場合は、ノードの診断情報を収集し、チケットを送信 してください。エッジノードの診断情報を収集する方法の詳細については、このトピックの「ACK Edge クラスタ内のノードの診断情報を収集するにはどうすればよいですか?」セクションを参照してください。
エラーメッセージ | エラーの原因 | 推奨される解決策 |
The os XXX unsupport | エッジノードのオペレーティングシステムバージョンがサポートされていません。 | サポートされているオペレーティングシステムバージョンの詳細については、「エッジノードを追加する」をご参照ください。 |
invalid nodeName | ノード名が無効です。 |
|
Node route overlaps with service cidr | ノードのルートが、クラスタのポッド CIDR ブロックまたはサービス CIDR ブロックと競合しています。 | クラスタを再作成し、ポッド CIDR ブロックまたはサービス CIDR ブロックを再構成します。これらの CIDR ブロックがノードの NameServer アドレスおよびルートと競合しないことを確認してください。 |
response error msg: TOKEN_EXPIRED | ノードをクラウドに接続するためのトークンの期限が切れています。 |
|
A node named XXX is already exist in the cluster | 同じ名前のノードがすでにクラスタに存在します。 | クラスタからノードを削除します。 |
error run phase 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": dial tcp xx.xxx.xx.xx:6443: i/o timeout | システムはクラスタに関する情報を取得できません。 | edgeadm がエッジノードに接続するとき、edgeadm は IP アドレスを使用して API サーバーにアクセスする必要があります。API サーバーの SLB インスタンスに構成されているアクセス制御リスト (ACL) ルールが IP アドレスをブロックしているかどうかを確認してください。 |
error run phase join-node: Install edge-hub failed: Copy file /tmp/edge-hub to /usr/bin/edge-hub fail: open /usr/bin/edge-hub: text file busy | 40009 | 40009 | edge-hub のバイナリファイルがすでにノードに存在するため、edge-hub のインストールに失敗しました。 |
|
error run phase post-check: timed out waiting for the condition | システムコンポーネントが起動に失敗しました。 |
|
ACK Edge クラスタをアップグレードするときにエッジノードがアップグレードに失敗した場合はどうすればよいですか?
エッジノードプールをアップグレード するときに、This node has been upgraded successfully メッセージが返されない場合は、次の表に記載されている解決策を参照して問題のトラブルシューティングを行ってください。
エラーメッセージ | エラーの原因 | 推奨される解決策 |
edgeadm version xxxx does not match cluster version | アップグレードツールのバージョンがクラスタのバージョンと一致していません。 |
|
node has already been upgraded to xxx | ノードのバージョンがすでに目的のバージョンに更新されています。 | ノード上の特定のコンポーネントがアップグレードされていない場合は、ログを保持し、チケットを送信 してください。 |
kubelet target version xxxx does not match cluster version xxxx | kubelet のバージョンがクラスタのコントロールプレーンのバージョンと一致していません。 |
|
Parameter currentVersion cann't null | 以前のバージョンの edgeadm が使用されています。 |
|
upgrade kubelet failed at phase install, recover to previous state. error run phase upgrade: xxxx | クラスタのアップグレードに失敗し、以前の状態に自動的にロールバックされました。ノードの状態は影響を受けません。 | ログを保持し、チケットを送信 してください。 |
upgrade kubelet failed at phase install, recover to previous state recover kubelet failed, err: xxx error run phase upgrade: xxxx | クラスタのアップグレードに失敗し、以前の状態に自動的にロールバックされました。ノードの状態は影響を受けます。 | ログを保持し、チケットを送信 してください。 |
ACK Edge クラスタ内のノードの診断情報を収集するにはどうすればよいですか?
ACK Edge クラスタ 内のノードで例外が発生した場合は、次の手順を実行して、データ分析のためにノードに関する診断情報を収集します。
ACK Edge クラスタ 内の異常なノードにログオンします。
次のコマンドを実行して、診断スクリプトをダウンロードします。
curl -o /usr/local/bin/diagnose_edge_node.sh https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/public/diagnose/diagnose_k8s.sh次のコマンドを実行して、診断スクリプトを実行可能にします。
chmod u+x /usr/local/bin/diagnose_edge_node.sh次のコマンドを実行して、指定されたディレクトリに切り替えます。
cd /usr/local/bin/次のコマンドを実行して、診断スクリプトを実行します。
./diagnose_edge_node.sh予期される出力:診断スクリプトを実行するたびに、異なる名前のファイルが生成されます。この例では、ログファイルの名前は
diagnose_1578310147.tar.gzです。...... + echo 'please get diagnose_1578310147.tar.gz for diagnostics' please get diagnose_1578310147.tar.gz for diagnostics + echo 'Submit the file named diagnose_1578310147.tar.gz to request technical support.' Submit the file named diagnose_1578310147.tar.gz to request technical support.llコマンドを実行して、diagnose_1578310147.tar.gzという名前の診断レポートが存在することを確認します。