第27章 Kubernetes NMState
27.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、および OpenStack インストール上の実稼働環境で Kubernetes NMState Operator をサポートします。
OpenShift Container Platform で NMState を使用する前に、Kubernetes NMState Operator をインストールする必要があります。
Kubernetes NMState Operator は、セカンダリー NIC のネットワーク設定を更新します。プライマリー NIC または br-ex
ブリッジのネットワーク設定を更新できません。
OpenShift Container Platform は nmstate
を使用して、ノードネットワークの状態を報告し、これを設定します。これにより、たとえばすべてのノードに Linux ブリッジを作成するなど、単一の設定マニフェストをクラスターに適用して、ネットワークポリシー設定を変更できるようになります。
ノードのネットワークは、以下のオブジェクトによって監視され更新されます。
NodeNetworkState
- そのノード上のネットワークの状態を報告します。
NodeNetworkConfigurationPolicy
-
ノードで要求されるネットワーク設定について説明します。
NodeNetworkConfigurationPolicy
マニフェストをクラスターに適用して、インターフェイスの追加および削除など、ノードネットワーク設定を更新します。 NodeNetworkConfigurationEnactment
- 各ノードに制定されたネットワークポリシーを報告します。
27.1.1. Kubernetes NMState Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
ウェブコンソールまたは CLI を使用して、Kubernetes NMState Operator をインストールできます。
27.1.1.1. Web コンソールを使用した Kubernetes NMState Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールを使用して 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 をクリックしてインスタンスを作成します。
概要
完了後に、Operator はすべてのクラスターノードに NMState State Controller をデーモンセットとしてデプロイしています。
27.1.1.2. CLI を使用した Kubernetes NMState Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc
) を使用して、Kubernetes NMState Operator をインストールできます。インストールが完了すると、Operator はすべてのクラスターノードに NMState State Controller をデーモンセットとしてデプロイできます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
nmstateOperator
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 のインスタンスを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
nmstate
Operator のデプロイメントが実行されていることを確認します。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 出力例
Name Phase kubernetes-nmstate-operator.4.12.0-202210210157 Succeeded
Name Phase kubernetes-nmstate-operator.4.12.0-202210210157 Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
27.1.2. Kubernetes NMState Operator のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
Operator Lifecycle Manager (OLM) を使用して Kubernetes NMState Operator をアンインストールできますが、設計上、OLM は関連付けられているカスタムリソース定義 (CRD)、カスタムリソース (CR)、API サービスを削除しません。
OLM によって使用される Subcription
リソースから Kubernetes NMState Operator をアンインストールする前に、削除する Kubernetes NMState Operator リソースを特定します。そうすることで、実行中のクラスターに影響を与えることなくリソースを削除できます。
Kubernetes NMState Operator を再インストールする必要がある場合は、「CLI を使用した Kubernetes NMState Operator のインストール」または「Web コンソールを使用した Kubernetes NMState Operator のインストール」を参照してください。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
次のコマンドを実行して、
Subcription
リソースから Kubernetes NMState Operator のサブスクライブを解除します。oc delete --namespace openshift-nmstate subscription kubernetes-nmstate-operator
$ oc delete --namespace openshift-nmstate subscription kubernetes-nmstate-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kubernetes NMState Operator に関連付ける
ClusterServiceVersion
(CSV)リソースを見つけます。oc get --namespace openshift-nmstate clusterserviceversion
$ oc get --namespace openshift-nmstate clusterserviceversion
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CSV リソースをリストする出力例
NAME DISPLAY VERSION REPLACES PHASE kubernetes-nmstate-operator.v4.18.0 Kubernetes NMState Operator 4.18.0 Succeeded
NAME DISPLAY VERSION REPLACES PHASE kubernetes-nmstate-operator.v4.18.0 Kubernetes NMState Operator 4.18.0 Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CSV リソースを削除します。ファイルを削除した後、OLM は Operator 用に作成された
RBAC
などの特定のリソースを削除します。oc delete --namespace openshift-nmstate clusterserviceversion kubernetes-nmstate-operator.v4.18.0
$ oc delete --namespace openshift-nmstate clusterserviceversion kubernetes-nmstate-operator.v4.18.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、
nmstate
CR および関連するDeployment
リソースを削除します。oc -n openshift-nmstate delete nmstate nmstate
$ oc -n openshift-nmstate delete nmstate nmstate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete --all deployments --namespace=openshift-nmstate
$ oc delete --all deployments --namespace=openshift-nmstate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、
nmstate.io
namespace に存在するnmstates
など、カスタムリソース定義(CRD)をすべて削除します。oc delete crd nmstates.nmstate.io
$ oc delete crd nmstates.nmstate.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete crd nodenetworkconfigurationenactments.nmstate.io
$ oc delete crd nodenetworkconfigurationenactments.nmstate.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete crd nodenetworkstates.nmstate.io
$ oc delete crd nodenetworkstates.nmstate.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete crd nodenetworkconfigurationpolicies.nmstate.io
$ oc delete crd nodenetworkconfigurationpolicies.nmstate.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespace を削除します。
oc delete namespace kubernetes-nmstate
$ oc delete namespace kubernetes-nmstate
Copy to Clipboard Copied! Toggle word wrap Toggle overflow