向经典集群添加工作节点
Classic infrastructure
请查阅以下各节,了解如何向经典集群添加工作节点。
要将工作程序添加到 VPC 集群吗? 请参阅 将工作程序节点添加到 VPC 集群。
要提高应用程序的可用性,可以将工作程序节点添加到集群中的一个或多个现有专区中。 为了帮助保护应用程序免受专区故障的影响,您可以向集群添加专区。
创建集群时,会在工作程序池中供应工作程序节点。 创建集群后,可以通过调整其大小或添加更多工作程序池,将更多工作程序节点添加到池。 缺省情况下,工作程序池存在于一个专区中。 仅在一个专区中有工作程序池的集群称为单专区集群。 向集群添加更多专区时,该工作程序池会跨多个专区。 具有跨多个专区分布的工作程序池的集群称为多专区集群。
如果您有多专区集群,请使其工作程序节点资源保持均衡。 确保所有工作程序池跨相同专区进行分布,并通过调整池大小(而不采用添加单个节点的方式)来添加或除去工作程序。 设置工作程序池后,可以设置集群自动缩放器,以根据工作负载资源请求,自动在工作程序池中添加或除去工作程序节点。
经典工作节点的预留功能已弃用。 2026年10月15日之后,将无法再创建新的预订合同。 如果您现有的一份预留合同即将到期,则必须在合同到期日前创建一个不使用预留资源的新工作负载池,并将您的工作负载迁移至该池中。
创建新的工作程序池
可以通过创建新的工作程序池,向经典集群添加工作程序节点。 如果您之前曾使用预留资源来配置工作节点,请注意,预留资源功能现已弃用。 请改用创建一个标准的工作进程池。
开始之前,请确保您拥有 “操作员”或 “管理员”IAM 平台访问角色。
-
检索集群的工作程序专区,并选择要在其中部署工作程序池中工作程序节点的专区。 如果您具有单专区集群,那么必须使用在 Worker Zones 字段中看到的专区。 对于多区域集群,您可以选择集群中现有的任何一个工作节点区域,或者添加该集群所在区域中的某个 多区域位置。 可以通过运行
ibmcloud oc zone ls来列出可用专区。ibmcloud oc cluster get --cluster CLUSTER_NAME_OR_ID示例输出
... Worker Zones: dal10, dal12, dal13 -
对于每个专区,列出可用的专用和公用 VLAN。 请记下要使用的专用和公用 VLAN。 如果您没有私有或公共 VLAN,当您向工作池添加一个区域时,系统会自动为您创建该 VLAN。
ibmcloud oc vlan ls --zone ZONE -
对于每个区域,请查看工作节点可用的配置选项。
ibmcloud oc flavors --zone ZONE -
创建工作程序池。 有关更多选项,请参阅 CLI 文档。
- 包含
--label选项以使用key=value标签自动标注池中的工作程序节点。 - 如果供应的是裸机或专用 VM 工作程序池,请指定
--hardware dedicated。 - 新的工作程序节点运行与集群主节点相同的
major.minor版本,但运行该major.minor版本的最新工作程序节点补丁。
ibmcloud oc worker-pool create classic --name POOL_NAME --cluster CLUSTER_NAME_OR_ID --flavor FLAVOR --size-per-zone NUMBER_OF_WORKERS_PER_ZONE [--operating-system (REDHAT_8_64)] [--label key=value] - 包含
-
验证工作程序池是否已创建。
ibmcloud oc worker-pool ls --cluster CLUSTER_NAME_OR_ID -
缺省情况下,添加工作程序池将创建不包含专区的池。 要在专区中部署工作程序节点,必须将先前检索到的专区添加到工作程序池。 如果要跨多个专区分布工作程序节点,请对每个专区重复此命令。
ibmcloud oc zone add classic --zone ZONE --cluster CLUSTER_NAME_OR_ID --worker-pool POOL_NAME --private-vlan PRIVATE_VLAN_ID --public-vlan PUBLIC_VLAN_ID -
验证工作程序节点是否在添加的专区中供应。 当状态从“
provision_pending”变为“normal”时,您的工作节点即已就绪。ibmcloud oc worker ls --cluster CLUSTER_NAME_OR_ID --worker-pool POOL_NAME示例输出
ID Public IP Private IP Machine Type State Status Zone Version kube-dal10-crb20b637238ea471f8d4a8b881aae4962-w7 169.xx.xxx.xxx 10.xxx.xx.xxx b3c.4x16 provision_pending Ready dal10 1.36 kube-dal10-crb20b637238ea471f8d4a8b881aae4962-w8 169.xx.xxx.xxx 10.xxx.xx.xxx b3c.4x16 provision_pending Ready dal10 1.36
调整工作程序池的大小
您可以通过调整现有工作程序池的大小来添加或减少集群中的工作程序节点数,而不管工作程序池是位于一个专区中还是或跨多个专区分布。
例如,假设一个集群有一个工作程序池,该工作程序池在每个专区有 3 个工作程序节点。
- 如果该集群是单专区集群,并且存在于
dal10中,那么工作程序池在dal10中有 3 个工作程序节点。 集群共有 3 个工作程序节点。 - 如果该集群是多专区集群,并且存在于
dal10和dal12中,那么工作程序池在dal10中有 3 个工作程序节点,在dal12中有 3 个工作程序节点。 集群共有 6 个工作程序节点。
请记住,裸机工作程序池是按月计费的。 如果向上或向下调整大小,都会影响您当月的成本。 通过调整工作程序池大小来添加工作程序节点时,新的工作程序节点将运行与集群主节点相同的 major.minor 版本,但运行该 major.minor 版本的最新工作程序节点补丁。
开始之前,请确保您拥有 “操作员”或 “管理员”IAM 平台访问角色。
要调整工作程序池大小,请更改工作程序池在每个专区中部署的工作程序节点数:
- 获取要调整其大小的工作程序池的名称。
ibmcloud oc worker-pool ls --cluster CLUSTER_NAME_OR_ID - 通过指定要在每个专区中部署的工作程序节点数来调整工作程序池的大小。
ibmcloud oc worker-pool resize --cluster CLUSTER_NAME_OR_ID --worker-pool POOL_NAME --size-per-zone NUMBER_OF_WORKERS_PER_ZONE - 验证工作程序池的大小是否已调整。
两个专区(ibmcloud oc worker ls --cluster CLUSTER_NAME_OR_ID --worker-pool POOL_NAMEdal10和dal12)中的工作程序池的输出示例,此池的大小已调整为每个专区 2 个工作程序节点:ID Public IP Private IP Machine Type State Status Zone Version kube-dal10-crb20b637238ea471f8d4a8b881aae4962-w7 169.xx.xxx.xxx 10.xxx.xx.xxx b3c.4x16 normal Ready dal10 1.36 kube-dal10-crb20b637238ea471f8d4a8b881aae4962-w8 169.xx.xxx.xxx 10.xxx.xx.xxx b3c.4x16 normal Ready dal10 1.36 kube-dal12-crb20b637238ea471f8d4a8b881aae4962-w9 169.xx.xxx.xxx 10.xxx.xx.xxx b3c.4x16 normal Ready dal12 1.36 kube-dal12-crb20b637238ea471f8d4a8b881aae4962-w10 169.xx.xxx.xxx 10.xxx.xx.xxx b3c.4x16 normal Ready dal12 1.36
向工作程序池添加专区
可以通过向现有工作程序池添加专区,使经典集群跨一个区域内的多个专区。
将专区添加到工作程序池时,将在新专区中供应工作程序池中定义的工作程序节点,并考虑将来进行工作负载调度。Red Hat OpenShift on IBM Cloud 会自动将区域的 failure-domain.beta.kubernetes.io/region 标签和区域的 failure-domain.beta.kubernetes.io/zone 标签添加到每个工作程序节点。 Kubernetes 调度程序使用这些标签在同一区域内的各个专区之间分布
pod。
如果您的集群中有多个工作节点池,请将该区域添加到所有工作节点池中,以便工作节点在集群中均匀分布。 请注意,将工作程序节点添加到集群时,新的工作程序节点将运行与集群主节点相同的 major.minor 版本,但运行该 major.minor 版本的最新工作程序节点补丁。
开始之前:
- 要将专区添加到工作程序池,工作程序池必须位于支持多专区的专区中。 如果工作程序池不位于支持多专区的专区中,请考虑创建新的工作程序池。
- 请确保您已阅读《 [Operator or Administrator IAM platform access role] 》(/docs/openshift?topic=openshift-iam-platform-access-roles)。
- 在经典集群中,如果有多个 VLAN 用于集群,有多个子网位于同一 VLAN 上,或有一个多专区经典集群,那么必须针对 IBM Cloud 基础架构帐户启用虚拟路由器功能 (VRF),从而使工作程序节点可以在专用网络上相互通信。 要启用 VRF,请参阅 启用 VRF。
要检查是否已启用 VRF,请使用
ibmcloud account show命令。 如果无法或不想启用 VRF,请启用 VLAN 生成。 要执行此操作,您需要具备 “网络 > 管理网络 VLAN 跨域”的基础设施权限,或者您可以请求账户所有者为您启用该权限。 要检查VLAN生成树功能是否已启用,请使用ibmcloud oc vlan spanning get --region <region>命令。
要将具有工作程序节点的专区添加到工作程序池,请执行以下操作:
-
列出可用专区,然后选取要添加到工作程序池的专区。 选择的专区必须是支持多专区的专区。
ibmcloud oc zone ls -
列出该专区中可用的 VLAN。 如果您没有私有或公共 VLAN,当您向工作池添加一个区域时,系统会自动为您创建该 VLAN。
ibmcloud oc vlan ls --zone ZONE -
列出集群中的工作程序池并记下其名称。
ibmcloud oc worker-pool ls --cluster CLUSTER_NAME_OR_ID -
将专区添加到工作程序池。 如果您有多个工作程序池,请将专区添加到所有工作程序池,以便在所有专区中均衡集群。
必须存在专用和公用 VLAN,才能将专区添加到多个工作程序池。 如果该区域中没有私有 VLAN 和公共 VLAN,请先将该区域添加到一个工作池中,系统会为您自动创建一个私有 VLAN 和一个公共 VLAN。 然后,可以通过指定创建的专用和公用 VLAN,将该专区添加到其他工作程序池。
如果要对不同工作程序池使用不同的 VLAN,请对每个 VLAN 及其相应的工作程序池重复此命令。 任何新的工作程序节点都会添加到指定的 VLAN,但不会更改任何现有工作程序节点的 VLAN。
ibmcloud oc zone add classic --zone ZONE --cluster CLUSTER_NAME_OR_ID -p POOL_NAME [-p POOL2_NAME] --private-vlan PRIVATE_VLAN_ID --public-vlan PUBLIC_VLAN_ID -
验证是否已将专区添加到集群。 在输出的 Worker zones 字段中查找添加的专区。 请注意,在添加的专区中供应了新的工作程序节点,因此 Workers 字段中的工作程序总数已增加。
ibmcloud oc cluster get --cluster CLUSTER_NAME_OR_ID示例输出
NAME: mycluster ID: df253b6025d64944ab99ed63bb4567b6 State: normal Status: healthy cluster Created: 2018-09-28T15:43:15+0000 Location: dal10 Pod Subnet: 172.30.0.0/16 Service Subnet: 172.21.0.0/16 Master URL: https://c3.<region>.containers.cloud.ibm.com:30426 Public Service Endpoint URL: https://c3.<region>.containers.cloud.ibm.com:30426 Private Service Endpoint URL: https://c3-private.<region>.containers.cloud.ibm.com:31140 Master Location: Dallas Master Status: Ready (21 hours ago) Ingress Subdomain: mycluster-<hash>-0000.us-south.containers.appdomain.cloud Ingress Secret: mycluster-<hash>-0000 Workers: 6 Worker Zones: dal10, dal12 Version: 1.36_1524 Owner: owner@email.com Resource Group ID: a8a12accd63b437bbd6d58fb6a462ca7 Resource Group Name: Default