사용자 클러스터 만들기

10

이 페이지에서는 VMware용 Anthos 클러스터(GKE On-Prem)의 사용자 클러스터를 만드는 방법을 설명합니다.

여기에는 전체 안내가 나와 있습니다. 사용자 클러스터 만들기에 대한 간략한 소개는 사용자 클러스터 만들기(빠른 시작)를 참조하세요.

시작하기 전에

관리자 클러스터를 만듭니다.

관리자 워크스테이션으로 SSH 연결 가져오기

관리자 워크스테이션으로 SSH 연결을 가져옵니다.

gkeadm이 관리자 워크스테이션에서 구성요소 액세스 서비스 계정을 활성화한 바 있습니다.

홈 디렉터리의 관리자 워크스테이션에서 이 주제의 나머지 단계를 모두 수행하세요.

사용자 인증 정보 구성 파일

gkeadm을 사용하여 관리자 워크스테이션을 만들 때 credential.yaml이라는 사용자 인증 정보 구성 파일을 입력했습니다. 이 파일에는 vCenter 서버의 사용자 이름과 비밀번호가 포함됩니다.

사용자 클러스터 구성 파일

gkeadm이 관리자 워크스테이션을 만들 때 user-cluster.yaml이라는 구성 파일을 생성했습니다. 이 구성 파일은 사용자 클러스터를 만들기 위한 것입니다.

구성 파일 작성

name

name 필드를 사용자 클러스터용으로 선택한 이름으로 설정합니다.

gkeOnPremVersion

이 필드는 이미 채워져 있습니다.

vCenter

관리자 클러스터 구성 파일vCenter 섹션에 설정한 값은 전역입니다. 즉, 관리자 클러스터 및 사용자 클러스터에 적용됩니다.

사용자 클러스터를 만들 때마다 전역 vCenter 값 중 일부를 재정의할 수 있습니다.

전역 vCenter 값을 재정의하려면 사용자 클러스터 구성 파일의 vCenter 섹션에 있는 관련 필드를 작성하세요.

관리자 클러스터와 별개의 데이터 센터가 포함된 사용자 클러스터를 만들려면 개별 데이터 센터에서 사용자 클러스터 만들기를 참조하세요.

network

network.ipMode.type관리자 클러스터 구성 파일에 설정한 것과 같은 값("dhcp" 또는 "static")으로 설정하세요.

ipMode.type"static"으로 설정한 경우 사용자 클러스터의 노드에 대한 고정 IP 주소를 제공하는 IP 블록 파일을 만듭니다. 그런 다음 network.ipMode.ipBlockFilePath를 IP 블록 파일의 경로로 설정합니다.

network 섹션의 나머지 필드에 값을 넣습니다.

DHCP 서버를 사용하든 고정 IP 주소 목록을 지정하든 관계없이 다음을 충족할 수 있는 충분한 IP 주소가 필요합니다.

  • 사용자 클러스터의 노드

  • 업그레이드 중에 임시로 사용할 사용자 클러스터의 추가 노드

앞에서 설명한 것처럼 고정 IP 주소를 사용하려면 IP 블록 파일을 제공해야 합니다. 다음은 호스트가 6개 있는 IP 블록 파일의 예시입니다. 이 파일에는 노드가 5개이고 여섯 번째 노드가 업그레이드를 위한 선택적 노드인 클러스터에 충분한 주소가 있습니다.

blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.21
      hostname: user-host1
    - ip: 172.16.20.22
      hostname: user-host2
    - ip: 172.16.20.23
      hostname: user-host3
    - ip: 172.16.20.24
      hostname: user-host4
    - ip: 172.16.20.25
      hostname: user-host5
    - ip: 172.16.20.26
      hostname: user-host6

loadBalancer

사용자 클러스터의 Kubernetes API 서버에 대해 VIP를 별도로 설정합니다. 사용자 클러스터의 인그레스 서비스에 대해 다른 VIP를 설정합니다. VIP를 loadBalancer.vips.controlPlaneVIPloadBalancer.vips.ingressVIP의 값으로 제공합니다.

