This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.13.2.3. 为一个命名空间配置手动分配出口 IP 地址
在 OpenShift Container Platform 中,您可以将一个或多个出口 IP 与一个项目关联。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 -
已安装 OpenShift CLI(
oc
)。
流程
通过使用所需 IP 地址指定以下 JSON 对象来更新
NetNamespace
对象:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,将
project1
项目分配给 IP 地址192.168.1.100
:oc patch netnamespace project1 --type=merge \ -p '{"egressIPs": ["192.168.1.100"]}'
$ oc patch netnamespace project1 --type=merge \ -p '{"egressIPs": ["192.168.1.100"]}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以将
egressIPs
设置为位于不同节点上的两个或多个 IP 地址,以提供高可用性。如果设置了多个出口 IP 地址,Pod 会将列表中的第一个 IP 用于出口,但如果托管该 IP 地址的节点失败,Pod 会在短暂的延迟后切换到使用列表中的下一个 IP。注意由于 OpenShift SDN 管理
NetNamespace
对象,因此只能通过修改现有的NetNamespace
对象来进行更改。不要创建新的NetNamespace
对象。手动将出口 IP 分配给节点主机。在节点主机上的
HostSubnet
对象中设置egressIPs
参数。使用以下 JSON,尽可能纳入您要分配给该节点主机的所有 IP:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,指定
node1
应具有出口 IP192.168.1.100
、192.168.1.101
和192.168.1.102
:oc patch hostsubnet node1 --type=merge -p \ '{"egressIPs": ["192.168.1.100", "192.168.1.101", "192.168.1.102"]}'
$ oc patch hostsubnet node1 --type=merge -p \ '{"egressIPs": ["192.168.1.100", "192.168.1.101", "192.168.1.102"]}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在上例中,
project1
的所有出口流量都会被路由到托管指定出口 IP 地址的节点,然后(使用 NAT)连接到那个 IP 地址。