第 1 章 关于 OVN-Kubernetes 网络插件
OVN-Kubernetes Container Network Interface (CNI)插件是 MicroShift 集群的默认网络解决方案。OVN-Kubernetes 是 pod 和基于 Open Virtual Network (OVN) 的服务的虚拟网络。
-
默认网络配置和连接会在安装过程中使用
microshift-networking
RPM 在 MicroShift 中自动应用。 - 使用 OVN-Kubernetes 网络插件的集群也会在节点上运行 Open vSwitch (OVS)。
- OVN-K 在节点上配置 OVS,以实施声明的网络配置。
-
默认情况下,主机物理接口不绑定到 OVN-K 网关网桥
br-ex
。您可以使用主机上的标准工具来管理默认网关,如网络管理器 CLI (nmcli
)。 - MicroShift 不支持更改 CNI。
使用配置文件或自定义脚本,您可以配置以下网络设置:
- 您可以使用子网 CIDR 范围为 pod 分配 IP 地址。
- 您可以更改最大传输单元(MTU)值。
- 您可以配置防火墙入口和出口。
- 您可以在 MicroShift 集群中定义网络策略,包括入口和出口规则。
- 您可以使用 MicroShift Multus 插件串联其他 CNI 插件。
- 您可以配置或删除入口路由器。
1.1. MicroShift 网络配置列表
下表总结了作为默认值、配置支持或者 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] |
多个网络插件 | 是 | 是 |
-
如果未设置,则默认值将在服务网络后设置为下一个直接子网。例如,当服务网络为
10.43.0.0/16
时,advertiseAddress
被设置为10.44.0.0/32
。 -
多播 DNS 协议 (mDNS) 允许使用在
5353/UDP
端口上公开的多播进行名称解析和服务发现。 - MicroShift 中没有内置透明代理的出口流量。必须手动配置出口。
- RHEL for Edge 支持设置 firewalld 服务。
- 使用 OVN-Kubernetes 网络插件的单堆栈和双栈网络都支持 IPv6。IPv6 也可以通过连接到 MicroShift Multus CNI 插件的其他网络来使用。
-
使用 MicroShift
config.yaml
文件配置。
1.1.1. 默认设置
如果没有创建 config.yaml
文件,则使用默认值。以下示例显示了默认配置设置。
要查看默认值,请运行以下命令:
$ microshift show-config
YAML 格式输出的默认值
apiServer: advertiseAddress: 10.44.0.0/32 1 auditLog: maxFileAge: 0 maxFileSize: 200 maxFiles: 10 profile: Default namedCertificates: - certPath: "" keyPath: "" names: - "" subjectAltNames: [] debugging: logLevel: "Normal" dns: baseDomain: microshift.example.com etcd: memoryLimitMB: 0 ingress: listenAddress: - "" ports: http: 80 https: 443 routeAdmissionPolicy: namespaceOwnership: InterNamespaceAllowed status: Managed kubelet: manifests: kustomizePaths: - /usr/lib/microshift/manifests - /usr/lib/microshift/manifests.d/* - /etc/microshift/manifests - /etc/microshift/manifests.d/* network: clusterNetwork: - 10.42.0.0/16 serviceNetwork: - 10.43.0.0/16 serviceNodePortRange: 30000-32767 node: hostnameOverride: "" nodeIP: "" 2 nodeIPv6: "" storage: driver: "" 3 optionalCsiComponents: 4 - ""