loadBalancer.kind관리자 클러스터 구성 파일에 설정한 것과 같은 값("ManualLB", "F5BigIP", 또는 "Seesaw")으로 설정하세요. 그런 다음 해당하는 manualLB, f5BigIP 또는 seesaw 섹션을 작성합니다.

masterNode

masterNode 섹션을 입력합니다.

nodePools

nodePools 섹션을 입력합니다.

antiAffinityGroups

antiAffinityGroups.enabledtrue 또는 false로 설정합니다.

authentication

OpenID Connect(OIDC)를 사용하여 사용자를 인증하려면 authentication.oidc 섹션을 작성합니다.

사용자 클러스터의 vCenter 서버에 추가 제공 인증서를 제공하려면 authentication.sni 섹션을 작성합니다.

stackdriver

stackdriver 섹션을 입력합니다.

gkeConnect

gkeConnect 섹션을 입력합니다.

사용자 클러스터 구성 파일의 gkeConnect 섹션을 작성하지 않은 경우 사용자 클러스터를 만들 수 없습니다.

usageMetering

클러스터에 사용량 측정을 사용 설정하려면 usageMetering 섹션을 입력합니다.

cloudAuditLogging

클러스터 Kubernetes API 서버의 감사 로그를 Cloud 감사 로그와 통합하려면 cloudAuditLogging 섹션을 입력합니다.

구성 파일 검사

사용자 클러스터 구성 파일을 입력한 후 gkectl check-config를 실행하여 파일이 유효한지 확인합니다.

gkectl check-config --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_PATH]

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

  • [ADMIN_CLUSTER_KUBECONFIG]는 관리자 클러스터의 kubeconfig 파일 경로입니다.

  • [CONFIG_PATH]는 사용자 클러스터 구성 파일의 경로입니다.

명령어가 실패 메시지를 반환하면 문제를 해결하고 파일을 다시 검사합니다.

시간이 오래 걸리는 검사를 건너뛰려면 --fast 플래그를 전달합니다. 개별 검사를 건너뛰려면 --skip-validation-xxx 플래그를 사용합니다. check-config 명령어에 대해 자세히 알아보려면 실행 전 검사 실행을 참조하세요.

사용자 클러스터의 Seesaw 부하 분산기 만들기

번들 Seesaw 부하 분산기를 사용하기로 선택한 경우 이 섹션의 단계를 수행합니다. 그렇지 않으면 이 섹션을 건너뛰세요.

Seesaw 부하 분산기의 VM을 만들고 구성합니다.

gkectl create loadbalancer --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config user-cluster.yaml

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

  • ADMIN_CLUSTER_KUBECONFIG는 관리자 클러스터의 kubeconfig 파일 경로입니다.

사용자 클러스터 만들기

사용자 클러스터를 만듭니다.

gkectl create cluster --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] \
  --config [CONFIG_PATH]

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

  • [CONFIG_PATH]는 사용자 클러스터 구성 파일의 경로입니다.

  • [ADMIN_CLUSTER_KUBECONFIG]는 관리자 클러스터의 kubeconfig 파일 경로입니다.

사용자 클러스터 kubeconfig 파일 찾기

gkectl create cluster 명령어는 현재 디렉터리에 USER_CLUSTER_NAME-kubeconfig라는 kubeconfig 파일을 만듭니다. 나중에 사용자 클러스터와 상호 작용하려면 이 kubeconfig 파일이 필요합니다.

원하는 경우 kubeconfig 파일의 이름과 위치를 변경할 수 있습니다.

사용자 클러스터 실행 여부 확인

사용자 클러스터 실행 여부 확인:

kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG

USER_CLUSTER_KUBECONFIG를 사용자 클러스터 kubeconfig 파일 경로로 바꿉니다.

출력에 사용자 클러스터 노드가 표시됩니다. 예를 들면 다음과 같습니다.

my-user-cluster-node-pool-69-d46d77885-7b7tx   Ready ...
my-user-cluster-node-pool-69-d46d77885-lsvzk   Ready ...
my-user-cluster-node-pool-69-d46d77885-sswjk   Ready ...

문제 해결

클러스터 생성 및 업그레이드 문제 해결을 참조하세요.

다음 단계