第 22 章 Kubernetes NMState
22.1. 关于 Kubernetes NMState Operator
Kubernetes NMState Operator 提供了一个 Kubernetes API,用于使用 NMState 在 OpenShift Container Platform 集群的节点上执行状态驱动的网络配置。Kubernetes NMState Operator 为用户提供了在集群节点上配置各种网络接口类型、DNS 和路由的功能。另外,集群节点中的守护进程会定期向 API 服务器报告每个节点的网络接口状态。
红帽仅在裸机、IBM Power、IBM Z 和 LinuxONE 上安装生产环境中支持 Kubernetes NMState Operator。
使用 OVN-Kubernetes 时,不支持更改默认网关接口。
在 OpenShift Container Platform 中使用 NMState 之前,必须安装 Kubernetes NMState Operator。
22.1.1. 安装 Kubernetes NMState Operator
您可以使用 web 控制台或 CLI 安装 Kubernetes NMState Operator。
22.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 部署为在所有集群节点中的守护进程集。
22.1.1.2. 使用 CLI 安装 Kubernetes NMState Operator
您可以使用 OpenShift CLI (oc)
安装 Kubernetes NMState Operator。安装后,Operator 可将 NMState State Controller 部署为在所有集群节点中的守护进程集。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
以具有
cluster-admin
权限的用户身份登录。
流程
创建
nmstate
Operator 命名空间:$ cat << EOF | oc apply -f - apiVersion: v1 kind: Namespace metadata: labels: kubernetes.io/metadata.name: openshift-nmstate name: openshift-nmstate name: openshift-nmstate spec: finalizers: - kubernetes EOF
创建
OperatorGroup
:$ cat << EOF | oc apply -f - apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: annotations: olm.providedAPIs: NMState.v1.nmstate.io name: openshift-nmstate namespace: openshift-nmstate spec: targetNamespaces: - openshift-nmstate EOF
订阅
nmstate
Operator:$ cat << EOF| oc apply -f - apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: labels: operators.coreos.com/kubernetes-nmstate-operator.openshift-nmstate: "" name: kubernetes-nmstate-operator namespace: openshift-nmstate spec: channel: stable installPlanApproval: Automatic name: kubernetes-nmstate-operator source: redhat-operators sourceNamespace: openshift-marketplace EOF
创建
nmstate
operator 实例:$ cat << EOF | oc apply -f - apiVersion: nmstate.io/v1 kind: NMState metadata: name: nmstate EOF
验证
确认
nmstate
operator 的部署正在运行:oc get clusterserviceversion -n openshift-nmstate \ -o custom-columns=Name:.metadata.name,Phase:.status.phase
输出示例
Name Phase kubernetes-nmstate-operator.4.10.0-202203120157 Succeeded