$ cat << EOF | oc apply -f -
apiVersion: v1
kind: Namespace
metadata:
name: openshift-nmstate
spec:
finalizers:
- kubernetes
EOF
Kubernetes NMState Operator提供了一个Kubernetes API,用于在OpenShift Container Platform集群的节点上使用NMState执行状态驱动的网络配置。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服务器配置为安装后任务。 |
在可以使用NMState与OpenShift Container Platform之前,必须安装Kubernetes NMState Operator。
Kubernetes NMState Operator更新辅助NIC的网络配置。该Operator无法更新主NIC的网络配置,也无法更新大多数内部网络上的 在裸机平台上,仅当在机器配置清单文件中将 |
OpenShift Container Platform使用nmstate
来报告和配置节点网络的状态。这使得可以通过将单个配置清单应用于集群来修改网络策略配置,例如在所有节点上创建Linux桥接。
节点网络由以下对象监控和更新
NodeNetworkState
报告该节点上的网络状态。
NodeNetworkConfigurationPolicy
描述节点上所需的网络配置。通过将NodeNetworkConfigurationPolicy
CR应用于集群,可以更新节点网络配置,包括添加和删除接口。
NodeNetworkConfigurationEnactment
报告对每个节点实施的网络策略。
可以使用Web控制台或CLI安装Kubernetes NMState Operator。
可以使用Web控制台安装Kubernetes NMState Operator。安装后,Operator可以将NMState状态控制器作为守护程序集部署到所有集群节点。
您已以具有cluster-admin
权限的用户身份登录。
选择操作符 → OperatorHub。
在所有项目下方的搜索字段中,输入nmstate
并单击Enter以搜索Kubernetes NMState Operator。
单击Kubernetes NMState Operator搜索结果。
单击安装以打开安装Operator窗口。
单击安装以安装Operator。
Operator安装完成后,单击查看Operator。
在提供的API下,单击创建实例以打开创建kubernetes-nmstate
实例的对话框。
在对话框的名称字段中,确保实例的名称为nmstate
。
名称限制是一个已知问题。该实例是整个集群的单例。 |
接受默认设置并点击创建以创建实例。
安装 Kubernetes NMState Operator 后,Operator 会将 NMState 状态控制器作为守护程序集部署到集群中的所有节点。
您可以使用 OpenShift CLI (oc
) 安装 Kubernetes NMState Operator。安装后,Operator 可以将 NMState 状态控制器作为守护程序集部署到集群中的所有节点。
您已安装 OpenShift CLI (oc
)。
您已以具有cluster-admin
权限的用户身份登录。
创建nmstate
Operator 命名空间
$ cat << EOF | oc apply -f -
apiVersion: v1
kind: Namespace
metadata:
name: openshift-nmstate
spec:
finalizers:
- kubernetes
EOF
创建OperatorGroup
$ cat << EOF | oc apply -f -
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
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:
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 部署的ClusterServiceVersion
(CSV) 状态等于Succeeded
$ oc get clusterserviceversion -n openshift-nmstate \
-o custom-columns=Name:.metadata.name,Phase:.status.phase
Name Phase
kubernetes-nmstate-operator.4.17.0-202210210157 Succeeded
创建nmstate
Operator 的实例
$ cat << EOF | oc apply -f -
apiVersion: nmstate.io/v1
kind: NMState
metadata:
name: nmstate
EOF
验证 NMState Operator 的 Pod 是否正在运行
$ oc get pod -n openshift-nmstate
Name Ready Status Restarts Age
pod/nmstate-cert-manager-5b47d8dddf-5wnb5 1/1 Running 0 77s
pod/nmstate-console-plugin-d6b76c6b9-4dcwm 1/1 Running 0 77s
pod/nmstate-handler-6v7rm 1/1 Running 0 77s
pod/nmstate-handler-bjcxw 1/1 Running 0 77s
pod/nmstate-handler-fv6m2 1/1 Running 0 77s
pod/nmstate-handler-kb8j6 1/1 Running 0 77s
pod/nmstate-handler-wn55p 1/1 Running 0 77s
pod/nmstate-operator-f6bb869b6-v5m92 1/1 Running 0 4m51s
pod/nmstate-webhook-66d6bbd84b-6n674 1/1 Running 0 77s
pod/nmstate-webhook-66d6bbd84b-vlzrd 1/1 Running 0 77s
Kubernetes NMState Operator (kubernetes-nmstate-operator
) 可以从kubernetes_nmstate_features_applied
组件收集指标,并将其作为可直接使用的指标公开。作为查看指标的用例,考虑您创建了NodeNetworkConfigurationPolicy
自定义资源并想要确认该策略是否处于活动状态的情况。
|
在**开发者**和**管理员**视角中,指标 UI 包含一些为所选项目预定义的 CPU、内存、带宽和网络数据包查询。您可以针对项目的 CPU、内存、带宽、网络数据包和应用程序指标运行自定义 Prometheus 查询语言 (PromQL) 查询。
以下示例演示了应用于 OpenShift Container Platform 集群的NodeNetworkConfigurationPolicy
清单示例。
# ...
interfaces:
- name: br1
type: linux-bridge
state: up
ipv4:
enabled: true
dhcp: true
dhcp-custom-hostname: foo
bridge:
options:
stp:
enabled: false
port: []
# ...
NodeNetworkConfigurationPolicy
清单公开指标并使其可用于集群监控 Operator (CMO)。以下示例显示了一些公开的指标。
controller_runtime_reconcile_time_seconds_bucket{controller="nodenetworkconfigurationenactment",le="0.005"} 16
controller_runtime_reconcile_time_seconds_bucket{controller="nodenetworkconfigurationenactment",le="0.01"} 16
controller_runtime_reconcile_time_seconds_bucket{controller="nodenetworkconfigurationenactment",le="0.025"} 16
...
# HELP kubernetes_nmstate_features_applied Number of nmstate features applied labeled by its name
# TYPE kubernetes_nmstate_features_applied gauge
kubernetes_nmstate_features_applied{name="dhcpv4-custom-hostname"} 1
您已安装 OpenShift CLI (oc
)。
您已以管理员身份登录 Web 控制台并安装了 Kubernetes NMState Operator。
您可以作为开发者或具有您正在查看其指标的项目的查看权限的用户访问集群。
您已为用户定义的项目启用监控。
您已在用户定义的项目中部署了一个服务。
您已创建NodeNetworkConfigurationPolicy
清单并将其应用于您的集群。
如果您想在 OpenShift Container Platform Web 控制台中从**开发者**视角查看指标,请完成以下任务:
点击观察。
要查看特定项目的指标,请在项目:列表中选择该项目。例如,openshift-nmstate
。
点击指标选项卡。
要在图上可视化指标,请从选择查询列表中选择一个查询,或通过选择显示 PromQL基于所选查询创建自定义 PromQL 查询。
在**开发者**视角中,您一次只能运行一个查询。 |
如果您想在 OpenShift Container Platform Web 控制台中从**管理员**视角查看指标,请完成以下任务:
点击观察→指标。
在表达式字段中输入kubernetes_nmstate_features_applied
。
点击添加查询,然后点击运行查询。
要浏览可视化指标,请执行以下任一任务:
要放大图表并更改时间范围,请执行以下任一任务:
要以视觉方式选择时间范围,请水平点击并拖动图表。
要选择时间范围,请使用控制台左上角的菜单。
要重置时间范围,请选择重置缩放。
要在特定时间点显示所有查询的输出,请将鼠标光标悬停在该时间点的图表上。查询输出将显示在一个弹出框中。