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 地址。