搜索

11.2. 连接健康检查实现

download PDF

在集群中,连接检查控制器或编配连接验证检查。连接测试的结果存储在 openshift-network-diagnostics 命名空间中的 PodNetworkConnectivity 对象中。连接测试会每分钟以并行方式执行。

Cluster Network Operator(CNO)将几个资源部署到集群,以发送和接收连接性健康检查:

健康检查源
此程序部署在一个由 Deployment 对象管理的单个 pod 副本集中。程序会消耗 PodNetworkConnectivity 对象,并连接到每个对象中指定的 spec.targetEndpoint
健康检查目标
pod 作为集群中每个节点上的守护进程集的一部分部署。pod 侦听入站健康检查。在每个节点上存在这个 pod 可以测试到每个节点的连接。

您可以使用节点选择器配置在其上运行网络连接源和目标的节点。另外,您可以为源和目标 pod 指定允许的容限。配置在 config.openshift.io/v1 API 组中的 Network API 的单例 cluster 自定义资源中定义。

Pod 调度在更新了配置后发生。因此,您必须在更新配置前应用要在选择器中使用的节点标签。更新网络连接后应用的标签将忽略 pod 放置。

请参考以下 YAML 中的默认配置:

连接源和目标 pod 的默认配置

apiVersion: config.openshift.io/v1
kind: Network
metadata:
  name: cluster
spec:
  # ...
    networkDiagnostics: 1
      mode: "All" 2
      sourcePlacement: 3
        nodeSelector:
          checkNodes: groupA
        tolerations:
        - key: myTaint
          effect: NoSchedule
          operator: Exists
      targetPlacement: 4
        nodeSelector:
          checkNodes: groupB
        tolerations:
        - key: myOtherTaint
          effect: NoExecute
          operator: Exists

1 1
指定网络诊断配置。如果没有指定值,或者指定了空对象,并在名为 clusternetwork.operator.openshift.io 自定义资源中设置 spec.disableNetworkDiagnostics=true,则会禁用网络诊断。如果设置,这个值会覆盖 spec.disableNetworkDiagnostics=true
2
指定诊断模式。该值可以是空字符串、AllDisabled。空字符串等同于指定 All
3
可选:指定连接检查源 pod 的选择器。您可以使用 nodeSelectortolerations 字段来进一步指定 sourceNode pod。但是,您不必对源和目标 pod 使用 nodeSelectortolerations。这些是可省略的可选字段。
4
可选:指定连接检查目标 pod 的选择器。您可以使用 nodeSelectortolerations 字段来进一步指定 targetNode pod。但是,您不必对源和目标 pod 使用 nodeSelectortolerations。这些是可省略的可选字段。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.