Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

27.3. 配置集群以使用唯一外部 IP

在非云集群中,ingressIPNetworkCIDR 被默认设置为 172.29.0.0/16。如果您的集群环境还没有使用这个私有范围,您可以使用默认值。但是,如果要使用不同的范围,则必须在分配入口 IP 前在 /etc/origin/master/master-config.yaml 文件中设置 ingressIPNetworkCIDR。然后,重启 master 服务。

小心

分配给 LoadBalancer 类型的服务的外部 IP 将始终在 ingressIPNetworkCIDR 范围内。如果更改了 ingressIPNetworkCIDR,则分配的外部 IP 不再范围内,受影响的服务将被分配与新范围兼容的新外部 IP。

注意

如果您使用高可用性,则此范围必须小于 255 个 IP 地址。

Sample /etc/origin/master/master-config.yaml

networkConfig:
  ingressIPNetworkCIDR: 172.29.0.0/16

27.3.1. 为服务配置 Ingress IP

分配入口 IP:

  1. 为 LoadBalancer 服务创建一个 YAML 文件,通过 loadBalancerIP 设置请求特定 IP:

    LoadBalancer 配置示例

    apiVersion: v1
    kind: Service
    metadata:
      name: egress-1
    spec:
      ports:
      - name: db
        port: 3306
      loadBalancerIP: 172.29.0.1
      type: LoadBalancer
      selector:
        name: my-db-selector

  2. 在 pod 上创建 LoadBalancer 服务:

    $ oc create -f loadbalancer.yaml
  3. 检查服务是否有外部 IP。例如,对于名为 myservice 的服务:

    $ oc get svc myservice

    当您的 LoadBalancer-type 服务分配了外部 IP 时,输出会显示 IP:

    NAME         CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
    myservice    172.30.74.106   172.29.0.1    3306/TCP    30s