Networking Operators


OpenShift Dedicated 4

在 OpenShift Dedicated 中管理特定于网络的 Operator

摘要

本文档涵盖了 OpenShift Dedicated 中各种与网络相关的 Operator 的安装、配置和管理。

第 1 章 OpenShift Dedicated 中的 DNS Operator

在 OpenShift Dedicated 中,DNS Operator 部署和管理 CoreDNS 实例,为集群中的 pod 提供名称解析服务,启用基于 DNS 的 Kubernetes 服务发现,并解析内部 cluster.local 名称。

默认情况下,这个 Operator 安装在 OpenShift Dedicated 集群上。

1.1. 使用 DNS 转发

为集群配置 DNS 转发服务器和上游解析器。

您可以使用以下方法使用 DNS 转发来覆盖 /etc/resolv.conf 文件中的默认转发配置:

  • 为每个区指定名称服务器 (spec.servers)。如果转发区是 OpenShift Dedicated 管理的入口域,则上游名称服务器必须为域授权。

    重要

    您必须至少指定一个区。否则,集群可能会丢失功能。

  • 提供上游 DNS 服务器列表 (spec.upstreamResolvers)。
  • 更改默认转发策略。

默认域的 DNS 转发配置可以同时在 /etc/resolv.conf 文件和上游 DNS 服务器中指定默认服务器。

重要

在创建 pod 的过程中,Kubernetes 使用节点上存在的 /etc/resolv.conf 文件。如果您修改主机节点上的 /etc/resolv.conf 文件,则更改不会传播到容器中存在的 /etc/resolv.conf 文件。您必须重新创建容器才能使更改生效。

流程

  • 修改名为 default 的 DNS Operator 对象:

    $ oc edit dns.operator/default

    发出上一命令后,Operator 会根据 spec.servers 创建并更新名为 dns-default 的配置映射,并使用额外的服务器配置块。

    重要

    当为 zones 参数指定值时,请确保只转发到特定区域,如您的内网。您必须至少指定一个区。否则,集群可能会丢失功能。

    如果任何服务器都没有与查询匹配的区域,则名称解析会返回上游 DNS 服务器。

    配置 DNS 转发

    apiVersion: operator.openshift.io/v1
    kind: DNS
    metadata:
      name: default
    spec:
      cache:
        negativeTTL: 0s
        positiveTTL: 0s
      logLevel: Normal
      nodePlacement: {}
      operatorLogLevel: Normal
      servers:
      - name: example-server
        zones:
        - example.com
        forwardPlugin:
          policy: Random
          upstreams:
          - 1.1.1.1
          - 2.2.2.2:5353
      upstreamResolvers:
        policy: Random
        protocolStrategy: ""
        transportConfig: {}
        upstreams:
        - type: SystemResolvConf
        - type: Network
          address: 1.2.3.4
          port: 53
        status:
          clusterDomain: cluster.local
          clusterIP: x.y.z.10
          conditions:
    ...

    其中:

    spec.servers.name
    必须符合 rfc6335 服务名称语法。
    spec.servers.zones
    必须符合 rfc1123 子域语法。对于 区域,集群域 cluster.local 无效。
    spec.servers.forwardPlugin.policy
    指定上游选择策略。默认值为 Random ;允许的值是 RoundRobinSequential
    spec.servers.forwardPlugin.upstreams
    必须为每个 forwardPlugin 提供超过 15 个上游 条目。
    spec.upstreamResolvers.upstreams
    指定 upstreamResolver,以覆盖默认转发策略,并将 DNS 解析转发到默认域的指定 DNS 解析器(上游解析器)。当您需要自定义上游解析器时,您可以使用此字段;否则,查询使用 /etc/resolv.conf 中声明的服务器。
    spec.upstreamResolvers.policy
    指定上游选择顺序。默认值为 Sequential ;允许的值为 RandomRoundRobinSequential
    spec.upstreamResolvers.protocolStrategy
    指定 TCP 以强制协议用于上游 DNS 请求,即使请求使用了 UDP。有效值为 TCP 并省略。如果被省略,平台会选择一个默认值,通常是原始客户端请求的协议。
    spec.upstreamResolvers.transportConfig
    指定在将 DNS 请求转发到上游解析器时要使用的传输类型、服务器名称和可选的自定义 CA 或 CA 捆绑包。
    spec.upstreamResolvers.upstreams.type
    指定上游 两种类型:SystemResolvConfNetworkSystemResolvConf 将上游配置为使用 /etc/resolv.confNetwork 定义一个 Networkresolver。您可以指定其中一个或两者都指定。
    spec.upstreamResolvers.upstreams.address
    当类型为 Network 时,指定有效的 IPv4 或 IPv6 地址。
    spec.upstreamResolvers.upstreams.port
    指定提供端口号的可选字段。有效值在 165535 之间;省略时默认为 853。

