2.3. 在 MicroShift 启动前配置 IPv6 双栈网络
您可以在启动该服务前,使用配置文件将 MicroShift 集群配置为在支持 IPv4 和 IPv6 地址系列的双栈网络上运行。
- 配置中的第一个 IP 系列是集群中的主要 IP 堆栈。
- 使用双栈网络运行集群后,通过重启双栈来为双栈启用应用程序 pod 和附加服务。
OVN-Kubernetes 网络插件要求 IPv4 和 IPv6 默认路由位于同一个网络设备中。不支持独立网络设备上的 IPv4 和 IPv6 默认路由。
当使用需要 IPv6 的双栈网络时,您无法使用 IPv4 映射 IPv6 地址,如 ::FFFF:198.51.100.1
。
先决条件
-
已安装 OpenShift CLI(
oc
)。 - 有对集群的 root 访问权限。
- 集群使用 OVN-Kubernetes 网络插件。
- 主机同时具有 IPv4 和 IPv6 地址和路由,包括每个地址的默认地址。
- 主机至少有两个 L3 网络,即 IPv4 和 IPv6。
流程
-
如果您还没有这样做,请在
/etc/microshift/
目录中生成提供的config.yaml.default
文件的副本,将它重命名为config.yaml
。 将新的 MicroShift
config.yaml
保留在/etc/microshift/
目录中。MicroShift 服务每次启动时都会读取config.yaml
文件。注意创建后,
config.yaml
文件优先于内置设置。如果您还没有启动 MicroShift,请将 MicroShift YAML 的
network
部分中的默认值替换为您的有效值。带有网络分配的双栈 IPv6 网络配置示例
apiServer: # ... apiServer: subjectAltNames: - 192.168.113.117 - 2001:db9:ca7:ff::1db8 network: clusterNetwork: - 10.42.0.0/16 - fd01::/48 1 serviceNetwork: - 10.43.0.0/16 - fd02::/112 2 node: nodeIP: 192.168.113.117 3 nodeIPv6: 2001:db9:ca7:ff::1db8 4 # ...
运行以下命令,完成任何其他 MicroShift 配置,然后启动 MicroShift:
$ sudo systemctl start microshift
- 根据需要重置应用 pod 和服务的 IP 系列策略,然后重新启动这些应用 pod 和服务,以启用双栈网络。如需简单示例,请参阅"为应用程序 pod 和服务重置 IP 系列策略"。
验证
您可以按照以下步骤验证所有系统服务和 pod 是否具有两个 IP 地址,每个系列一个:
运行以下命令,检索节点资源中定义的网络:
$ oc get pod -n openshift-ingress router-default-5b75594b4-w7w6s -o jsonpath='{.status.podIPs}'
输出示例
[{"ip":"10.42.0.4"},{"ip":"fd01:0:0:1::4"}]
运行以下命令,检索主机网络 pod 定义的网络:
$ oc get pod -n openshift-ovn-kubernetes ovnkube-master-2fm2k -o jsonpath='{.status.podIPs}'
输出示例
[{"ip":"192.168.113.117"},{"ip":"2001:db9:ca7:ff::1db8"}]