2.4. 将 API 服务器限制为私有
将集群部署到 Amazon Web Services(AWS)或 Microsoft Azure 后,可以重新配置 API 服务器,使其只使用私有区。
先决条件
-
安装 OpenShift CLI(
oc
)。 -
使用具有
admin
权限的用户登陆到 web 控制台。
流程
在 AWS 或 Azure 的 web 门户或控制台中,执行以下操作:
找到并删除相关的负载均衡器组件。
- 对于 AWS,删除外部负载均衡器。私有区的 API DNS 条目已指向内部负载均衡器,它使用相同的配置,因此您无需修改内部负载均衡器。
-
对于 Azure,删除负载均衡器的
api-internal
规则。
-
在公共区中删除
api.$clustername.$yourdomain
DNS 条目。
删除外部负载均衡器:
重要您只能对安装程序置备的基础架构 (IPI) 集群执行以下步骤。对于用户置备的基础架构 (UPI) 集群,您必须手动删除或禁用外部负载均衡器。
在终端中列出集群机器:
$ 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
的机器)。从每台 control plane 机器移除外部负载均衡器。
编辑 control plane
Machine
对象以移除对外部负载均衡器的引用:$ oc edit machines -n openshift-machine-api <master_name> 1
- 1
- 指定要修改的 control plane 或 master
Machine
对象的名称。
删除描述外部负载均衡器的行(在以下示例中已被标记),保存并退出对象规格:
... spec: providerSpec: value: ... loadBalancers: - name: lk4pj-ext 1 type: network 2 - name: lk4pj-int type: network
-
对名称中包含
master
的每个机器重复这个过程。
2.4.1. 将 Ingress Controller 端点发布范围配置为 Internal
当集群管理员在没有指定集群为私有的情况下安装新集群时,将默认 Ingress Controller 创建,并将 scope
设置为 External
。集群管理员可以将 External
范围的 Ingress Controller 更改为 Internal
。
先决条件
-
已安装
oc
CLI。
流程
要将
External
范围的 Ingress Controller 更改为Internal
,请输入以下命令:$ oc -n openshift-ingress-operator patch ingresscontrollers/default --type=merge --patch='{"spec":{"endpointPublishingStrategy":{"type":"LoadBalancerService","loadBalancer":{"scope":"Internal"}}}}'
要检查 Ingress Controller 的状态,请输入以下命令:
$ oc -n openshift-ingress-operator get ingresscontrollers/default -o yaml
Progressing
状态条件指示您必须执行进一步的操作。例如,状态条件可以通过输入以下命令来指示需要删除该服务:$ oc -n openshift-ingress delete services/router-default
如果删除了该服务,Ingress Operator 会重新创建为
Internal
。