第 2 章 OpenShift Dedicated 中的 Ingress Operator

Ingress Operator 实现 IngressController API,是负责启用对 OpenShift Dedicated 集群服务的外部访问的组件。

默认情况下,这个 Operator 安装在 OpenShift Dedicated 集群上。

2.1. OpenShift Dedicated Ingress Operator

在创建 OpenShift Dedicated 集群时,在集群中运行的 pod 和服务各自分配自己的 IP 地址。IP 地址可供附近运行的其他容器集和服务访问,但外部客户端无法访问这些 IP 地址。

Ingress Operator 通过部署和管理一个或多个基于 HAProxy 的 Ingress Controller 来处理路由,使外部客户端可以访问您的服务。

Red Hat Site Reliability engineerss (SRE) 为 OpenShift Dedicated 集群管理 Ingress Operator。虽然您无法更改 Ingress Operator 的设置,但您可以查看默认的 Ingress Controller 配置、状态和日志以及 Ingress Operator 状态。

2.2. 查看默认的 Ingress Controller

Ingress Operator 是 OpenShift Dedicated 的一个核心功能,开箱即用。

每个 OpenShift Dedicated 安装都有一个名为 default 的 ingresscontroller。它可以通过额外的 Ingress Controller 来补充。如果删除了默认的 ingresscontroller,Ingress Operator 会在一分钟内自动重新创建。

流程

  • 查看默认的 Ingress Controller:

    $ oc describe --namespace=openshift-ingress-operator ingresscontroller/default

2.3. 查看 Ingress Operator 状态

您可以查看并检查 Ingress Operator 的状态。

流程

  • 查看您的 Ingress Operator 状态:

    $ oc describe clusteroperators/ingress

2.4. 查看 Ingress Controller 日志

您可以查看 Ingress Controller 日志。

流程

  • 查看 Ingress Controller 日志:

    $ oc logs --namespace=openshift-ingress-operator deployments/ingress-operator -c <container_name>

2.5. 查看 Ingress Controller 状态

您可以查看特定 Ingress Controller 的状态。

流程

  • 查看 Ingress Controller 的状态:

    $ oc describe --namespace=openshift-ingress-operator ingresscontroller/<name>

2.6. 管理默认 Ingress Controller 功能

下表详细介绍了由 Ingress Operator 管理 的默认 Ingress Controller 组件,以及 Red Hat Site Reliability Engineering (SRE)是否维护 OpenShift Dedicated 集群上的此组件。

Expand
表 2.1. Ingress Operator 责任图
Ingress 组件管理方默认配置?

Scaling Ingress Controller

SRE

Ingress Operator thread count

SRE

Ingress Controller 访问日志

SRE

Ingress Controller 分片

SRE

Ingress Controller 路由准入策略

SRE

Ingress Controller 通配符路由

SRE

Ingress Controller X-Forwarded 标头

SRE

Ingress Controller 路由压缩

SRE

在创建 OpenShift Dedicated 集群时,您可以指定命名空间标签选择器,以便与这些标签匹配的命名空间不包括在默认 应用程序入口 中。这可让您通过默认入口排除托管工作负载的命名空间,如带有敏感数据或内部服务的命名空间。

注意

不要排除托管所需平台路由的命名空间(如 openshift-consoleopenshift-authentication)。排除它们可能会破坏 Web 控制台、下载或 OAuth 流。

使用 ocm CLI 在创建集群时为默认入口传递命名空间排除。

先决条件

  • 已安装 ocm CLI,并使用可以在 Red Hat OpenShift Cluster Manager 中创建集群的凭证登录。
  • 用于 ocm create cluster 的非交互模式。对于互动模式,在 ocm 版本可用时,使用提示进行 ingress 设置。

流程

  1. 运行 ocm create cluster -h 并确认您的 ocm 版本列出了 the --exclude-namespace-selector 标志。
  2. 使用云供应商和订阅模型所需的参数构建 ocm create cluster 命令。

    以下示例显示了与入口相关的片段。将其余标记替换为您的环境所需的值。

    $ ocm create cluster <cluster_name> \
      --provider=<aws_or_gcp> \
      <other_required_flags> \
      --default-ingress-excluded-namespace-selectors '<key>=<value>,<key2>=<value2>'

    其中:

    <cluster_name>
    指定集群名称。
    --provider=<aws_or_gcp>
    指定云供应商。
    <other_required_flags>
    所需的参数,如区域、版本、客户云订阅(CCS)设置或计费标志,如平台集群创建文档中所述。
    --default-ingress-excluded-namespace-selectors
    指定从默认应用程序入口中排除匹配的命名空间的标签选择器。服务验证这些排除。将 & lt;key>=<value > 替换为您的标签。不要在 = 符号中包含空格。

