このトピックでは、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以降
パラメーターを設定すると、接続ツールは自動的にnvidia-containerd-runtimeをインストールします。 詳細については、「NVIDIA Container Runtime」をご参照ください。
ノード接続スクリプトの実行失敗を処理する方法を教えてください。
スクリプトの実行失敗に対処する方法を次の表に示します。 次の表に問題が記載されていない場合は、ノードの診断情報を収集し、チケットを起票します。 エッジノードの診断情報を収集する方法の詳細については、ACK Edgeクラスター内のノードの診断情報を収集するにはどうすればよいですか。 このトピックのセクション。
エラーメッセージ | 原因の失敗 | 推奨ソリューション |
os XXXのサポート解除 | エッジノードのオペレーティングシステムバージョンはサポートされていません。 | サポートされているオペレーティングシステムのバージョンの詳細については、「エッジノードの追加」をご参照ください。 |
無効なnodeName | ノード名が無効です。 |
|
ノードルートがサービスcidrと重複する | ノードのルートが、クラスターのポッドCIDRブロックまたはサービスCIDRブロックと競合します。 | クラスターを再作成し、ポッドCIDRブロックまたはサービスCIDRブロックを再構成します。 これらのCIDRブロックがノードのNameServerアドレスおよびルートと競合しないようにしてください。 |
レスポンスエラーmsg: TOKEN_EXPIRED | ノードをクラウドに接続するためのトークンが期限切れです。 |
|
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 | エッジハブのバイナリファイルが既にノードに存在するため、エッジハブのインストールに失敗します。 |
|
エラー実行フェーズのポストチェック: 条件を待ってタイムアウト | システムコンポーネントの起動に失敗しました。 |
|
ACK edgeクラスターをアップグレードするときにエッジノードのアップグレードに失敗した場合はどうすればよいですか。
エッジノードプールのアップグレード時に、[このノードは正常にアップグレードされました]
メッセージが返されない場合は、次の表に示すソリューションを参照して問題のトラブルシューティングを行います。
エラーメッセージ | 原因の失敗 | 推奨ソリューション |
edgeadmバージョンxxxxがクラスターバージョンと一致しない | アップグレードツールのバージョンがクラスターのバージョンと一致していません。 |
|
ノードはすでにxxxにアップグレードされています | ノードのバージョンは、既に所望のバージョンに更新されている。 | ノード上の特定のコンポーネントがアップグレードされていない場合は、ログと チケットを起票します。 |
kubeletターゲットバージョンxxxxがクラスターバージョンxxxxと一致しません | kubeletのバージョンがクラスターの制御プレーンのバージョンと一致していません。 |
|
パラメーターcurrentVersion cann't null | edgeadmの以前のバージョンが使用されます。 |
|
アップグレードkubeletはフェーズインストールで失敗し、以前の状態に回復します。 エラー実行フェーズのアップグレード: xxxx | クラスターのアップグレードに失敗し、以前の状態に自動的にロールバックされました。 ノードのステータスは影響を受けません。 | ログを保持し、チケットを起票します。 |
フェーズインストールでkubeletのアップグレードに失敗し、以前の状態に回復 回復kubelet失敗, err: xxx エラー実行フェーズのアップグレード: xxxx | クラスターのアップグレードに失敗し、以前の状態に自動的にロールバックされました。 ノードのステータスが影響を受けます。 | ログを保持し、チケットを起票します。 |
ACK Edgeクラスター内のノードに関する診断情報を収集するにはどうすればよいですか。
ACK Edgeクラスター内のノードで例外が発生した場合は、次の手順を実行して、データ分析のためにノードに関する診断情報を収集します。
ACK Edgeクラスターの異常なノードにログインします。
次のコマンドを実行して診断スクリプトをダウンロードします。
curl -o /usr/local/bin /diagnoste_edge_node.sh https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/public/diagnose/diagnose_k8s.sh
次のコマンドを実行して、診断スクリプトを実行可能にします。
chmod u + x /usr/local/bin /diagnoste_edge_node. sh
次のコマンドを実行して、指定したディレクトリに切り替えます。
cd /usr /ローカル /bin/
次のコマンドを実行して診断スクリプトを実行します。
. /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という名前のファイルを送信し、テクニカルサポートをリクエストします。
ll
コマンドを実行し、diagnoste_1578310147.tar. gz
という名前の診断レポートが存在することを確認します。