- op: add
path: /spec/platformSpec/baremetal/machineNetworks/- (1)
value: 192.168.1.0/24
# ...
作为集群管理员,您可以将您的 IPv4 单栈集群转换为支持 IPv4 和 IPv6 地址族的双网络集群网络。转换为双栈网络后,新的和现有的 Pod 都启用了双栈网络。
当使用需要 IPv6 的双栈网络时,您不能使用 IPv4 映射的 IPv6 地址,例如 `::FFFF:198.51.100.1`。 |
有关双栈网络的平台特定支持的更多信息,请参阅 OVN-Kubernetes 目的
作为集群管理员,您可以将您的单栈集群网络转换为双栈集群网络。
将集群转换为使用双栈网络后,您必须重新创建任何现有 Pod 以便它们接收 IPv6 地址,因为只有新 Pod 才分配 IPv6 地址。 |
将单栈集群网络转换为双栈集群网络包括创建补丁并将它们应用于集群的网络和基础设施。您可以为在安装程序预配的基础设施上运行的集群转换为双栈集群网络。
每个更改 `clusterNetwork`、`serviceNetwork`、`apiServerInternalIPs` 和 `ingressIP` 对象的补丁操作都会触发集群重启。更改 `MachineNetworks` 对象不会导致集群重启。 |
如果您需要为现有双栈配置集群中的 API 和 Ingress 服务添加 IPv6 虚拟 IP (VIP),您只需要修补集群的基础设施,而不需要修补集群的网络。
如果您已将集群升级到 OpenShift Container Platform 4.16 或更高版本,并且您需要将单栈集群网络转换为双栈集群网络,则必须从 `install-config.yaml` 文件中为 API 和 Ingress 服务在 YAML 配置补丁文件中指定现有的 IPv4 `machineNetwork` 网络配置。此配置确保 IPv4 流量存在于与默认网关相同的网络接口中。 包含为 `machineNetwork` 网络添加的 IPv4 地址块的示例 YAML 配置文件
|
您已安装 OpenShift CLI (`oc`)。
您已使用具有 `cluster-admin` 权限的用户登录到集群。
您的集群使用 OVN-Kubernetes 网络插件。
集群节点具有 IPv6 地址。
您已根据您的基础设施配置了支持 IPv6 的路由器。
要为集群和服务网络指定 IPv6 地址块,请创建一个 YAML 配置补丁文件,该文件具有与以下示例类似的配置
- op: add
path: /spec/clusterNetwork/-
value: (1)
cidr: fd01::/48
hostPrefix: 64
- op: add
path: /spec/serviceNetwork/-
value: fd02::/112 (2)
1 | 指定具有 `cidr` 和 `hostPrefix` 字段的对象。主机前缀必须为 64 或更大。IPv6 无类别域间路由 (CIDR) 前缀必须足够大以容纳指定的主机前缀。 |
2 | 指定前缀为 `112` 的 IPv6 CIDR。Kubernetes 只使用最低的 16 位。对于前缀 `112`,IP 地址从 `112` 位分配到 `128` 位。 |
通过在您的CLI中输入以下命令来修补集群网络配置
$ oc patch network.config.openshift.io cluster \(1)
--type='json' --patch-file <file>.yaml
1 | 其中file 指定您创建的YAML文件的名称。 |
network.config.openshift.io/cluster patched
为您的集群的API和Ingress服务指定IPv6 VIP。创建一个YAML配置补丁文件,其配置类似于以下示例
- op: add
path: /spec/platformSpec/baremetal/machineNetworks/- (1)
value: fd2e:6f44:5dd8::/64
- op: add
path: /spec/platformSpec/baremetal/apiServerInternalIPs/- (2)
value: fd2e:6f44:5dd8::4
- op: add
path: /spec/platformSpec/baremetal/ingressIPs/-
value: fd2e:6f44:5dd8::5
1 | 确保您为机器运行的 `machineNetwork` 网络指定地址块。您必须为机器网络选择 API 和 Ingress IP 地址。 |
2 | 请确保根据您的平台指定每个文件路径。此示例演示了裸机平台上的文件路径。 |
通过在您的CLI中输入以下命令来修补基础设施
$ oc patch infrastructure cluster \(1)
--type='json' --patch-file <file>.yaml
1 | 其中file 指定您创建的YAML文件的名称。 |
infrastructure/cluster patched
通过在您的CLI中输入以下命令来显示集群网络配置
$ oc describe network
通过检查集群网络配置是否识别您在YAML文件中指定的IPv6地址块,来验证网络配置上补丁的成功安装。
# ...
Status:
Cluster Network:
Cidr: 10.128.0.0/14
Host Prefix: 23
Cidr: fd01::/48
Host Prefix: 64
Cluster Network MTU: 1400
Network Type: OVNKubernetes
Service Network:
172.30.0.0/16
fd02::/112
# ...
对于在安装程序预配的基础设施上运行的集群,请完成以下附加任务
通过在您的CLI中输入以下命令来显示集群基础设施配置
$ oc describe infrastructure
通过检查基础设施是否识别您在YAML文件中指定的IPv6地址块,来验证集群基础设施上补丁的成功安装。
# ...
spec:
# ...
platformSpec:
baremetal:
apiServerInternalIPs:
- 192.168.123.5
- fd2e:6f44:5dd8::4
ingressIPs:
- 192.168.123.10
- fd2e:6f44:5dd8::5
status:
# ...
platformStatus:
baremetal:
apiServerInternalIP: 192.168.123.5
apiServerInternalIPs:
- 192.168.123.5
- fd2e:6f44:5dd8::4
ingressIP: 192.168.123.10
ingressIPs:
- 192.168.123.10
- fd2e:6f44:5dd8::5
# ...