추가 사용자 클러스터 만들기

이 페이지에서는 추가 사용자 클러스터를 만드는 방법을 설명합니다. 추가 사용자 클러스터를 만들려면 클러스터를 배포하는 데 사용되는 GKE On-Prem 구성 파일 사본을 만듭니다. 복사한 파일을 수정하여 새 사용자 클러스터에 대한 기대치를 충족하면 파일을 사용하여 클러스터를 만듭니다.

만들려는 각 추가 사용자 클러스터에 대해 GKE On-Prem 구성 파일을 복사하고 수정해야 합니다.

시작하기 전에

  • 관리자 클러스터가 실행 중인지 확인합니다. GKE On-Prem 설치 시 관리자 클러스터를 만들었습니다.
  • 설치 중에 gkectl에서 생성된 config.yaml 파일을 찾습니다. 이 파일은 관리자 클러스터 및 사용자 클러스터의 사양을 정의합니다. 이 파일을 복사하고 수정하여 추가 사용자 클러스터를 만듭니다.
  • 관리자 클러스터의 kubeconfig 파일을 찾습니다. config.yaml을 복사하고 수정할 때 이 파일을 참조합니다.

제한사항

제한사항 설명
클러스터와 노드의 최대 및 최소 한도

할당량 및 한도를 참조하세요. 이러한 한도는 환경 성능에 따라 달라질 수 있습니다.

사용자 클러스터 이름의 고유성

동일한 Google Cloud 프로젝트에 등록된 모든 사용자 클러스터에는 고유한 이름이 있어야 합니다.

vCenter 또는 vSphere 데이터 센터 두 개 이상에 배포할 수 없음

현재 관리자 클러스터와 연관된 사용자 클러스터 집합을 단일 vCenter 또는 vSphere 데이터 센터에만 배포할 수 있습니다. 동일한 관리자 및 사용자 클러스터를 둘 이상의 vCenter 또는 vSphere 데이터 센터에 배포할 수 없습니다.

생성 후 클러스터 구성을 선언적으로 변경할 수 없음 추가 클러스터 만들기기존 클러스터 크기 조절은 가능하지만 구성 파일을 통해 기존 클러스터를 변경할 수 없습니다.

사용 가능한 IP 주소가 충분한지 확인

새 사용자 클러스터에 할당된 IP 주소가 충분한지 확인합니다. IP 주소가 충분한지 확인하는 방법은 DHCP 서버를 사용하는지 또는 고정 IP를 사용하는지에 따라 다릅니다.

DHCP

클러스터를 만들 네트워크의 DHCP 서버에 IP 주소가 충분한지 확인합니다. 사용자 클러스터에서 실행 중인 노드보다 더 많은 IP 주소가 있어야 합니다.

고정 IP

부하 분산기에 충분한 IP 주소를 할당했는지 확인하고 클러스터를 만드는 동안 이러한 IP 주소를 지정해야 합니다.

구성 파일 복사

gkectl create-config를 사용하여 생성하고 환경에 맞게 수정한 GKE On-Prem 구성 파일을 복사합니다. 다른 파일 이름을 사용하려면 사본 이름을 변경합니다.

cp [CONFIG_FILE] [NEW_USER_CLUSTER_CONFIG]

여기서 [NEW_USER_CLUSTER_CONFIG]는 구성 파일의 사본에 선택한 이름입니다. 이 안내에서는 이 파일을 create-user-cluster.yaml이라고 합니다.

create-user-cluster.yaml에서 다음 필드를 변경해야 합니다.

  • admincluster: 관리자 클러스터의 사양. 파일에서 admincluster 사양을 완전히 삭제합니다.
  • usercluster: 사용자 클러스터의 사양

다음 섹션에서는 create-user-cluster.yamladminclusterusercluster 필드를 수정한 다음 파일을 사용하여 추가 사용자 클러스터를 만듭니다.

admincluster 사양 삭제

기존 관리자 클러스터에서 추가 사용자 클러스터를 만들려면 전체 admincluster 사양을 삭제해야 합니다.

이렇게 하려면 사양과 모든 하위 필드를 삭제하면 됩니다.

usercluster 사양이나 하위 필드를 삭제해서는 안 됩니다.

usercluster 사양 수정

다음 섹션에 설명된 대로 usercluster 필드를 변경합니다.

사용자 클러스터의 이름 변경

usercluster.clustername 필드의 사용자 클러스터 이름을 변경합니다. 새 사용자 클러스터의 이름은 기존 사용자 클러스터와 달라야 합니다.