验证

  • 集群进入 就绪状态 后,确认入口设置并检查配置的排除数据的默认入口对象。

    $ ocm list ingress -c <cluster_name>

使用 ocm CLI 将默认入口的命名空间排除传递给 OpenShift Dedicated 集群。

先决条件

  • 已安装 ocm CLI,并使用修改 Red Hat OpenShift Cluster Manager 中的集群的凭证登录。
  • 您已配置了 OpenShift Dedicated 集群。

流程

  1. 运行以下命令将命名空间排除传递给集群:

    $ ocm edit ingress <ingress_name> -c <cluster_id> \
      --excluded-namespace-selectors "key1=val1,key2=val2,key1=val3,foo=bar" \
      <cluster_name>

    其中:

    <ingress_name>
    指定您的入口名称。
    <cluster_id>
    指定集群 ID。
    --excluded-namespace-selectors "key1=val1,key2=val2,key1=val3,foo=bar"
    指定从默认应用程序入口中排除匹配的命名空间的标签选择器。服务验证这些排除。将 & lt;key>=<value > 替换为您的标签。不要在 = 符号中包含空格。
    <cluster_name>
    指定集群名称。

指定命名空间标签选择器,以便在 OpenShift Cluster Manager 中创建 OpenShift Dedicated 集群时,与这些标签匹配的命名空间不包括在默认 应用程序入口 中。

流程

  1. Networking 屏幕上,选择 Application ingress settings 下的 Custom Settings

    注意

    所有自定义设置都是可选的。

  2. Route selector 中,输入以逗号分隔的 key=value 对列表来限制此入口公开的路由。如果所有路由都应根据您的其他选择保持合格,请将该字段留空。
  3. Excluded 命名空间中,输入以逗号分隔的命名空间名称列表,其路由不得使用此入口。
  4. Exclude namespace selectors 中,指定一个或多个标签选择器。对于每个选择器,提供标签键和以逗号分隔的标签值列表。默认 Ingress Controller 不适用于标签满足任何配置的选择器的命名空间。

    重要

    不要包括逗号之间的空格,例如,使用 finance、HR、legal,而不是 财务、HR、法律

  5. 在命名空间共享主机名时为路由准入设置 Namespace ownership 策略,例如,为限制性准入选择 Strict
  6. Wildcard 策略设置为 允许或禁止路由主机名中的通配符模式,例如,选择 Disallowed to block wildcard host routes。

    有关自定义应用程序入口设置的更多信息,请点击每个设置提供的信息图标。

指定命名空间标签选择器,以便与这些标签匹配的命名空间不包括在 OpenShift Cluster Manager 中配置的 OpenShift Dedicated 集群的默认 应用程序入口 中。

流程

  1. OpenShift Cluster Manager 中,导航到 Cluster List 页面,再选择您要为其设置命名空间排除的集群。
  2. 在所选集群中,选择 Networking 选项卡。
  3. 选择 Edit application ingress

    注意

    所有自定义设置都是可选的。

  4. Route selector 中,输入以逗号分隔的 key=value 对列表来限制此入口公开的路由。如果所有路由都应根据您的其他选择保持合格,请将该字段留空。
  5. Excluded 命名空间中,输入以逗号分隔的命名空间名称列表,其路由不得使用此入口。
  6. Exclude namespace selectors 中,指定一个或多个标签选择器。对于每个选择器,提供标签键和以逗号分隔的标签值列表。默认 Ingress Controller 不适用于标签满足任何配置的选择器的命名空间。

    重要

    不要包括逗号之间的空格,例如,使用 finance、HR、legal,而不是 财务、HR、法律

  7. 在命名空间共享主机名时为路由准入设置 Namespace ownership 策略,例如,为限制性准入选择 Strict
  8. Wildcard 策略设置为 允许或禁止路由主机名中的通配符模式,例如,选择 Disallowed to block wildcard host routes。

    有关自定义应用程序入口设置的更多信息,请点击每个设置提供的信息图标。

  9. 选择 Save 来配置带有您的更改的 ingress。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部