第 1 章 关于 OVN-Kubernetes 网络插件


OVN-Kubernetes Container Network Interface (CNI)插件是 MicroShift 集群的默认网络解决方案。OVN-Kubernetes 是 pod 和基于 Open Virtual Network (OVN) 的服务的虚拟网络。

  • 默认网络配置和连接会在 MicroShift 中在安装过程中自动应用 microshift-networking RPM。
  • 使用 OVN-Kubernetes 网络插件的集群也会在节点上运行 Open vSwitch (OVS)。
  • OVN-K 在节点上配置 OVS,以实施声明的网络配置。
  • 默认情况下,主机物理接口不绑定到 OVN-K 网关网桥 br-ex。您可以使用主机上的标准工具来管理默认网关,如 Network Manager CLI (nmcli)。
  • MicroShift 不支持更改 CNI。

使用配置文件或自定义脚本,您可以配置以下网络设置:

  • 您可以使用子网 CIDR 范围为 pod 分配 IP 地址。
  • 您可以更改最大传输单元(MTU)值。
  • 您可以配置防火墙入口和出口。
  • 您可以在 MicroShift 集群中定义网络策略,包括入口和出口规则。
  • 您可以使用 MicroShift Multus 插件串联其他 CNI 插件。
  • 您可以配置或删除入口路由器。

1.1. MicroShift 网络配置列表

下表总结了作为默认值、配置支持或未通过 MicroShift 服务提供的网络功能和功能的状态:

表 1.1. MicroShift 网络功能和功能概述
网络功能可用性支持配置

公告地址

[1]

Kubernetes 网络策略

Kubernetes 网络策略日志

不可用

N/A

负载平衡

多播 DNS

[2]

网络代理

[3]

CRI-O

网络性能

MTU 配置

出口 IP

不可用

N/A

出口防火墙

不可用

N/A

出口路由器

不可用

N/A

防火墙

没有 [4]

硬件卸载

不可用

N/A

混合网络

不可用

N/A

集群内通信的 IPsec 加密

不可用

N/A

IPv6

不可用 [5]

N/A

入口路由器

[6]

多个网络插件

  1. 如果未设置,则默认值会在服务网络后设置为下一个即时子网。例如,当服务网络为 10.43.0.0/16 时,广告地址 被设置为 10.44.0.0/32
  2. 多播 DNS 协议 (mDNS) 允许使用在 5353/UDP 端口上公开的多播进行名称解析和服务发现。
  3. MicroShift 中没有内置透明代理的出口流量。出口必须手动配置。
  4. RHEL for Edge 支持设置 firewalld 服务。
  5. 不支持 IPv6。IPv6 只能通过 MicroShift Multus CNI 插件连接到其他网络来使用。
  6. 使用 MicroShift config.yaml 文件配置。

1.1.1. 默认设置

如果没有创建 config.yaml 文件,则使用默认值。以下示例显示了默认配置设置。

  • 要查看默认值,请运行以下命令:

    $ microshift show-config

    YAML 格式的默认值示例

    apiServer:
      advertiseAddress: 10.44.0.0/32 1
      auditLog:
        maxFileAge: 0 2
        maxFileSize: 200 3
        maxFiles: 10 4
        profile: Default 5
      namedCertificates:
        - certPath: ""
          keyPath: ""
          names:
            - ""
      subjectAltNames: [] 6
    debugging:
      logLevel: "Normal" 7
    dns:
      baseDomain: microshift.example.com 8
    etcd:
      memoryLimitMB: 0 9
    ingress:
      listenAddress:
        - "" 10
      ports: 11
        http: 80
        https: 443
      routeAdmissionPolicy:
        namespaceOwnership: InterNamespaceAllowed 12
      status: Managed 13
    manifests: 14
      kustomizePaths:
        - /usr/lib/microshift/manifests
        - /usr/lib/microshift/manifests.d/*
        - /etc/microshift/manifests
        - /etc/microshift/manifests.d/*
    network:
      clusterNetwork:
        - 10.42.0.0/16 15
      serviceNetwork:
        - 10.43.0.0/16 16
      serviceNodePortRange: 30000-32767 17
    node:
      hostnameOverride: "" 18
      nodeIP: "" 19

    1
    指定 API 服务器公告给集群成员的 IP 地址的字符串。默认值根据服务网络的地址计算。
    2
    在自动删除前保留日志文件的时长。maxFileAge 参数中的默认值为 0 表示日志文件永远不会根据年龄删除。可以配置这个值。
    3
    默认情况下,当 audit.log 文件达到 maxFileSize 限制时,audit.log 文件会被轮转,MicroShift 开始写入新的 audit.log 文件。可以配置这个值。
    4
    保存的日志文件总数。默认情况下,MicroShift 保留 10 个日志文件。创建过量文件时,会删除最旧的文件。可以配置这个值。
    5
    仅记录读取和写入请求的日志元数据 ;除了 OAuth 访问令牌请求外,不记录请求正文。如果没有指定此字段,则使用 Default 配置集。
    6
    API 服务器证书的主题备用名称。
    7
    日志详细程度。此字段的有效值为 Normal,Debug,Trace, 或 TraceAll
    8
    默认情况下,etcd 根据需要使用内存来处理系统上的负载。但是,在内存限制的系统中,可能需要在给定时间限制 etcd 可以使用的内存量。
    9
    集群的基域。所有管理的 DNS 记录都是这个基础的子域。
    10
    ingress.listenAddress 值默认为主机的整个网络。有效可配置的值是一个列表,可以是单个 IP 地址或 NIC 名称,也可以是多个 IP 地址和 NIC 名称。
    11
    显示的默认端口。可配置。两个端口条目的有效值为 1-65535 范围内的单个唯一端口。ports.httpports.https 字段的值不能相同。
    12
    描述如何处理跨命名空间的主机名声明。默认情况下,允许路由在命名空间间声明相同主机名的不同路径。有效值为 StrictInterNamespaceAllowed。指定 Strict 可防止不同命名空间中的路由声明相同的主机名。如果在自定义 MicroShift config.yaml 中删除了该值,则会自动设置 InterNamespaceAllowed 值。
    13
    默认路由器状态,可以是 ManagedRemoved
    14
    用于扫描 kustomization 文件的位置,用于加载清单。设置为仅扫描这些路径的路径列表。设置为空列表以禁用加载清单。列表中的条目可以是 glob 模式,以匹配多个子目录。
    15
    从中分配 Pod IP 地址的 IP 地址块。在安装后此字段是不可变的。
    16
    Kubernetes 服务的虚拟 IP 地址块。服务的 IP 地址池.支持单个条目。在安装后此字段是不可变的。
    17
    端口范围允许用于 NodePort 类型的 Kubernetes 服务。如果没有指定,则使用默认 30000-32767 范围。没有指定 NodePort 的服务会自动从这个范围内分配一个。此参数可以在安装集群后更新。
    18
    节点的名称。默认值为 hostname。如果非空,则使用此字符串来识别节点,而不是主机名。在 MicroShift 首次启动后,您无法更改此不可变设置。
    19
    节点的 IP 地址。默认值是默认路由的 IP 地址。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.