IBM Cloud Docs
在经典集群中添加工作节点

在经典集群中添加工作节点

经典基础结构

查看以下部分以获取有关如何将工作程序节点添加到经典集群的信息。

要将工作程序添加到 VPC 集群吗? 请参阅 将工作程序节点添加到 VPC 集群

要提高应用程序的可用性,可以将工作程序节点添加到集群中的一个或多个现有专区中。 为了帮助保护应用程序免受专区故障的影响,您可以向集群添加专区。

创建集群时,会在工作程序池中供应工作程序节点。 创建集群后,可以通过调整其大小或添加更多工作程序池,将更多工作程序节点添加到池。 缺省情况下,工作程序池存在于一个专区中。 仅在一个专区中有工作程序池的集群称为单专区集群。 向集群添加更多专区时,该工作程序池会跨多个专区。 具有跨多个专区分布的工作程序池的集群称为多专区集群。

如果您有多专区集群,请使其工作程序节点资源保持均衡。 确保所有工作程序池跨相同专区进行分布,并通过调整池大小(而不采用添加单个节点的方式)来添加或除去工作程序。 设置工作程序池后,可以设置集群自动缩放器,以根据工作负载资源请求,自动在工作程序池中添加或除去工作程序节点。

要节省经典工作程序节点成本吗? 创建预留 以锁定 1 或 3 年条款的折扣! 然后,使用保留实例创建工作程序池。 请注意,无法在使用预留的工作程序池上启用自动缩放。

创建新的工作程序池

可以通过创建新的工作程序池,向经典集群添加工作程序节点。

在开始之前,请确保您拥有[操作员管理员 IAM 平台访问角色] (/docs/openshift?topic=openshift-iam-platform-access-roles)。

  1. 检索集群的工作程序专区,并选择要在其中部署工作程序池中工作程序节点的专区。 如果您具有单专区集群,那么必须使用在 Worker Zones 字段中看到的专区。 对于多区域集群,您可以选择集群中现有的任何工作区,也可以添加集群所在区域 的多区域位置。 可以通过运行 ibmcloud oc zone ls 来列出可用专区。

    ibmcloud oc cluster get --cluster <cluster_name_or_ID>
    

    示例输出

    ...
    Worker Zones: dal10, dal12, dal13
    
  2. 对于每个专区,列出可用的专用和公用 VLAN。 请记下要使用的专用和公用 VLAN。 如果您没有私有或公共 VLAN,当您向工作区添加区域时,系统会自动为您创建 VLAN。

    ibmcloud oc vlan ls --zone <zone>
    
  3. 对于每个区域,查看工人节点的可用口味。

    ibmcloud oc flavors --zone <zone>
    
  4. 创建工作程序池。 有关更多选项,请参阅 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]
    
  5. 验证工作程序池是否已创建。

    ibmcloud oc worker-pool ls --cluster <cluster_name_or_ID>
    
  6. 缺省情况下,添加工作程序池将创建不包含专区的池。 要在专区中部署工作程序节点,必须将先前检索到的专区添加到工作程序池。 如果要跨多个专区分布工作程序节点,请对每个专区重复此命令。

    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>
    
  7. 验证工作程序节点是否在添加的专区中供应。 当状态从 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.32
    kube-dal10-crb20b637238ea471f8d4a8b881aae4962-w8   169.xx.xxx.xxx   10.xxx.xx.xxx   b3c.4x16          provision_pending   Ready   dal10   1.32
    

调整工作程序池的大小

您可以通过调整现有工作程序池的大小来添加或减少集群中的工作程序节点数,而不管工作程序池是位于一个专区中还是或跨多个专区分布。

例如,假设一个集群有一个工作程序池,该工作程序池在每个专区有 3 个工作程序节点。

  • 如果该集群是单专区集群,并且存在于 dal10 中,那么工作程序池在 dal10 中有 3 个工作程序节点。 集群共有 3 个工作程序节点。
  • 如果该集群是多专区集群,并且存在于 dal10dal12 中,那么工作程序池在 dal10 中有 3 个工作程序节点,在 dal12 中有 3 个工作程序节点。 集群共有 6 个工作程序节点。

