將工作節點新增至 VPC 叢集
虛擬私有雲
請參閱以下各節,了解如何將工作節點新增至您的 VPC 叢集。
在新增工作人員節點前,請確保您的 VPC 帳戶有足夠的 vCPU, 記憶體、GPU、實例儲存和最佳化實例儲存資源配額。 VPC 會根據虛擬伺服器實例 (VSI) 工作節點的每個帳戶來管理這些配額。 如果達到配額限制,工作站節點的佈建將會失敗。 若要檢查您目前的配額使用情況,請參閱 檢視 VPC 資源指標。 如需詳細資訊,請參閱 VPC 配額及 為何我的 VPC 工作節點因配額限制而無法佈建?
若要增加應用程式的可用性,您可以將工作者節點新增至叢集裡的現有區域或多個現有區域。 為了協助保護應用程式使其免受區域故障影響,您可以將區域新增至叢集。
當您建立叢集時,會在工作者節點儲存區中佈建工作者節點。 在建立叢集之後,您可以藉由調整其大小或新增更多工作者節點儲存區,來將更多工作者節點新增至儲存區。 依預設,工作者節點儲存區存在於一個區域中。 一個區域中只有一個工作者節點儲存區的叢集稱為單一區域叢集。 當您將更多區域新增至叢集時,工作者節點儲存區會存在於多個區域。 具有分散到多個區域之工作者節點儲存區的叢集稱為多區域叢集。
如果您有多區域叢集,請保持其工作者節點資源的平衡。 請確定所有工作者節點儲存區都分散到相同區域,並藉由調整儲存區大小來新增或移除工作者節點,而不是新增個別節點。 設定工作者節點儲存區之後,您可以設定叢集 Autoscaler,以根據工作負載資源要求來自動新增或移除工作者節點儲存區中的工作者節點。
次要本機儲存必須在建立工作人員池時加入。 不支援在建立工作人員池後,從 VPC 基礎結構層級手動新增儲存,且不會在群集中產生額外的暫存儲存。
想要將工作者節點新增至「標準」叢集嗎? 請參閱 將工作者節點新增至標準叢集。
調整工作者節點儲存區的大小
不論工作者節點儲存區是在一個區域還是分散到多個區域,您都可以藉由調整現有工作者節點儲存區的大小來新增或減少叢集裡的工作者節點數目。
開始之前,請確認您已安裝 操作員 或 管理員 IAM 平台存取角色。
若要調整工作者節點儲存區的大小,請變更工作者節點儲存區在每一個區域中部署的工作者節點數目:
- 取得您要調整大小的工作者節點儲存區的名稱。
ibmcloud oc worker-pool ls --cluster CLUSTER-NAME - 指定您要在每一個區域中部署的工作者節點數目,以調整工作者節點儲存區的大小。
ibmcloud oc worker-pool resize --cluster CLUSTER-NAME --worker-pool POOL_NAME --size-per-zone NUMBER_OF_WORKERS_PER_ZONE - 驗證已調整工作者節點儲存區的大小。
以下為一個橫跨兩個區域(ibmcloud oc worker ls --cluster CLUSTER-NAME --worker-pool POOL_NAMEus-south-1與us-south-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 us-south-1 1.35 kube-dal10-crb20b637238ea471f8d4a8b881aae4962-w8 169.xx.xxx.xxx 10.xxx.xx.xxx b3c.4x16 normal Ready us-south-1 1.35 kube-dal12-crb20b637238ea471f8d4a8b881aae4962-w9 169.xx.xxx.xxx 10.xxx.xx.xxx b3c.4x16 normal Ready us-south-2 1.35 kube-dal12-crb20b637238ea471f8d4a8b881aae4962-w10 169.xx.xxx.xxx 10.xxx.xx.xxx b3c.4x16 normal Ready us-south-2 1.35
建立工作者節點儲存區
要在專用主機上建立新的工作者節點儲存區嗎? 請參閱 在 CLI 中設定專用主機。
開始之前,請確認您已安裝 操作員 或 管理員 IAM 平台存取角色。
-
擷取叢集的 VPC ID和工作者節點區域,並選擇要在其中部署工作者節點儲存區中工作者節點的區域。 您可以選擇叢集中現有的任何「工作節點區域」,或為叢集所屬的區域新增一個 多區域位置。 您可以執行
ibmcloud oc zone ls --provider vpc-gen2來列出可用的區域。ibmcloud oc cluster get --cluster CLUSTER-NAME輸出範例
... VPC ID: <VPC_ID> ... Worker Zones: us-south-1, us-south-2, us-south-3 -
對於每個區域,記下要用於工作者節點儲存區的 VPC 子網路的 ID。 如果您在區域中沒有 VPC 子網路,請 建立 VPC 子網路。 VPC 子網會為叢集中的工作節點和負載平衡服務提供 IP 位址,因此 請建立一個具備足夠 IP 位址的 VPC 子網,例如 256 個。
ibmcloud oc subnets --zone <ZONE> --provider vpc-gen2 --vpc-id <VPC_ID> -
針對每個區域,請檢視工作節點可用的版本。
ibmcloud oc flavors --zone <ZONE> --provider vpc-gen2 -
選用項目: 若要加密工作者節點儲存區中每一個工作者節點的本端磁碟,請取得金鑰管理服務 (KMS) 提供者的詳細資料。 如果您想要使用來自不同帳戶的 KMS 實例,則需要在 KMS 實例所在帳戶下執行這些步驟。
-
完成 VPC 工作者節點 中的步驟,以建立 KMS 實例並在 IAM 中授權服務。
-
列出可用的 KMS 實例,並記下 ID。
ibmcloud oc kms instance ls ``` 1. 列出您要使用之 KMS 實例的可用根金鑰,並記下 **ID**。 ```sh {: pre} ibmcloud oc kms crk ls --instance-id <KMS_instance_ID> ``` -
-
建立工作者節點儲存區。 如需其他選項,請參閱 CLI 文件。
ibmcloud oc worker-pool create vpc-gen2 --name NAME --cluster CLUSTER-NAME --flavor FLAVOR --size-per-zone NUMBER_OF_WORKER_NODES [--label KEY=VALUE] [--vpc-id] [[--kms-account-id <KMS_account_ID>] --kms-instance <KMS_instance_ID> --crk <root_key_ID>] [--dedicated-host-pool <dedicated-host-pool>] [--security-group <group-id>] [--operating-system SYSTEM]--label KEY=VALUE- 選用: 使用標籤
key=value配對自動標示儲存區中的工作者節點。 --vpc-id VPC- 如果工作者節點儲存區是叢集中的第一個,請指定此選項。
--operating-system RHEL_9_64|REDHAT_8_64|RHCOS- 可選。 叢集裡工作者節點的作業系統。 如需依叢集版本列出可用作業系統的清單,請參閱 Red Hat OpenShift on IBM Cloud 版本資訊。 如果未指定任何選項,則會使用對應於叢集版本的預設作業系統。
--kms-account-id ACCOUNT- 選用: 指定 KMS 實例所在的帳戶。 也包括
--kms-instance-id和--crk選項。 --kms-instance INSTANCE- 選用: 指定 KMS 實例 ID。 也包括
--kms-account-id和--crk選項。 --crk KEY- 選用: 指定 KMS 根金鑰。 也包括
--kms-account-id和--kms-instance選項。 --security-group GROUP- 指定此選項,以將其他安全群組附加至工作者節點儲存區中的工作者節點。 包括您要附加的安全群組 ID。
--dedicated-host-pool POOL- 如果您要在專用主機上建立工作者節點儲存區,請指定此選項。
-
驗證已建立工作者節點儲存區。
ibmcloud oc worker-pool ls --cluster CLUSTER-NAME -
依預設,新增工作者節點儲存區會建立沒有區域的儲存區。 若要在區域中部署工作者節點,您必須將先前擷取的區域新增至工作者節點儲存區。 如果您要將工作者節點分散到多個區域,請對每一個區域重複這個指令。
ibmcloud oc zone add vpc-gen2 --zone ZONE --subnet-id SUBNET_ID --cluster CLUSTER-NAME --worker-pool WORKER_POOL_NAME -
驗證工作者節點佈建於您所新增的區域中。 當 State 從
provisioning變更為normal時,表示工作者節點就緒。ibmcloud oc worker ls --cluster CLUSTER-NAME --worker-pool POOL_NAME輸出範例
ID Primary IP Flavor State Status Zone Version kube-<ID_string>-<cluster_name>-<pool_name>-00000002 10.xxx.xx.xxx c2.2x4 provisioning Infrastructure instance status is 'pending' us-south-1 - kube-<ID_string>-<cluster_name>-<pool_name>-00000003 10.xxx.xx.xxx c2.2x4 normal Ready us-south-1 1.35_1511
將區域新增至工作者節點儲存區
您可以讓 VPC 叢集跨越一個地區內的多個區域,方法是將區域新增至現有工作者節點儲存區。
當您將區域新增至工作者節點儲存區時,工作者節點儲存區中定義的工作者節點會佈建在新區域中,並考量用於未來工作負載排程。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)。
-
取得叢集的 Location,並記下現有 Worker Zones 和 VPC ID。
ibmcloud oc cluster get --cluster CLUSTER-NAME輸出範例
... VPC ID: <VPC_ID> Workers: 3 Worker Zones: us-south-1 ... Location: Dallas -
列出叢集位置的可用區域,以查看可以新增的其他區域。
ibmcloud oc zone ls --provider vpc-gen2 | grep LOCATION -
列出要新增的每個區域的可用 VPC 子網路。 如果您在區域中沒有 VPC 子網路,請 建立 VPC 子網路。 VPC 子網會為叢集中的工作節點和負載平衡服務提供 IP 位址,因此 請建立一個具備足夠 IP 位址的 VPC 子網,例如 256 個。 您無法在事後變更 VPC 子網所擁有的 IP 位址數量。
ibmcloud oc subnets --zone ZONE --provider vpc-gen2 --vpc-id VPC_ID -
列出叢集裡的工作者節點儲存區,並記下其名稱。
ibmcloud oc worker-pool ls --cluster CLUSTER-NAME -
將區域新增至工作者節點儲存區。 對要新增到工作者節點儲存區的每個區域重複此步驟。 如果您有多個工作者節點儲存區,請將區域新增至所有工作者節點儲存區,以平衡所有區域中的叢集。 請為每個工作執行池加入
--worker-pool選項。如果要對不同的工作者節點儲存區使用不同的 VPC 子網路,請對每個子網路及其對應的工作者節點儲存區重複此指令。 任何新的工作者節點都會新增到指定的 VPC 子網路,但不會變更任何現有工作者節點的 VPC 子網路。
ibmcloud oc zone add vpc-gen2 --zone ZONE --subnet-id SUBNET_ID --cluster CLUSTER-NAME --worker-pool WORKER_POOL_NAME -
驗證已將區域新增至叢集。 在輸出的 Worker Zones 欄位中尋找新增的區域。 請注意,隨著在已新增的區域中佈建新工作者節點,Workers 欄位中的工作者節點總數會增加。
ibmcloud oc cluster get --cluster CLUSTER-NAME輸出範例
Workers: 9 Worker Zones: us-south-1, us-south-2, us-south-3 -
若要使用 Ingress 來公開應用程式,請 更新用於公開路由器的 VPC 負載平衡器,以包括叢集裡新區域的子網路。