第1章 Kubernetes NMState Operator
Kubernetes NMState Operator は、NMState の OpenShift Container Platform クラスターのノード間でステートドリブンのネットワーク設定を実行するための Kubernetes API を提供します。Kubernetes NMState Operator は、ユーザーに対して、クラスターノードの各種のネットワークインターフェイスタイプ、DNS、およびルーティングを設定する機能を提供します。さらに、クラスターノードのデーモンは、各ノードの API サーバーへのネットワークインターフェイスの状態の定期的な報告を行います。
Red Hat は、ベアメタル、IBM Power®、IBM Z®、IBM® LinuxONE、VMware vSphere、および Red Hat OpenStack Platform (RHOSP) インストール上の実稼働環境で Kubernetes NMState Operator をサポートしています。
Red Hat では、Microsoft Azure 上で Kubernetes NMState Operator を使用するためのサポートが提供されていますが、その機能は限られています。サポートは、インストール後のタスクとしてシステム上の DNS サーバーを設定することに限定されています。
OpenShift Container Platform で NMState を使用する前に、Kubernetes NMState Operator をインストールする必要があります。Kubernetes NMState Operator をインストールしたら、次のタスクを完了できます。
- ノードのネットワーク状態と設定の監視と更新
-
カスタマイズされた
br-ex
ブリッジを含むマニフェストオブジェクトの作成
これらのタスクの詳細は、関連情報 セクションを参照してください。
Kubernetes NMState Operator は、セカンダリー NIC のネットワーク設定を更新します。Operator は、プライマリー NIC のネットワーク設定を更新したり、ほとんどのオンプレミスネットワーク上の br-ex
ブリッジを更新したりすることはできません。
ベアメタルプラットフォームでは、Kubernetes NMState Operator を使用して br-ex
ブリッジネットワーク設定を更新することは、マシン設定マニフェストファイルで br-ex
ブリッジをインターフェイスとして設定した場合にのみサポートされます。br-ex
ブリッジをインストール後のタスクとして更新するには、クラスターの NodeNetworkConfigurationPolicy
カスタムリソース (CR) の NMState 設定で、br-ex
ブリッジをインターフェイスとして設定する必要があります。詳細は、インストール後の設定 の カスタマイズされた br-ex ブリッジを含むマニフェストオブジェクトの作成 を参照してください。
OpenShift Container Platform は nmstate
を使用して、ノードネットワークの状態を報告し、これを設定します。これにより、たとえばすべてのノードに Linux ブリッジを作成するなど、単一の設定マニフェストをクラスターに適用して、ネットワークポリシー設定を変更できるようになります。
ノードのネットワークは、以下のオブジェクトによって監視され更新されます。
NodeNetworkState
- そのノード上のネットワークの状態を報告します。
NodeNetworkConfigurationPolicy
-
ノードで要求されるネットワーク設定を説明します。
NodeNetworkConfigurationPolicy
CR をクラスターに適用して、インターフェイスの追加および削除など、ノードネットワーク設定を更新します。 NodeNetworkConfigurationEnactment
- 各ノードに制定されたネットワークポリシーを報告します。
1.1. Kubernetes NMState Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
ウェブコンソールまたは CLI を使用して、Kubernetes NMState Operator をインストールできます。
1.1.1. Web コンソールを使用した Kubernetes NMState Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールを使用して Kubernetes NMState Operator をインストールできます。Kubernetes NMState Operator をインストールすると、Operator によって NMState State Controller がすべてのクラスターノードにデーモンセットとしてデプロイされます。
前提条件
-
cluster-admin
権限を持つユーザーとしてログインしている。
手順
-
Operators
OperatorHub を選択します。 -
All Items の下の検索フィールドに、
nmstate
と入力し、Enter をクリックして Kubernetes NMState Operator を検索します。 - Kubernetes NMState Operator の検索結果をクリックします。
- Install をクリックして、Install Operator ウィンドウを開きます。
- Install をクリックして Operator をインストールします。
- Operator のインストールが完了したら、View Operator をクリックします。
-
Provided APIs で Create Instance をクリックし、
kubernetes-nmstate
のインスタンスを作成するダイアログボックスを開きます。 ダイアログボックスの Name フィールドで、インスタンスの名前が
nmstate
であることを確認します。注記名前の制限は既知の問題です。インスタンスはクラスター全体のシングルトンです。
- デフォルト設定を受け入れ、Create をクリックしてインスタンスを作成します。
1.1.2. CLI を使用した Kubernetes NMState Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc)
を使用して、Kubernetes NMState Operator をインストールできます。インストールが完了すると、Operator はすべてのクラスターノードに NMState State Controller をデーモンセットとしてデプロイできます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
nmstate
Operator namespace を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow OperatorGroup
を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow nmstate
Operator にサブスクライブします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow nmstate
Operator デプロイメントのClusterServiceVersion
(CSV) ステータスがSucceeded
であることを確認します。oc get clusterserviceversion -n openshift-nmstate \ -o custom-columns=Name:.metadata.name,Phase:.status.phase
$ oc get clusterserviceversion -n openshift-nmstate \ -o custom-columns=Name:.metadata.name,Phase:.status.phase
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nmstate
Operator のインスタンスを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow DNS 接続の問題が原因でクラスターで DNS ヘルスチェックプローブに問題がある場合は、次の DNS ホスト名設定を
NMState
CRD に追加して、これらの問題を解決できるヘルスチェックを組み込むことができます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、DNS ホスト名の設定をクラスターネットワークに適用します。
<filename>
は、CRD ファイルの名前に置き換えます。$ oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを入力して、NMState Operator のすべての Pod のステータスが
Running
であることを確認します。oc get pod -n openshift-nmstate
$ oc get pod -n openshift-nmstate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.3. Kubernetes NMState Operator によって収集されたメトリクスの表示 リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes NMState Operator である kubernetes-nmstate-operator
は、kubernetes_nmstate_features_applied
コンポーネントからメトリクスを収集し、すぐに使用できるメトリクスとして公開できます。メトリクスを表示するユースケースとして、NodeNetworkConfigurationPolicy
カスタムリソースを作成し、そのポリシーがアクティブであることを確認する状況を考えてみましょう。
kubernetes_nmstate_features_applied
メトリクスは API ではないため、OpenShift Container Platform のバージョン間で変更になる可能性があります。
Web コンソールのメトリクス UI には、選択したプロジェクトの定義済み CPU、メモリー、帯域幅、およびネットワークパケットクエリーがいくつか含まれています。プロジェクトの CPU、メモリー、帯域幅、ネットワークパケット、およびアプリケーションメトリクスにカスタム Prometheus Query Language (PromQL) クエリーを実行できます。
次の例は、OpenShift Container Platform クラスターに適用される NodeNetworkConfigurationPolicy
マニフェストの例を示しています。
NodeNetworkConfigurationPolicy
マニフェストはメトリクスを公開し、Cluster Monitoring Operator (CMO) が利用できるようにします。次の例は、公開されたメトリクスの一部を示しています。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - 管理者として Web コンソールにログインし、Kubernetes NMState Operator をインストールしている。
- 開発者として、またはメトリクスで表示しているプロジェクトの表示権限を持つユーザーとしてクラスターへのアクセスがある。
- ユーザー定義プロジェクトのモニタリングが有効化されている。
- ユーザー定義プロジェクトにサービスをデプロイしている。
-
NodeNetworkConfigurationPolicy
マニフェストを作成し、クラスターに適用している。
OpenShift Container Platform 4.19 以降、Web コンソールのパースペクティブが統合されました。Developer パースペクティブは、デフォルトでは有効になっていません。
すべてのユーザーは、OpenShift Container Platform Web コンソールのすべての機能を操作できます。ただし、クラスターの所有者でない場合は、特定の機能にアクセスする権限をクラスターの所有者に要求する必要がある場合があります。
引き続き Developer パースペクティブを有効にできます。Web コンソールの Getting Started ペインでは、コンソールツアーの実行、クラスター設定に関する情報の検索、Developer パースペクティブを有効にするためのクイックスタートの表示、リンク先を表示して新機能の確認などを行えます。
手順
OpenShift Container Platform Web コンソールの Developer パースペクティブからメトリクスを表示する場合は、次のタスクを実行します。
- Observe をクリックします。
-
特定のプロジェクトのメトリクスを表示するには、Project: リストでプロジェクトを選択します。たとえば、
openshift-nmstate
です。 - Metrics タブをクリックします。
プロット上のメトリクスを視覚化するには、Select query リストからクエリーを選択するか、Show PromQL を選択して、選択したクエリーに基づいてカスタム PromQL クエリーを作成します。
注記開発者ロールでは 1 度に 1 つのクエリーのみ実行できます。
管理者として OpenShift Container Platform Web コンソールでメトリクスを表示する場合は、以下のタスクを実行します。
-
Observe
Metrics をクリックします。 -
Expression フィールドに
kubernetes_nmstate_features_applied
と入力します。 - Add query をクリックし、Run queries をクリックします。
-
Observe
視覚化されたメトリクスを調べるには、次のいずれかのタスクを実行します。
プロットを拡大して時間範囲を変更するには、次のいずれかのタスクを実行します。
- 時間範囲を視覚的に選択するには、プロットをクリックして水平にドラッグします。
- 時間範囲を選択するには、コンソールの左上にあるメニューを使用します。
- 時間の範囲をリセットするには、Reset zoom を選択します。
- 特定の時点におけるすべてのクエリーの出力を表示するには、その時点でプロット上にマウスカーソルを置きます。クエリー出力がポップアップボックスに表示されます。