请记住,裸机工作程序池是按月计费的。 如果向上或向下调整大小,都会影响您当月的成本。 通过调整工作程序池大小来添加工作程序节点时,新的工作程序节点将运行与集群主节点相同的 major.minor 版本,但运行该 major.minor 版本的最新工作程序节点补丁。

在开始之前,请确保您拥有 操作员管理员 IAM平台访问权限

要调整工作程序池大小,请更改工作程序池在每个专区中部署的工作程序节点数:

  1. 获取要调整其大小的工作程序池的名称。
    ibmcloud oc worker-pool ls --cluster <cluster_name_or_ID>
    
  2. 通过指定要在每个专区中部署的工作程序节点数来调整工作程序池的大小。
    ibmcloud oc worker-pool resize --cluster <cluster_name_or_ID> --worker-pool <pool_name>  --size-per-zone <number_of_workers_per_zone>
    
  3. 验证工作程序池的大小是否已调整。
    ibmcloud oc worker ls --cluster <cluster_name_or_ID> --worker-pool <pool_name>
    
    两个专区( dal10dal12)中的工作程序池的输出示例,此池的大小已调整为每个专区 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.32
    kube-dal10-crb20b637238ea471f8d4a8b881aae4962-w8   169.xx.xxx.xxx   10.xxx.xx.xxx   b3c.4x16          normal   Ready   dal10   1.32
    kube-dal12-crb20b637238ea471f8d4a8b881aae4962-w9   169.xx.xxx.xxx   10.xxx.xx.xxx   b3c.4x16          normal   Ready   dal12   1.32
    kube-dal12-crb20b637238ea471f8d4a8b881aae4962-w10  169.xx.xxx.xxx   10.xxx.xx.xxx   b3c.4x16          normal   Ready   dal12   1.32
    

向工作程序池添加专区

可以通过向现有工作程序池添加专区,使经典集群跨一个区域内的多个专区。

将专区添加到工作程序池时,将在新专区中供应工作程序池中定义的工作程序节点,并考虑将来进行工作负载调度。Red Hat OpenShift on IBM Cloud 会自动将区域的 failure-domain.beta.kubernetes.io/region 标签和区域的 failure-domain.beta.kubernetes.io/zone 标签添加到每个工作程序节点。 Kubernetes 调度程序使用这些标签在同一区域内的各个专区之间分布 pod。

如果您的集群中有多个工作池,请将该区域添加到所有工作池中,以便工作节点均匀地分布在您的集群中。 请注意,将工作程序节点添加到集群时,新的工作程序节点将运行与集群主节点相同的 major.minor 版本,但运行该 major.minor 版本的最新工作程序节点补丁。

开始之前:

  • 要将专区添加到工作程序池,工作程序池必须位于支持多专区的专区中。 如果工作程序池不位于支持多专区的专区中,请考虑创建新的工作程序池
  • 确保您拥有[操作员管理员 IAM平台访问权限角色] (/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> 命令

要将具有工作程序节点的专区添加到工作程序池,请执行以下操作:

  1. 列出可用专区,然后选取要添加到工作程序池的专区。 选择的专区必须是支持多专区的专区。

    ibmcloud oc zone ls
    
  2. 列出该专区中可用的 VLAN。 如果您没有私有或公共 VLAN,当您向工作区添加区域时,系统会自动为您创建 VLAN。

    ibmcloud oc vlan ls --zone <zone>
    
  3. 列出集群中的工作程序池并记下其名称。

    ibmcloud oc worker-pool ls --cluster <cluster_name_or_ID>
    
  4. 将专区添加到工作程序池。 如果您有多个工作程序池,请将专区添加到所有工作程序池,以便在所有专区中均衡集群。

    必须存在专用和公用 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>
    
  5. 验证是否已将专区添加到集群。 在输出的 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.32_1524
    Owner:                          owner@email.com
    Resource Group ID:              a8a12accd63b437bbd6d58fb6a462ca7
    Resource Group Name:            Default