$ oc get networks.config cluster -o jsonpath='{.spec.externalIP}{"\n"}'
您可以使用 MetalLB 实现或 IP 故障转移部署将 ExternalIP 资源附加到服务,以便服务可用于 OpenShift Container Platform 集群外部的流量。这种方式托管外部 IP 地址仅适用于在裸机硬件上安装的集群。
您必须确保正确配置外部网络基础设施以将流量路由到服务。
您的集群已配置启用 ExternalIPs。有关更多信息,请阅读 为服务配置 ExternalIPs。
不要将相同的 ExternalIP 用作出口 IP。 |
您可以将 ExternalIP 资源附加到服务。如果您已将集群配置为自动将资源附加到服务,则可能无需手动将 ExternalIP 附加到服务。
此过程中的示例使用了一种场景,该场景在具有 IP 故障转移配置的集群中手动将 ExternalIP 资源附加到服务。
通过在您的 CLI 中输入以下命令来确认 ExternalIP 资源的兼容 IP 地址范围
$ oc get networks.config cluster -o jsonpath='{.spec.externalIP}{"\n"}'
如果设置了 |
选择以下选项之一将 ExternalIP 资源附加到服务
如果您正在创建新的服务,请在spec.externalIPs
字段和allowedCIDRs
参数中指定一个或多个有效 IP 地址的值。
apiVersion: v1
kind: Service
metadata:
name: svc-with-externalip
spec:
externalIPs:
policy:
allowedCIDRs:
- 192.168.123.0/28
如果您要将 ExternalIP 附加到现有服务,请输入以下命令。将<name>
替换为服务名称。将<ip_address>
替换为有效的 ExternalIP 地址。您可以提供用逗号分隔的多个 IP 地址。
$ oc patch svc <name> -p \
'{
"spec": {
"externalIPs": [ "<ip_address>" ]
}
}'
例如
$ oc patch svc mysql-55-rhel7 -p '{"spec":{"externalIPs":["192.174.120.10"]}}'
"mysql-55-rhel7" patched
要确认 ExternalIP 地址已附加到服务,请输入以下命令。如果您为新服务指定了 ExternalIP,则必须先创建该服务。
$ oc get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mysql-55-rhel7 172.30.131.89 192.174.120.10 3306/TCP 13m