4.6. 在 IBM Power 上部署托管的 control plane
您可以通过将集群配置为充当托管集群来部署托管 control plane。托管的集群是一个托管 control plane 的 OpenShift Container Platform 集群。托管集群也称为管理集群。
管理集群不是受管集群。受管集群是 hub 集群管理的集群。
multicluster engine Operator 只支持默认的 local-cluster
,它是管理的 hub 集群,以及作为托管集群的 hub 集群。
要在裸机上置备托管的 control plane,您可以使用 Agent 平台。Agent 平台使用中央基础架构管理服务将 worker 节点添加到托管的集群中。如需更多信息,请参阅"启用中央基础架构管理服务"。
每个 IBM Power 主机都必须从中央基础架构管理提供的发现镜像启动。每个主机启动后,它会运行一个代理进程来发现主机的详细信息并完成安装。Agent 自定义资源代表每个主机。
当使用 Agent 平台创建托管集群时,Hyper HyperShift 会在托管的 control plane 命名空间中安装 Agent Cluster API 供应商。
4.6.1. 在 IBM Power 上配置托管的 control plane 的先决条件
- 在 OpenShift Container Platform 集群上安装 Kubernetes Operator 版本 2.7 及更新的版本。安装 Red Hat Advanced Cluster Management (RHACM) 时会自动安装 multicluster engine Operator。您还可以在没有 RHACM 的情况下从 OpenShift Container Platform OperatorHub 安装 multicluster engine Operator。
multicluster engine Operator 必须至少有一个受管 OpenShift Container Platform 集群。
local-cluster
受管 hub 集群会在 multicluster engine Operator 版本 2.7 及更高版本中自动导入。有关local-cluster
的更多信息,请参阅 RHACM 文档中的高级配置。您可以运行以下命令来检查 hub 集群的状态:$ oc get managedclusters local-cluster
- 您需要具有至少 3 个 worker 节点的托管集群来运行 HyperShift Operator。
- 您需要启用中央基础架构管理服务。如需更多信息,请参阅"启用中央基础架构管理服务"。
- 您需要安装托管的 control plane 命令行界面。如需更多信息,请参阅"安装托管的 control plane 命令行界面"。
托管的 control plane 功能默认启用。如果您禁用了这个功能并希望手动启用它,请参阅"手动启用托管的 control plane 功能"。如果您需要禁用该功能,请参阅"禁用托管的 control planes 功能"。
4.6.2. IBM Power 基础架构要求
Agent 平台不会创建任何基础架构,但需要以下基础架构资源:
- 代理 : 代理 代表使用发现镜像引导的主机,并准备好置备为 OpenShift Container Platform 节点。
- DNS :API 和入口端点必须可以被路由。
4.6.3. IBM Power 上托管的 control plane 的 DNS 配置
托管集群的 API 服务器已公开。必须存在 api.<hosted_cluster_name>.<basedomain>
的 DNS 条目,指向可以访问 API 服务器的目标。
DNS 条目可以是一个简单的记录,指向运行托管 control plane 的受管集群中的一个节点。
该条目也可以指向部署的负载均衡器,将传入的流量重定向到入口 pod。
请参阅以下 DNS 配置示例:
$ cat /var/named/<example.krnl.es.zone>
输出示例
$ TTL 900
@ IN SOA bastion.example.krnl.es.com. hostmaster.example.krnl.es.com. (
2019062002
1D 1H 1W 3H )
IN NS bastion.example.krnl.es.com.
;
;
api IN A 1xx.2x.2xx.1xx 1
api-int IN A 1xx.2x.2xx.1xx
;
;
*.apps.<hosted-cluster-name>.<basedomain> IN A 1xx.2x.2xx.1xx
;
;EOF
- 1
- 记录指的是 API 负载均衡器的 IP 地址,用于处理托管 control plane 的入口和出口流量。
对于 IBM Power,添加与代理 IP 地址对应的 IP 地址。
配置示例
compute-0 IN A 1xx.2x.2xx.1yy compute-1 IN A 1xx.2x.2xx.1yy
4.6.4. 在裸机上创建托管集群
当使用 Agent 平台创建托管集群时,Hyper HyperShift 会在托管的 control plane 命名空间中安装 Agent Cluster API 供应商。您可以在裸机上创建托管集群或导入一个集群。
在创建托管集群时,请记住以下准则:
- 每个托管集群都必须具有集群范围的唯一名称。托管的集群名称不能与任何现有的受管集群相同,以便多集群引擎 Operator 可以管理它。
-
不要使用
clusters
作为托管的集群名称。 - 无法在多集群引擎 Operator 受管集群的命名空间中创建托管集群。
流程
输入以下命令来创建托管的 control plane 命名空间:
$ oc create ns <hosted_cluster_namespace>-<hosted_cluster_name>
将
<hosted_cluster_namespace>
替换为托管集群命名空间名称,如clusters
。将<hosted_cluster_name>
替换为托管集群的名称。验证您是否为集群配置了默认存储类。否则,您可能会看到待处理的 PVC。运行以下命令:
$ hcp create cluster agent \ --name=<hosted_cluster_name> \1 --pull-secret=<path_to_pull_secret> \2 --agent-namespace=<hosted_control_plane_namespace> \3 --base-domain=<basedomain> \4 --api-server-address=api.<hosted_cluster_name>.<basedomain> \5 --etcd-storage-class=<etcd_storage_class> \6 --ssh-key <path_to_ssh_public_key> \7 --namespace <hosted_cluster_namespace> \8 --control-plane-availability-policy HighlyAvailable \9 --release-image=quay.io/openshift-release-dev/ocp-release:<ocp_release_image> 10
- 1
- 指定托管集群的名称,如
example
。 - 2
- 指定 pull secret 的路径,例如
/user/name/pullsecret
。 - 3
- 指定托管的 control plane 命名空间,如
cluster-example
。使用oc get agent -n <hosted_control_plane_namespace>
命令,确保此命名空间中有代理可用。 - 4
- 指定您的基域,如
krnl.es
。 - 5
--api-server-address
标志定义用于托管集群中的 Kubernetes API 通信的 IP 地址。如果没有设置--api-server-address
标志,您必须登录以连接到管理集群。- 6
- 指定 etcd 存储类名称,如
lvm-storageclass
。 - 7
- 指定 SSH 公钥的路径。默认文件路径为
~/.ssh/id_rsa.pub
。 - 8
- 指定托管集群命名空间。
- 9
- control plane 可用性策略的默认值为
HighlyAvailable
。 - 10
- 指定您要使用的 OpenShift Container Platform 版本,如
4.17.0-multi
。如果您使用断开连接的环境,将<ocp_release_image>
替换为摘要镜像。要提取 OpenShift Container Platform 发行镜像摘要,请参阅 提取 OpenShift Container Platform 发行镜像摘要。
片刻后,输入以下命令验证托管 control plane pod 是否正在运行:
$ oc -n <hosted_control_plane_namespace> get pods
输出示例
NAME READY STATUS RESTARTS AGE capi-provider-7dcf5fc4c4-nr9sq 1/1 Running 0 4m32s catalog-operator-6cd867cc7-phb2q 2/2 Running 0 2m50s certified-operators-catalog-884c756c4-zdt64 1/1 Running 0 2m51s cluster-api-f75d86f8c-56wfz 1/1 Running 0 4m32s