사용자 클러스터 노드의 IP 주소 예약

DHCP를 사용하는 경우 노드를 만들 수 있는 IP가 충분한지 확인합니다.

고정 IP의 경우 사용자 클러스터의 사전 정의된 IP 주소를 포함하는 usercluster.ipblockfilepath에 제공된 파일을 수정하거나, 원하는 IP를 사용하여 다른 고정 IP YAML 파일을 제공합니다.

부하 분산기의 IP 주소 예약

F5 BIG-IP 부하 분산기를 사용하는 경우 사용자 클러스터의 부하 분산기 제어 영역과 인그레스에 2개의 IP 주소를 예약해야 합니다. 해당 필드는 usercluster.vips.controlplanevipusercluster.vips.ingressvip입니다.

머신 요구사항 변경(선택사항)

이 사용자 클러스터의 제어 영역 또는 워커 노드가 다른 양의 CPU 또는 메모리를 사용해야 하는 경우이거나 클러스터가 노드를 추가로 또는 더 적게 실행해야 하는 경우 다음 필드의 값을 설정합니다.

usercluster.masternode

  • usercluster.masternode.cpus: 사용할 CPU 코어 수입니다.
  • usercluster.masternode.memorymb: 사용할 메모리 양(MB)입니다.
  • usercluster.masternode.replicas: 실행할 이 유형의 노드 수입니다. 값은 1 또는 3이어야 합니다.

usercluster.workernode

  • usercluster.workernode.cpus: 사용할 CPU 코어 수입니다.
  • usercluster.workernode.memorymd: 사용할 메모리 양(MB)입니다.
  • usercluster.workernode.replicas: 실행할 이 유형의 노드 수입니다.

vcenter 사양 업데이트

새 클러스터에 대한 vSphere 환경의 특정 측면을 변경하려는 경우 vcenter에서 다음 필드 중 하나를 수정하면 됩니다.

  • credentials.username
  • credentials.password
  • datastore
  • network
  • resourcepool

다음 필드는 수정하면 안 됩니다.

  • credentials.address
  • datacenter
  • cluster

사용자 클러스터 만들기

이제 create-user-cluster.yaml 파일이 채워졌으므로 이 파일을 사용하여 추가 사용자 클러스터를 만들 수 있습니다.

다음 명령어를 실행합니다.

gkectl create cluster --config create-user-cluster.yaml --kubeconfig [ADMIN_CLUSTER_KUBECONFIG]

각 항목의 의미는 다음과 같습니다.

  • create-user-cluster.yaml은 방금 만든 구성 파일입니다. 이 파일에 다른 이름을 선택했을 수 있습니다.
  • [ADMIN_CLUSTER_KUBECONFIG]는 기존 관리자 클러스터의 kubeconfig를 가리킵니다.

알려진 문제

버전 1.1: vSAN Datastore 사용 시 두 번째 사용자 클러스터 만들기 실패

GKE On-Prem 출시 노트를 참조하세요.

문제해결

자세한 내용은 문제 해결을 참조하세요.

gkectl을 사용하여 클러스터 문제 진단

gkectl diagnose 명령어를 사용하여 클러스터 문제를 식별하고 클러스터 정보를 Google과 공유하세요. 클러스터 문제 진단을 참조하세요.

gkectl 명령어를 상세하게 실행

-v5

gkectl 오류를 stderr에 로깅

--alsologtostderr

관리자 워크스테이션에서 gkectl 로그 찾기

디버깅 플래그를 전달하지 않더라도 다음 관리자 워크스테이션 디렉터리에서 gkectl 로그를 볼 수 있습니다.

/home/ubuntu/.config/gke-on-prem/logs

관리자 클러스터에서 Cluster API 로그 찾기

관리자 제어 영역이 시작된 후에 VM을 시작하지 못하는 경우 다음 안내에 따라 관리자 클러스터에서 Cluster API 컨트롤러의 로그를 검사하여 디버깅할 수 있습니다.

  1. kube-system 네임스페이스에서 Cluster API 컨트롤러 pod의 이름을 찾습니다. 여기서 [ADMIN_CLUSTER_KUBECONFIG]는 관리자 클러스터의 kubeconfig 파일 경로입니다.

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system get pods | grep clusterapi-controllers
  2. pod의 로그를 엽니다. 여기서 [POD_NAME]은 pod 이름입니다. 원하는 경우 grep 또는 유사한 도구를 사용하여 오류를 검색할 수 있습니다.

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system logs [POD_NAME] vsphere-controller-manager