4.5. 验证 Multus 网络

要确定 Multus 是否在集群中工作,请验证 Multus 网络。

步骤

  1. 根据网络配置选择,OpenShift Container Storage Operator 执行以下操作之一:

    • 如果为公共网络接口只选择一个 NetworkAttachmentDefinition (如 ocs-public-cluster),则此网络上发生应用程序 pod 和 OpenShift Container Storage 集群之间的流量。此外,该群集还自行配置为使用此网络来进行复制和重新平衡 OSD 之间的流量。
    • 如果在存储集群安装过程中,分别为公共网络接口和集群网络接口选择了 NetworkAttachmentDefinition(如 ocs-publicocs-cluster),则客户端存储流量将位于公共网络和集群网络中,用于在 OSD 之间复制和重新平衡流量。
  2. 要验证网络配置是否正确,请按照以下步骤执行:

    1. 在 OpenShift 控制台中,点 Installed OperatorsStorage Clusterocs-storagecluster
    2. 在 YAML 选项卡中,在 spec 部分搜索 network,并确保您的网络接口选择配置正确。本例用于将客户端存储流量与存储复制流量分隔开。

      输出示例:

      [..]
      spec:
          [..]
          network:
          provider: multus
          selectors:
            cluster: openshift-storage/ocs-cluster
            public: openshift-storage/ocs-public
          [..]
  3. 要使用命令行界面验证网络配置是否正确,请运行以下命令:

    $ oc get storagecluster ocs-storagecluster \
    -n openshift-storage \
    -o=jsonpath='{.spec.network}{"\n"}'

    输出示例:

    {"provider":"multus","selectors":{"cluster":"openshift-storage/ocs-cluster","public":"openshift-storage/ocs-public"}}
  4. 确认 OSD pod 使用正确的网络:

    1. 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": {}
      }]
  5. 若要使用命令行界面确认 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