4.5. 在 IBM Z 上部署托管的 control plane
对于 IBM Z 上的托管 control plane,您必须根据 64 位 x86 架构在机器类型上运行 control plane,以及 IBM Power 或 IBM Z 上的节点池。有关其他架构上的 IBM Z 上托管的 control plane 的信息,请参阅 托管 control plane 的支持列表。
您可以通过将集群配置为充当管理集群来部署托管的 control plane。管理集群是托管 control plane 的 OpenShift Container Platform 集群。管理集群也称为托管集群。
管理集群不是受管集群。受管集群是 hub 集群管理的集群。
您可以使用 hypershift 附加组件将受管集群转换为管理集群。然后,您可以开始创建托管集群。
multicluster engine Operator 只支持默认的 local-cluster,它是管理的 hub 集群,而 hub 集群作为管理集群。
要在裸机上置备托管的 control plane,您可以使用 Agent 平台。Agent 平台使用中央基础架构管理服务将 worker 节点添加到托管的集群中。如需更多信息,请参阅"启用中央基础架构管理服务"。
每个 IBM Z 系统主机都必须通过中央基础架构管理提供的 PXE 镜像启动。每个主机启动后,它会运行一个代理进程来发现主机的详细信息并完成安装。Agent 自定义资源代表每个主机。
当使用 Agent 平台创建托管集群时,HyperShift Operator 会在托管的 control plane 命名空间中安装 Agent Cluster API 供应商。
4.5.1. 在 IBM Z 上配置托管的 control plane 的先决条件 复制链接链接已复制到粘贴板!
- Kubernetes Operator 版本 2.5 或更高版本的多集群引擎必须安装在 OpenShift Container Platform 集群中。您可以从 OpenShift Container Platform OperatorHub 将 multicluster engine Operator 安装为 Operator。
multicluster engine Operator 必须至少有一个受管 OpenShift Container Platform 集群。
local-cluster在多集群引擎 Operator 2.5 及更新的版本中自动导入。有关local-cluster的更多信息,请参阅 Red Hat Advanced Cluster Management 中的高级配置部分。您可以运行以下命令来检查 hub 集群的状态:$ oc get managedclusters local-cluster- 您需要一个至少有三个 worker 节点的托管集群来运行 HyperShift Operator。
- 您需要启用中央基础架构管理服务。如需更多信息,请参阅启用中央基础架构管理服务。
- 您需要安装托管的 control plane 命令行界面。如需更多信息,请参阅安装托管的 control plane 命令行界面。
4.5.2. IBM Z 基础架构要求 复制链接链接已复制到粘贴板!
Agent 平台不会创建任何基础架构,但需要以下基础架构资源:
- 代理 : 代理 代表使用发现镜像或 PXE 镜像引导的主机,并准备好置备为 OpenShift Container Platform 节点。
- DNS :API 和入口端点必须可以被路由。
托管的 control plane 功能默认启用。如果您禁用了该功能并希望手动启用它,或者需要禁用该功能,请参阅启用或禁用托管的 control plane 功能。
4.5.3. IBM Z 上托管的 control plane 的 DNS 配置 复制链接链接已复制到粘贴板!
托管集群的 API 服务器作为 NodePort 服务公开。必须存在 api.<hosted_cluster_name>.<base_domain> 的 DNS 条目,指向可以访问 API 服务器的目标。
DNS 条目可以是一个简单的记录,指向运行托管 control plane 的受管集群中的一个节点。
该条目也可以指向部署的负载均衡器,将传入的流量重定向到 Ingress 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
api-int IN A 1xx.2x.2xx.1xx
;
;
*.apps IN A 1xx.2x.2xx.1xx
;
;EOF
- 1
- 记录指的是 API 负载均衡器的 IP 地址,用于处理托管 control plane 的入口和出口流量。
对于 IBM z/VM,添加与代理 IP 地址对应的 IP 地址。
compute-0 IN A 1xx.2x.2xx.1yy
compute-1 IN A 1xx.2x.2xx.1yy
4.5.4. 使用 CLI 创建托管集群 复制链接链接已复制到粘贴板!
在裸机基础架构上,您可以创建或导入托管集群。在为多集群引擎 Operator 启用 Assisted Installer 作为附加组件后,您可以使用 Agent 平台创建一个托管集群,HyperShift Operator 会在托管的 control plane 命名空间中安装 Agent Cluster API 供应商。Agent Cluster API 供应商连接托管 control plane 和一个仅由计算节点组成的托管集群的管理集群。
先决条件
- 每个托管集群都必须具有集群范围的唯一名称。托管的集群名称都不能与任何现有受管集群相同。否则,多集群引擎 Operator 无法管理托管集群。
-
不要使用单词
cluster作为托管的集群名称。 - 您不能在多集群引擎 Operator 受管集群的命名空间中创建托管集群。
- 为获得最佳安全性和管理实践,请创建一个与其他托管集群分开的托管集群。
- 验证您是否为集群配置了默认存储类。否则,您可能会看到待处理的持久性卷声明(PVC)。
-
默认情况下,当使用
hcp create cluster agent命令时,命令会创建一个带有配置的节点端口的托管集群。裸机上托管集群的首选发布策略通过负载均衡器公开服务。如果使用 Web 控制台或使用 Red Hat Advanced Cluster Management 创建托管集群,要为 Kubernetes API 服务器以外的服务设置发布策略,您必须在HostedCluster自定义资源中手动指定servicePublishingStrategy信息。 确保您满足裸机上托管 control plane 的 "Requirements for hosted control plane" 中描述的要求,其中包括与基础架构、防火墙、端口和服务相关的要求。例如,这些要求描述了如何在管理集群中的裸机主机中添加适当的区标签,如下例所示:
$ oc label node [compute-node-1] topology.kubernetes.io/zone=zone1$ oc label node [compute-node-2] topology.kubernetes.io/zone=zone2$ oc label node [compute-node-3] topology.kubernetes.io/zone=zone3- 确保您已将裸机节点添加到硬件清单中。
流程
运行以下命令来创建命名空间:
$ oc create ns <hosted_cluster_namespace>将
<hosted_cluster_namespace> 替换为托管集群命名空间的标识符。HyperShift Operator 创建命名空间。在裸机基础架构上托管集群创建过程中,生成的 Cluster API 供应商角色需要命名空间已存在。输入以下命令为托管集群创建配置文件:
$ 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=<base_domain> \4 --api-server-address=api.<hosted_cluster_name>.<base_domain> \5 --etcd-storage-class=<etcd_storage_class> \6 --ssh-key=<path_to_ssh_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>-multi \10 --node-pool-replicas=<node_pool_replica_count> \11 --render \ --render-sensitive \ --ssh-key <home_directory>/<path_to_ssh_key>/<ssh_key> > hosted-cluster-config.yaml12 - 1
- 指定托管集群的名称,
如。 - 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 组件的可用性策略。支持的选项包括
SingleReplica和HighlyAvailable。默认值为HighlyAvailable。 - 10
- 指定您要使用的 OpenShift Container Platform 版本,如
4.19.0-multi。如果您使用断开连接的环境,将<ocp_release_image>替换为摘要镜像。要提取 OpenShift Container Platform 发行镜像摘要,请参阅 提取 OpenShift Container Platform 发行镜像摘要。 - 11
- 指定节点池副本数,如
3。您必须将副本数指定为0或更高,才能创建相同数量的副本。否则,您不会创建节点池。 - 12
- 在
--ssh-key标志后,指定 SSH 密钥的路径,如user/.ssh/id_rsa。
配置服务发布策略。默认情况下,托管集群使用
NodePort服务发布策略,因为节点端口始终在没有额外基础架构的情况下可用。但是,您可以将服务发布策略配置为使用负载均衡器。-
如果您使用默认的
NodePort策略,请将 DNS 配置为指向托管的集群计算节点,而不是管理集群节点。如需更多信息,请参阅"裸机上的 DNS 配置"。 对于生产环境,请使用
LoadBalancer策略,因为此策略提供证书处理和自动 DNS 解析。以下示例演示了在托管集群配置文件中更改服务发布LoadBalancer策略:# ... spec: services: - service: APIServer servicePublishingStrategy: type: LoadBalancer1 - service: Ignition servicePublishingStrategy: type: Route - service: Konnectivity servicePublishingStrategy: type: Route - service: OAuthServer servicePublishingStrategy: type: Route - service: OIDC servicePublishingStrategy: type: Route sshKey: name: <ssh_key> # ...- 1
- 指定
LoadBalancer作为 API 服务器类型。对于所有其他服务,将Route指定为类型。
-
如果您使用默认的
输入以下命令将更改应用到托管集群配置文件:
$ oc apply -f hosted_cluster_config.yaml输入以下命令检查托管集群、节点池和 pod 的创建:
$ oc get hostedcluster \ <hosted_cluster_namespace> -n \ <hosted_cluster_namespace> -o \ jsonpath='{.status.conditions[?(@.status=="False")]}' | jq .$ oc get nodepool \ <hosted_cluster_namespace> -n \ <hosted_cluster_namespace> -o \ jsonpath='{.status.conditions[?(@.status=="False")]}' | jq .$ oc get pods -n <hosted_cluster_namespace>-
确认托管集群已就绪。
Available: True的状态表示集群的就绪状态,节点池状态显示AllMachinesReady: True。这些状态表示所有集群 Operator 的运行状况。 在托管集群中安装 MetalLB:
从托管集群中提取
kubeconfig文件,并输入以下命令为托管集群访问设置环境变量:$ oc get secret \ <hosted_cluster_namespace>-admin-kubeconfig \ -n <hosted_cluster_namespace> \ -o jsonpath='{.data.kubeconfig}' \ | base64 -d > \ kubeconfig-<hosted_cluster_namespace>.yaml$ export KUBECONFIG="/path/to/kubeconfig-<hosted_cluster_namespace>.yaml"通过创建
install-metallb-operator.yaml文件来安装 MetalLB Operator:apiVersion: v1 kind: Namespace metadata: name: metallb-system --- apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: metallb-operator namespace: metallb-system --- apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: metallb-operator namespace: metallb-system spec: channel: "stable" name: metallb-operator source: redhat-operators sourceNamespace: openshift-marketplace installPlanApproval: Automatic # ...输入以下命令应用该文件:
$ oc apply -f install-metallb-operator.yaml通过创建
deploy-metallb-ipaddresspool.yaml文件来配置 MetalLB IP 地址池:apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: metallb namespace: metallb-system spec: autoAssign: true addresses: - 10.11.176.71-10.11.176.75 --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: l2advertisement namespace: metallb-system spec: ipAddressPools: - metallb # ...输入以下命令应用配置:
$ oc apply -f deploy-metallb-ipaddresspool.yaml输入以下命令检查 Operator 状态、IP 地址池和
L2Advertisement资源来验证 MetalLB 的安装:$ oc get pods -n metallb-system$ oc get ipaddresspool -n metallb-system$ oc get l2advertisement -n metallb-system
为入口配置负载均衡器:
创建
ingress-loadbalancer.yaml文件:apiVersion: v1 kind: Service metadata: annotations: metallb.universe.tf/address-pool: metallb name: metallb-ingress namespace: openshift-ingress spec: ports: - name: http protocol: TCP port: 80 targetPort: 80 - name: https protocol: TCP port: 443 targetPort: 443 selector: ingresscontroller.operator.openshift.io/deployment-ingresscontroller: default type: LoadBalancer # ...输入以下命令应用配置:
$ oc apply -f ingress-loadbalancer.yaml输入以下命令验证负载均衡器服务是否按预期工作:
$ oc get svc metallb-ingress -n openshift-ingress输出示例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE metallb-ingress LoadBalancer 172.31.127.129 10.11.176.71 80:30961/TCP,443:32090/TCP 16h
配置 DNS 以使用负载均衡器:
-
通过将 5.2.
apps.<hosted_cluster_namespace>.<base_domain> 通配符 DNS 记录指向负载均衡器 IP 地址,为 apps域配置 DNS。 输入以下命令验证 DNS 解析:
$ nslookup console-openshift-console.apps.<hosted_cluster_namespace>.<base_domain> <load_balancer_ip_address>输出示例
Server: 10.11.176.1 Address: 10.11.176.1#53 Name: console-openshift-console.apps.my-hosted-cluster.sample-base-domain.com Address: 10.11.176.71
-
通过将 5.2.
验证
输入以下命令检查集群 Operator:
$ oc get clusteroperators确保所有 Operator 显示
AVAILABLE: True,PROGRESSING: False, 和DEGRADED: False。输入以下命令检查节点:
$ oc get nodes确保每个节点都有
READY状态。通过在 Web 浏览器中输入以下 URL 来测试对控制台的访问:
https://console-openshift-console.apps.<hosted_cluster_namespace>.<base_domain>
4.5.5. 为 IBM Z 上托管的 control plane 创建 InfraEnv 资源 复制链接链接已复制到粘贴板!
InfraEnv 是一个使用 PXE 镜像引导的主机可作为代理加入的环境。在这种情况下,代理会在与您托管的 control plane 相同的命名空间中创建。
流程
创建 YAML 文件以包含配置。请参见以下示例:
apiVersion: agent-install.openshift.io/v1beta1 kind: InfraEnv metadata: name: <hosted_cluster_name> namespace: <hosted_control_plane_namespace> spec: cpuArchitecture: s390x pullSecretRef: name: pull-secret sshAuthorizedKey: <ssh_public_key>-
将文件保存为
infraenv-config.yaml。 输入以下命令应用配置:
$ oc apply -f infraenv-config.yaml要获取下载 PXE 镜像的 URL,如
initrd.img、kernel.img或rootfs.img,它允许 IBM Z 机器作为代理加入,请输入以下命令:$ oc -n <hosted_control_plane_namespace> get InfraEnv <hosted_cluster_name> -o json
4.5.6. 在 InfraEnv 资源中添加 IBM Z 代理 复制链接链接已复制到粘贴板!
要将计算节点附加到托管的 control plane,请创建有助于您扩展节点池的代理。在 IBM Z 环境中添加代理需要额外的步骤,这在本节中详细介绍。
除非另有说明,否则这些步骤适用于 IBM Z 和 IBM LinuxONE 上的 z/VM 和 RHEL KVM 安装。
4.5.6.1. 将 IBM Z KVM 作为代理添加 复制链接链接已复制到粘贴板!
对于带有 KVM 的 IBM Z,运行以下命令,使用从 InfraEnv 资源下载的 PXE 镜像启动 IBM Z 环境。创建代理后,主机与 Assisted Service 通信,并注册与管理集群上的 InfraEnv 资源相同的命名空间中。
流程
运行以下命令:
virt-install \ --name "<vm_name>" \1 --autostart \ --ram=16384 \ --cpu host \ --vcpus=4 \ --location "<path_to_kernel_initrd_image>,kernel=kernel.img,initrd=initrd.img" \2 --disk <qcow_image_path> \3 --network network:macvtap-net,mac=<mac_address> \4 --graphics none \ --noautoconsole \ --wait=-1 --extra-args "rd.neednet=1 nameserver=<nameserver> coreos.live.rootfs_url=http://<http_server>/rootfs.img random.trust_cpu=on rd.luks.options=discard ignition.firstboot ignition.platform.id=metal console=tty1 console=ttyS1,115200n8 coreos.inst.persistent-kargs=console=tty1 console=ttyS1,115200n8"5 对于 ISO 引导,从
InfraEnv资源下载 ISO,并运行以下命令来引导节点:virt-install \ --name "<vm_name>" \1 --autostart \ --memory=16384 \ --cpu host \ --vcpus=4 \ --network network:macvtap-net,mac=<mac_address> \2 --cdrom "<path_to_image.iso>" \3 --disk <qcow_image_path> \ --graphics none \ --noautoconsole \ --os-variant <os_version> \4 --wait=-1
4.5.6.2. 添加 IBM Z LPAR 作为代理 复制链接链接已复制到粘贴板!
您可以在 IBM Z 或 IBM LinuxONE 上将逻辑分区(LPAR)作为计算节点添加到托管的 control plane。
流程
为代理创建引导参数文件:
参数文件示例
rd.neednet=1 cio_ignore=all,!condev \ console=ttysclp0 \ ignition.firstboot ignition.platform.id=metal coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \1 coreos.inst.persistent-kargs=console=ttysclp0 ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \2 rd.znet=qeth,<network_adaptor_range>,layer2=1 rd.<disk_type>=<adapter> \3 zfcp.allow_lun_scan=0 ai.ip_cfg_override=1 \4 random.trust_cpu=on rd.luks.options=discard- 1
- 对于
coreos.live.rootfs_url工件,请为您要启动的kernel和initramfs指定匹配的rootfs工件。仅支持 HTTP 和 HTTPS 协议。 - 2
- 对于
ip参数,请手动分配 IP 地址,如 在 IBM Z 和 IBM LinuxONE 中使用 z/VM 安装集群中所述。 - 3
- 对于在 DASD 类型磁盘中安装,请使用
rd.dasd指定要安装 Red Hat Enterprise Linux CoreOS (RHCOS) 的 DASD。对于在 FCP 类型磁盘中安装,请使用rd.zfcp=<adapter>,<wwpn>,<lun>指定要安装 RHCOS 的 FCP 磁盘。 - 4
- 使用 Open Systems Adapter (OSA) 或 HiperSockets 时指定此参数。
从
InfraEnv资源下载.ins和initrd.img.addrsize文件。默认情况下,
InfraEnv资源中没有.ins和initrd.img.addrsize文件的 URL。您必须编辑 URL 来获取这些工件。运行以下命令,将内核 URL 端点更新为包含
ins-file:$ curl -k -L -o generic.ins "< url for ins-file >"URL 示例
https://…/boot-artifacts/ins-file?arch=s390x&version=4.17.0更新
initrdURL 端点,使其包含s390x-initrd-addrsize:URL 示例
https://…./s390x-initrd-addrsize?api_key=<api-key>&arch=s390x&version=4.17.0
-
将
initrd、kernel、common.ins和initrd.img.addrsize参数文件传输到文件服务器。有关如何使用 FTP 和引导传输文件的更多信息,请参阅"在 LPAR 中安装"。 - 启动机器。
- 对集群中的所有其他机器重复这个过程。
4.5.6.3. 添加 IBM z/VM 作为代理 复制链接链接已复制到粘贴板!
如果要将静态 IP 用于 z/VM 客户机,您必须为 z/VM 代理配置 NMStateConfig 属性,以便 IP 参数保留在第二个启动中。
完成以下步骤,使用从 InfraEnv 资源下载的 PXE 镜像启动 IBM Z 环境。创建代理后,主机与 Assisted Service 通信,并注册与管理集群上的 InfraEnv 资源相同的命名空间中。
流程
更新参数文件,以添加
rootfs_url、network_adaptor和disk_type值。参数文件示例
rd.neednet=1 cio_ignore=all,!condev \ console=ttysclp0 \ ignition.firstboot ignition.platform.id=metal \ coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \1 coreos.inst.persistent-kargs=console=ttysclp0 ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \2 rd.znet=qeth,<network_adaptor_range>,layer2=1 rd.<disk_type>=<adapter> \3 zfcp.allow_lun_scan=0 ai.ip_cfg_override=1 \4 - 1
- 对于
coreos.live.rootfs_url工件,请为您要启动的kernel和initramfs指定匹配的rootfs工件。仅支持 HTTP 和 HTTPS 协议。 - 2
- 对于
ip参数,请手动分配 IP 地址,如 在 IBM Z 和 IBM LinuxONE 中使用 z/VM 安装集群中所述。 - 3
- 对于在 DASD 类型磁盘中安装,请使用
rd.dasd指定要安装 Red Hat Enterprise Linux CoreOS (RHCOS) 的 DASD。对于在 FCP 类型磁盘中安装,请使用rd.zfcp=<adapter>,<wwpn>,<lun>指定要安装 RHCOS 的 FCP 磁盘。 - 4
- 使用 Open Systems Adapter (OSA) 或 HiperSockets 时指定此参数。
运行以下命令,将
initrd、内核镜像和参数文件移到客户虚拟机中:vmur pun -r -u -N kernel.img $INSTALLERKERNELLOCATION/<image name>vmur pun -r -u -N generic.parm $PARMFILELOCATION/paramfilenamevmur pun -r -u -N initrd.img $INSTALLERINITRAMFSLOCATION/<image name>从客户机虚拟机控制台运行以下命令:
cp ipl c要列出代理及其属性,请输入以下命令:
$ oc -n <hosted_control_plane_namespace> get agents输出示例
NAME CLUSTER APPROVED ROLE STAGE 50c23cda-cedc-9bbd-bcf1-9b3a5c75804d auto-assign 5e498cd3-542c-e54f-0c58-ed43e28b568a auto-assign运行以下命令来批准代理。
$ oc -n <hosted_control_plane_namespace> patch agent \ 50c23cda-cedc-9bbd-bcf1-9b3a5c75804d -p \ '{"spec":{"installation_disk_id":"/dev/sda","approved":true,"hostname":"worker-zvm-0.hostedn.example.com"}}' \1 --type merge- 1
- 另外,您还可以在规格中设置代理 ID
<installation_disk_id>和<hostname>。
运行以下命令验证代理是否已批准:
$ oc -n <hosted_control_plane_namespace> get agents输出示例
NAME CLUSTER APPROVED ROLE STAGE 50c23cda-cedc-9bbd-bcf1-9b3a5c75804d true auto-assign 5e498cd3-542c-e54f-0c58-ed43e28b568a true auto-assign
4.5.7. 为 IBM Z 上托管集群扩展 NodePool 对象 复制链接链接已复制到粘贴板!
NodePool 对象在创建托管集群时创建。通过扩展 NodePool 对象,您可以在托管的 control plane 中添加更多计算节点。
当您扩展节点池时,会创建一个机器。Cluster API 供应商会找到已批准的、通过验证的、当前没有被使用但满足节点池规格中指定的要求的代理。您可以通过检查其状态和条件来监控代理的安装。
当您缩减节点池时,代理会从对应的集群绑定。在重复使用集群前,您必须使用 PXE 镜像引导集群以更新节点数。
流程
运行以下命令,将
NodePool对象扩展到两个节点:$ oc -n <clusters_namespace> scale nodepool <nodepool_name> --replicas 2Cluster API 代理供应商会随机选择两个分配给托管集群的代理。这些代理会经历不同的状态,最终将托管集群作为 OpenShift Container Platform 节点加入。代理按以下顺序通过转换阶段:
-
binding -
discovering -
insufficient -
installing -
install-in-progress -
added-to-existing-cluster
-
运行以下命令,以查看特定扩展代理的状态:
$ oc -n <hosted_control_plane_namespace> get agent -o \ jsonpath='{range .items[*]}BMH: {@.metadata.labels.agent-install\.openshift\.io/bmh} \ Agent: {@.metadata.name} State: {@.status.debugInfo.state}{"\n"}{end}'输出示例
BMH: Agent: 50c23cda-cedc-9bbd-bcf1-9b3a5c75804d State: known-unbound BMH: Agent: 5e498cd3-542c-e54f-0c58-ed43e28b568a State: insufficient运行以下命令来查看转换阶段:
$ oc -n <hosted_control_plane_namespace> get agent输出示例
NAME CLUSTER APPROVED ROLE STAGE 50c23cda-cedc-9bbd-bcf1-9b3a5c75804d hosted-forwarder true auto-assign 5e498cd3-542c-e54f-0c58-ed43e28b568a true auto-assign da503cf1-a347-44f2-875c-4960ddb04091 hosted-forwarder true auto-assign运行以下命令以生成
kubeconfig文件来访问托管集群:$ hcp create kubeconfig \ --namespace <clusters_namespace> \ --name <hosted_cluster_namespace> > <hosted_cluster_name>.kubeconfig代理访问
added-to-existing-cluster状态后,输入以下命令验证您可以看到 OpenShift Container Platform 节点:$ oc --kubeconfig <hosted_cluster_name>.kubeconfig get nodes输出示例
NAME STATUS ROLES AGE VERSION worker-zvm-0.hostedn.example.com Ready worker 5m41s v1.24.0+3882f8f worker-zvm-1.hostedn.example.com Ready worker 6m3s v1.24.0+3882f8f集群 Operator 开始通过向节点添加工作负载来协调。
输入以下命令验证在扩展
NodePool对象时是否创建了两台机器:$ oc -n <hosted_control_plane_namespace> get machine.cluster.x-k8s.io输出示例
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION hosted-forwarder-79558597ff-5tbqp hosted-forwarder-crqq5 worker-zvm-0.hostedn.example.com agent://50c23cda-cedc-9bbd-bcf1-9b3a5c75804d Running 41h 4.15.0 hosted-forwarder-79558597ff-lfjfk hosted-forwarder-crqq5 worker-zvm-1.hostedn.example.com agent://5e498cd3-542c-e54f-0c58-ed43e28b568a Running 41h 4.15.0运行以下命令来检查集群版本:
$ oc --kubeconfig <hosted_cluster_name>.kubeconfig get clusterversion,co输出示例
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS clusterversion.config.openshift.io/version 4.15.0-ec.2 True False 40h Cluster version is 4.15.0-ec.2运行以下命令来检查集群 Operator 状态:
$ oc --kubeconfig <hosted_cluster_name>.kubeconfig get clusteroperators
对于集群的每个组件,输出显示以下集群操作器状态: NAME,VERSION,AVAILABLE,PROGRESSING,DEGRADED,SINCE, 和 MESSAGE。
如需输出示例,请参阅 Initial Operator 配置。