4.5. 验证 Multus 网络
要确定 Multus 是否在集群中工作,请验证 Multus 网络。
流程
根据您的网络配置选择,OpenShift Data Foundation 操作器将执行以下操作之一:
-
如果为公共网络接口只选择了一个 NetworkAttachmentDefinition(如
ocs-public-cluster),则应用程序 Pod 和 OpenShift Data Foundation 集群之间的流量将在此网络上发生。此外,集群也将自行配置,以也使用此网络在 OSD 之间复制和重新平衡流量。 -
如果在存储集群安装过程中,分别为公共网络接口和集群网络接口选择了 NetworkAttachmentDefinition(如
ocs-public和ocs-cluster),则客户端存储流量将位于公共网络和集群网络中,用于在 OSD 之间复制和重新平衡流量。
要验证网络配置是否正确,请完成以下步骤:
在 OpenShift 控制台中,导航到 Installed Operators → OpenShift Data Foundation → Storage System → ocs-storagecluster-storagesystem → Resources → ocs-storagecluster。
在 YAML 选项卡中,在 spec 部分搜索 network,并确保您的网络接口选择配置正确。本例用于将客户端存储流量与存储复制流量分隔开。
输出示例:
[..]
spec:
[..]
network:
ipFamily: IPv4
provider: multus
selectors:
cluster: openshift-storage/ocs-cluster
public: openshift-storage/ocs-public
[..]要使用命令行界面验证网络配置是否正确,请运行以下命令:
$ oc get storagecluster ocs-storagecluster \
-n openshift-storage \
-o=jsonpath='{.spec.network}{"\n"}'输出示例:
{"ipFamily":"IPv4","provider":"multus","selectors":{"cluster":"openshift-storage/ocs-cluster","public":"openshift-storage/ocs-public"}}确认 OSD pod 使用正确的网络
在 openshift-storage 命名空间中,使用其中一个 OSD pod 验证 pod 是否与正确的网络连接。本例用于将客户端存储流量与存储复制流量分隔开。
注意
如果两者都已创建,只有 OSD pod 将连接到 Multus 公共网络和集群网络。所有其他 OCS pod 将连接到 Multus 公共网络。
$ oc get -n openshift-storage $(oc get pods -n openshift-storage -o name -l app=rook-ceph-osd | grep 'osd-0') -o=jsonpath='{.metadata.annotations.k8s\.v1\.cni\.cncf\.io/network-status}{"\n"}'输出示例:
[{
"name": "openshift-sdn",
"interface": "eth0",
"ips": [
"10.129.2.30"
],
"default": true,
"dns": {}
},{
"name": "openshift-storage/ocs-cluster",
"interface": "net1",
"ips": [
"192.168.2.1"
],
"mac": "e2:04:c6:81:52:f1",
"dns": {}
},{
"name": "openshift-storage/ocs-public",
"interface": "net2",
"ips": [
"192.168.1.1"
],
"mac": "ee:a0:b6:a4:07:94",
"dns": {}
}]若要使用命令行界面确认 OSD pod 使用正确的网络,可运行以下命令(需要 jq 实用程序):
$ oc get -n openshift-storage $(oc get pods -n openshift-storage -o name -l app=rook-ceph-osd | grep 'osd-0') -o=jsonpath='{.metadata.annotations.k8s\.v1\.cni\.cncf\.io/network-status}{"\n"}' | jq -r '.[].name'输出示例:
openshift-sdn openshift-storage/ocs-cluster openshift-storage/ocs-public