VPC 클러스터에 워커 노드 추가하기
가상 사설 클라우드
VPC 클러스터에 워커 노드를 추가하는 방법에 대한 정보는 다음 섹션을 참조하십시오.
작업자 노드를 추가하기 전에 VPC 계정에 vCPU, 메모리, GPU, 인스턴스 스토리지 및 최적화된 인스턴스 스토리지 리소스에 대한 충분한 할당량이 있는지 확인하세요. VPC는 가상 서버 인스턴스(VSI) 워커 노드에 대해 계정별로 이러한 할당량을 관리합니다. 할당량 제한에 도달하면 워커 노드 프로비저닝이 실패합니다. 현재 할당량 사용량을 확인하려면 VPC 리소스 메트릭 보기를 참조하세요. 자세한 내용은 VPC 쿼터 및 쿼터 제한으로 인해 VPC 워커 노드가 프로비저닝에 실패하는 이유에서 확인하세요.
앱의 가용성을 높이기 위해 클러스터의 한 기존 구역 또는 다수의 기존 구역에 작업자 노드를 추가할 수 있습니다. 구역 장애로부터 앱을 보호하는 데 도움이 되도록 클러스터에 구역을 추가할 수 있습니다.
클러스터를 작성하면 작업자 노드가 작업자 풀에서 프로비저닝됩니다. 클러스터 작성 후에는 해당 크기를 조정하거나 작업자 풀을 더 추가하여 풀에 작업자 노드를 더 추가할 수 있습니다. 기본적으로 작업자 풀은 하나의 구역에 존재합니다. 하나의 구역에만 작업자 풀이 있는 클러스터를 단일 구역 클러스터(single zone cluster)라고 합니다. 클러스터에 구역을 더 추가하면 작업자 풀이 구역 간에 존재합니다. 둘 이상의 구역 간에 전개된 작업자 풀이 있는 클러스터를 다중 구역 클러스터(multizone cluster)라고 합니다.
다중 구역 클러스터가 있으면 해당 작업자 노드 리소스의 밸런스를 유지하십시오. 모든 작업자 풀이 동일한 구역 간에 전개되어 있는지 확인하고 개별 노드를 추가하는 대신 풀의 크기를 조정하여 작업자를 추가하거나 제거하십시오. 작업자 풀을 설정한 후, 워크로드 리소스 요청을 기반으로 작업자 풀에 작업자 노드를 자동으로 추가하거나 제거하려면 클러스터 오토스케일러를 설정할 수 있습니다.
작업자 풀을 만들 때 보조 로컬 스토리지를 추가해야 합니다. 워커 풀을 만든 후 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두 개의 존에 위치하며, 존당 워커 노드 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).
-
클러스터의 위치를 가져오고 기존 작업자 구역 및 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 로드 밸런서를 업데이트하여 클러스터의 새 존에 해당하는 서브넷을 포함하도록 설정하십시오.