第 10 章 分配出口 IP 地址
作为集群管理员,您可以为从一个命名空间中,或从一个命名空间内的特定 pod 中离开集群的网络流量分配一个出口 IP 地址。
10.1. 为一个命名空间分配出口 IP 地址 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以将一个或多个出口 IP 地址分配给一个命名空间,或分配给命名空间中的特定 pod。
先决条件
-
安装 OpenShift CLI(
oc
)。 - 以集群管理员身份登录集群。
- 至少配置一个节点来托管出口 IP 地址。
流程
创建
EgressIP
对象:-
创建一个
<egressips_name>.yaml
文件,其中<egressips_name>
是对象的名称。 在您创建的文件中,定义一个
EgressIP
对象,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
创建一个
运行以下命令来创建对象。
oc apply -f <egressips_name>.yaml
$ oc apply -f <egressips_name>.yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<egressips_name>
替换为对象的名称。
输出示例
egressips.k8s.ovn.org/<egressips_name> created
egressips.k8s.ovn.org/<egressips_name> created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
可选:保存
<egressips_name>.yaml
文件,以便稍后进行修改。 为需要出口 IP 地址的命名空间添加标签。要在第 1 步中定义的
EgressIP
对象的命名空间中添加标签,请运行以下命令:oc label ns <namespace> env=qa
$ oc label ns <namespace> env=qa
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<namespace>
替换为需要出口 IP 地址的命名空间。
验证
要显示集群中所有正在使用的出口 IP,请输入以下命令:
oc get egressip -o yaml
$ oc get egressip -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意无论配置了多少个出口 IP 地址,
oc get egressip
只返回一个出口 IP 地址。这并不是程序错误,它是 Kubernetes 的一个限制。作为临时解决方案,您可以传递-o yaml
或-o json
标志来返回所有正在使用的出口 IP 地址。输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow