2.4. 将 API 服务器限制为私有

将集群部署到 Amazon Web Services(AWS)或 Microsoft Azure 后,可以重新配置 API 服务器,使其只使用私有区。

先决条件

  • 安装 OpenShift CLI(oc)。
  • 使用具有 admin 权限的用户登陆到 web 控制台。

流程

  1. 在 AWS 或 Azure 的 web 门户或控制台中,执行以下操作:

    1. 找到并删除相关的负载均衡器组件。

      • 对于 AWS,删除外部负载均衡器。私有区的 API DNS 条目已指向内部负载均衡器,它使用相同的配置,因此您无需修改内部负载均衡器。
      • 对于 Azure,删除负载均衡器的 api-internal 规则。
    2. 在公共区中删除 api.$clustername.$yourdomain DNS 条目。
  2. 删除外部负载均衡器:

    重要

    您只能对安装程序置备的基础架构 (IPI) 集群执行以下步骤。对于用户置备的基础架构 (UPI) 集群,您必须手动删除或禁用外部负载均衡器。

    1. 在终端中列出集群机器:

      $ oc get machine -n openshift-machine-api

      输出示例

      NAME                            STATE     TYPE        REGION      ZONE         AGE
      lk4pj-master-0                  running   m4.xlarge   us-east-1   us-east-1a   17m
      lk4pj-master-1                  running   m4.xlarge   us-east-1   us-east-1b   17m
      lk4pj-master-2                  running   m4.xlarge   us-east-1   us-east-1a   17m
      lk4pj-worker-us-east-1a-5fzfj   running   m4.xlarge   us-east-1   us-east-1a   15m
      lk4pj-worker-us-east-1a-vbghs   running   m4.xlarge   us-east-1   us-east-1a   15m
      lk4pj-worker-us-east-1b-zgpzg   running   m4.xlarge   us-east-1   us-east-1b   15m

      在以下步骤中,修改 control plane 机器(名称中包含 master 的机器)。

    2. 从每台 control plane 机器移除外部负载均衡器。

      1. 编辑 control plane Machine 对象以移除对外部负载均衡器的引用:

        $ oc edit machines -n openshift-machine-api <master_name> 1
        1
        指定要修改的 control plane 或 master Machine 对象的名称。
      2. 删除描述外部负载均衡器的行(在以下示例中已被标记),保存并退出对象规格:

        ...
        spec:
          providerSpec:
            value:
            ...
              loadBalancers:
              - name: lk4pj-ext 1
                type: network 2
              - name: lk4pj-int
                type: network
        1 2
        删除这一行。
      3. 对名称中包含 master 的每个机器重复这个过程。