ACK Edgeクラスターは、エッジノードの自律性をサポートしています。 エッジノードの自律性により、エッジノード上のアプリケーションは、クラウドエッジネットワークの切断中に他のエッジノードに追い出されたり移行されたりすることなく、期待どおりに実行できます。 ノードの自律性が無効になっているノードがクラウドから切断されると、許容時間の終了後にノード上のアプリケーションポッドが追い出されます。 このトピックでは、Container Service for Kubernetes (ACK) コンソールでエッジノードのノード自律性を設定する方法について説明します。
前提条件
ACK Edgeクラスターが作成されました。 詳細については、「コンソールでのACK Edgeクラスターの作成」をご参照ください。
エッジノードがクラスターに追加されました。 詳細については、「エッジノードの追加」をご参照ください。
背景情報
エッジノードのノード自律性を有効または無効にできます。 デフォルトでは、クラスターに新しく追加されたエッジノードのノード自律性は無効になっています。
ノードの自律性が有効になっているエッジノードがクラウドから切断されると、システムはノード上のアプリケーションポッドが追い出されず、アプリケーションが自動的に回復できるようにします。 ノードの自律性は、ネットワーク接続が弱いエッジコンピューティングシナリオに適しています。
ノードの自律性が無効になっているエッジノードがクラウドから切断されると、ノードはハートビートをクラウド内の制御プレーンに送信できません。 その結果、ノードのステータスがNot readyに変わり、許容時間が終了すると、ノード上のアプリケーションポッドが追い出されるか、他のエッジノードに移行されます。
手順
コンソールからノードの自律性を有効にする
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
On theノードページで、管理するノードを見つけ、 で、アクション列を作成します。
説明[Node Autonomy Settings] ボタンは、現在のノードがエッジノードの場合にのみ表示されます。
ポップアップでノード自律設定ダイアログボックスで、OK.
kubectlによるノードの自律性の有効化
エッジノードに次のアノテーションを追加します。
kubectl annotate node xxx node.beta.openyurt.io/autonomy=true --overwrite
ノードの自律性ステータスの確認
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
[ノード] ページで、管理するノードを見つけ、[操作] 列の を選択します。
[概要] タブで、下にスクロールして [ステータス] セクションを見つけます。 タイプがAutonomyで、対応するステータスがTrueの場合、自律性は正常に有効になっています。
キャッシュコンポーネントの設定
EdgeHubは、ノード上のコンポーネントに必要なデータをキャッシュして、これらのコンポーネントがクラウドエッジネットワークの切断中に期待どおりに実行できるようにします。 キャッシュディレクトリは /etc/kubernetes/cache
です。
キャッシュされたデータは、ポッドやConfigMapリソース情報など、APIサーバーとやり取りするデータを指し、ビジネスデータは含まれません。
エッジノードがネットワークから切断されているときに、API Serverからのデータに依存するコンポーネントがある場合は、次のようにエッジノードを設定できます。
ブラウザまたはAPIサーバーログの開発者ツールからUser-Agent情報を取得します。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
[名前空間] ドロップダウンリストからkube-systemを選択し、[名前] 列でedge-hub-cfgという名前のConfigMapを見つけ、[操作] 列で [YAMLの編集] をクリックします。
User-Agentをキー
cache_agents
に追加し、[OK] をクリックします。ノードにログインし、
/etc/kubernetes/cache
ディレクトリに移動し、User-Agentにちなんで名付けられたディレクトリがあるかどうかを確認します。
この設定を設定すると、コンポーネントとAPIサーバー間でやり取りするデータがノードのディスクに保存されます。 ノードの自律性が有効になっている場合、コンポーネントはローカルディスクからデータを取得し、ネットワークの切断中に正常に動作します。