실행 전 검사 실행

이 페이지에서는 VMware용 Anthos 클러스터(GKE On-Prem) 구성 파일에 실행 전 검사를 실행하는 방법을 설명합니다.

개요

설치 중에 gkectl create-config를 실행하여 VMware용 Anthos 클러스터 구성 파일을 생성합니다. 구성 파일을 통해 설치를 유도할 수 있습니다. 즉, 개발자가 vSphere 환경, 네트워크 및 부하 분산기, 클러스터 모양에 대한 정보를 제공합니다. 관리자 워크스테이션을 만들기 전이나 만든 후에 구성 파일을 생성할 수 있습니다. 특정 검사를 통과하려면 관리자 워크스테이션에서 검사를 실행해야 합니다.

환경 및 클러스터 요구사항에 맞게 파일을 수정한 후 파일을 사용하여 온프렘 환경에서 클러스터를 만듭니다.

클러스터를 만들기 전에 gkectl check-config를 실행하여 여러 실행 전 검사로 구성 파일 유효성을 검사합니다. 명령어가 FAILURE 메시지를 반환하면 문제를 해결하고 파일 유효성을 다시 검사합니다. 특정 기능 유효성 검사에서 경고 메시지를 반환하는 경우 근본적인 문제를 해결해야 해당 기능을 사용할 수 있습니다.

실행 전 검사 모드 및 유효성 검사 건너뛰기

gkectl check-config에는 기본 모드와 빠른 모드가 있습니다.

  • 기본 모드에서 이 명령어는 각 필드 유효성을 포괄적으로 검사합니다. 또한 기본 모드는 유효성 검사 중에 임시 vSphere 가상 머신(VM)을 만들므로 시간이 더 걸릴 수 있습니다.

  • 빠른 모드에서는 이 명령어가 테스트 VM을 만드는 검사를 건너뛰고 빠른 검사만 실행합니다. --fast 플래그를 전달하여 빠른 모드를 사용 설정합니다.

gkectl check-config --help에 설명된 다른 플래그를 전달하여 특정 유효성 검사를 건너뛸 수 있습니다.

관리자 워크스테이션과 테스트 VM 간의 트래픽

기본 모드에서 실행 전 검사는 클러스터에 대한 테스트 VM을 만듭니다. 각 테스트 VM은 포트 443과 구성 파일에서 지정된 노드 포트에서 리슨하는 HTTP 서버를 실행합니다.

여러 IP 주소가 테스트 VM에 할당됩니다. 구성 파일에서 클러스터 노드가 DHCP 서버에서 IP 주소를 가져오도록 표시된 경우 실행 전 검사에서는 DHCP 서버를 사용하여 테스트 VM에 IP 주소를 할당합니다. 구성 파일에서 클러스터 노드에 고정 IP 주소가 할당되도록 표시된 경우 실행 전 검사에서는 IP 블록 파일에서 지정한 고정 IP 주소를 테스트 VM에 할당합니다.

관리자 워크스테이션에서 실행되는 실행 전 검사는 VM에 할당된 여러 IP 주소를 사용하여 HTTP 요청을 테스트 VM으로 전송합니다. 요청은 포트 443과 구성 파일에서 지정된 노드 포트로 전송됩니다.

실행 전 검사는 언제 실행해야 하나요?

클러스터를 만들기 전에 실행 전 검사를 미리 실행하는 것이 좋습니다. 실행 전 검사를 미리 실행하면 vSphere 환경과 네트워크를 올바르게 구성했는지 확인할 수 있습니다.

VMware용 Anthos 클러스터 버전 1.2.0-gke.6을 사용하는 경우 gkectl check-config를 두 번 실행합니다.

  1. gkectl check-config --fast를 실행합니다.

  2. gkectl prepare를 실행합니다.

  3. --fast 플래그 없이 gkectl check-config를 다시 실행합니다.

두 번 실행하는 이유는 gkectl prepare가 클러스터 노드 OS 이미지의 VM 템플릿을 vSphere 환경에 업로드하기 때문입니다. 전체 유효성 검사 집합을 실행하기 전에 VM 템플릿이 있어야 합니다.

VMware용 Anthos 클러스터 버전 1.2.1 이상에서 check-config 명령어 자체는 VM 템플릿을 업로드하므로 gkectl prepare를 실행하기 전에 전체 유효성 검사 집합을 실행할 수 있습니다.

  1. --fast 플래그 없이 gkectl check-config를 실행합니다.

  2. gkectl prepare를 실행합니다.

실행 전 검사는 파일에 제공된 값의 유효성을 검사합니다. 파일에 실행 전 검사를 실행하기 위해 구성 파일의 모든 필드를 채울 필요는 없습니다. 대신 필드를 채울 때 파일 유효성을 반복적으로 검사할 수 있습니다. 예를 들어 vCenter 구성 유효성만 검사하려면 vcenter 필드만 채우고 해당 필드에 검사를 실행하면 됩니다.

클러스터를 만든 후에는 VMware용 Anthos 클러스터 구성을 변경할 수 없습니다. 실행 전 검사를 실행하면 클러스터를 만들기 전에 구성에서 문제를 찾고 해결할 수 있습니다.

테스트 VM 디버깅 준비

VMware용 Anthos 클러스터 버전 1.2.1부터 gkectl check-config 명령어에 --cleanup 플래그가 있습니다.

gkectl check-config에서 전체 유효성 검사 집합을 수행하면 테스트 VM과 관련 SSH 키가 생성됩니다. 디버깅을 위해 테스트 VM과 SSH 키를 보존하려면 --cleanup을 false로 설정합니다.

--cleanup의 기본값은 true입니다.

실행 전 검사 목록

실행 전 검사는 구성 파일의 각 필드 유효성을 검사합니다. 현재 검사는 다음과 같습니다.

카테고리 설명
구성 파일

일반적으로 각 필드와 사양에 예상 형식 및 값이 있는지 확인합니다.

--skip-validation-config 플래그로 건너뜁니다.

--skip-validation-proxy 플래그를 사용하여 proxy 필드 유효성 검사를 건너뜁니다.

인터넷

필요한 도메인에 대한 인터넷 액세스 유효성을 검사합니다. gkectl을 실행할 위치를 기준으로 프록시 구성 유효성을 검사합니다.

--skip-validation-internet 플래그로 건너뜁니다.

OS 이미지

OS 이미지가 존재하는지 확인합니다.

--skip-validation-os-images 플래그로 건너뜁니다.

Windows OS 버전

Windows OS 버전 유효성을 검사합니다.

gkeadm 명령줄 도구를 사용하여 관리자 워크스테이션을 만들 때 Windows 버전이 지원되는지 확인합니다. gkeadm 도구는 Windows 10, Windows Server 2019, Linux에서 사용할 수 있지만 Linux에는 실행 전 검사가 없습니다. 이 유효성 검사는 출시 버전 1.4.1부터 제공됩니다.

클러스터 버전

관리자 클러스터 버전, 사용자 클러스터 버전, gkectl 버전이 생성 및 업그레이드와 일치하는지 확인합니다.

--skip-validation-cluster-version 플래그로 건너뜁니다.

클러스터 상태

업그레이드 전 관리자 또는 사용자 클러스터가 정상인지 확인합니다.

  • 관리자 클러스터: 확인 대상에 Kubernetes 서비스, 구성요소 상태, DaemonSet, 배포, 머신, Pod가 포함됩니다.
  • 사용자 클러스터: 확인 대상에 Kubernetes 서비스, 클러스터 API 엔드포인트, StatefulSet, 배포, 머신 배포, 머신, Pod가 포함됩니다.

--skip-validation-cluster-health 플래그로 건너뜁니다.

인그레스

업그레이드하기 전에 사용자 클러스터에 Istio 게이트웨이 객체가 있는지 확인합니다. 인그레스 마이그레이션을 참조하세요.

예약된 IP

생성 및 업그레이드에 사용할 수 있는 충분한 IP 주소가 있는지 확인합니다.

--skip-validation-reserved-ips 플래그로 건너뜁니다.

Google Cloud
프로젝트 ID
[*].projectid
구성의 여러 필드에 제공된 프로젝트 ID 유효성을 검사합니다. 프로젝트 ID가 누락되면 유효성 검사를 건너뜁니다.
등록 서비스 계정
registerserviceaccountkeypath
서비스 계정이 필요한 IAM 역할을 보유하고 있는지 확인합니다. 필요한 API가 사용 설정되었는지 확인합니다.
연결 서비스 계정
agentserviceaccountkeypath
서비스 계정이 필요한 IAM 역할을 보유하고 있는지 확인합니다. 필요한 API가 사용 설정되었는지 확인합니다.
Google Cloud의 작업 제품군 서비스 계정
stackdriver.serviceaccountkeypath
서비스 계정이 필요한 IAM 역할을 보유하고 있는지 확인합니다. 필요한 API가 사용 설정되었는지 확인합니다.
--skip-validation-gcp 플래그로 건너뜁니다.
gcr.io/gke-on-prem-release 액세스 Container Registry에서 호스팅되는 VMware용 Anthos 클러스터 컨테이너 이미지 레지스트리에 대한 액세스 유효성을 검사합니다.

--skip-validation-docker 플래그로 건너뜁니다.

Docker 레지스트리
privateregistryconfig
구성된 경우 Docker 레지스트리에 대한 액세스 유효성을 검사합니다.

--skip-validation-docker 플래그로 건너뜁니다.

vCenter 모든 vcenter 필드가 있는지 확인하고 다음 사항도 확인합니다.
사용자 인증 정보
vcenter.credentials.[*]
제공된 사용자 인증 정보를 사용하여 vCenter Server 인증 유효성을 검사합니다.
vSphere 버전 vSphere가 버전에 적합한지 확인합니다.
데이터센터
vcenter.datacenter
vSphere 데이터센터가 있는지 확인합니다.
Datastore
vcenter.datastore
vSphere Datastore가 있는지 확인합니다.
데이터 디스크
vcenter.datadisk
vSphere 가상 머신 디스크(VMDK)가 vSphere에 아직 없는지 확인합니다.
리소스 풀
vcenter.resourcepool
vSphere 리소스 풀이 있는지 확인합니다.
네트워크
vcenter.network
vSphere 네트워크가 있는지 확인합니다.
vSphere CSI 드라이버 vSphere CSI 드라이버 기본 요건을 확인합니다.

--skip-validation-infra 플래그로 건너뜁니다.

안티어피니티 그룹의 호스트

antiAffinityGroups가 사용 설정된 경우 물리적 vCenter 호스트 수가 최소 세 개 이상인지 확인합니다.

클러스터에 antiAffinityGroups를 중지하려면 antiAffinityGroups.enabled 및 이 출시 노트를 참조하세요.

--skip-validation-infra 플래그로 건너뜁니다.

부하 분산기

부하 분산 구성 유효성을 검사합니다.

  • 부하 분산 모드가 통합된 경우(lbmode: Integrated) 모든 bigip 필드가 adminclusterusercluster 사양에 있는지 확인합니다.
  • 부하 분산 모드가 수동인 경우(lbmode: Manual) 모든 manuallbspec 필드가 adminclusterusercluster 사양에 있는지 확인합니다.
통합 부하 분산
bigip.credentials.[*] F5 BIG-IP 사용자 인증 정보 유효성을 검사합니다.
bigip.partition 제공된 파티션이 있는지 확인합니다.
F5 BIG-IP 사용자 역할 제공된 F5 BIG-IP 사용자에게 관리자 또는 리소스 관리자 역할이 있는지 확인합니다.
bigip.vips.[*] 제공된 VIP 유효성을 검사합니다.

--fast 또는 --skip-validation-load-balancer 플래그로 건너뜁니다.

수동 부하 분산
네트워킹 구성 VIP, 노드 IP 등의 유효성을 검사합니다.

--fast 또는 --skip-validation-load-balancer 플래그로 건너뜁니다.

[*].manuallbspec.[*] 제공된 노드 포트의 유효성을 검사합니다.
--skip-validation-load-balancer 플래그로 건너뜁니다.
네트워킹

제공된 CIDR 범위, VIP, 고정 IP(구성된 경우)를 사용할 수 있는지 확인합니다. IP 주소가 겹치지 않는지 검사합니다.

--skip-validation-net-config 플래그로 건너뜁니다.

DNS

제공된 DNS 서버를 사용할 수 있는지 확인합니다.

--skip-validation-dns 플래그로 건너뜁니다.

NTP

제공된 네트워크 시간 프로토콜(NTP) 서버를 사용할 수 있는지 확인합니다.

--skip-validation-tod 플래그로 건너뜁니다.

VIP

제공된 VIP를 핑합니다. 핑이 실패하면 이 VIP를 아직 가져오지 않았음을 나타내므로 이 검사가 성공한 것입니다.

--skip-validation-vips 플래그로 건너뜁니다.

노드 IP

제공된 노드 IP 주소를 핑합니다. 핑이 실패하면 노드 IP를 아직 가져오지 않았음을 나타내므로 이 검사가 성공한 것입니다.

--skip-validation-node-ips 플래그로 건너뜁니다.

실행 전 검사 결과

실행 전 검사는 다음과 같은 결과를 반환할 수 있습니다.

SUCCESS
필드와 필드 값이 검사를 통과했습니다.
FAILURE
필드 또는 필드 값이 검사를 통과하지 못했습니다. 검사 결과 FAILURE 메시지가 반환되면 문제를 해결하고 파일 유효성을 다시 검사합니다.
SKIPPED

검사가 구성과 관련이 없으므로 검사를 건너뛰었습니다. 예를 들어 DHCP 서버를 사용하는 경우 고정 IP 구성만 관련된 DNS 검사와 노드 IP 검사는 건너뜁니다.

유효성 검사를 건너뛰는 플래그를 전달하면 건너뛴 검사는 SKIPPED 결과를 반환하지 않습니다. 오히려 유효성 검사가 실행되지 않고 명령어 결과에 아무 것도 표시되지 않습니다.

UNKNOWN

건너뛰기에서 0이 아닌 코드를 반환했습니다. UNKNOWN 결과를 검사 실패로 간주할 수 있습니다. UNKNOWN은 일반적으로 검사에서 nslookup 실행 실패 또는 gcloud 실행 실패와 같은 일부 시스템 패키지를 실행할 수 없음을 나타냅니다.

출시 예정

다음 출시 버전에서는 다음과 같은 실행 전 검사가 추가됩니다.

  • NTP 서버

실행 전 검사 실행

다음 명령어를 실행하여 실행 전 검사를 실행합니다.

gkectl check-config --config [CONFIG]

여기서 [CONFIG]는 VMware용 Anthos 클러스터 구성 파일의 경로입니다.

빠른 모드에서 실행

원하는 경우 부하 분산 VIP 및 노드 IP 유효성 검사와 같은 임시 테스트 VM을 만드는 유효성 검사를 건너뛰는 '빠른 모드'에서 실행 전 검사를 실행할 수 있습니다. 이렇게 하려면 --fast를 전달합니다.

gkectl check-config --config [CONFIG] --fast

특정 유효성 검사 건너뛰기

플래그를 전달하여 DNS, 프록시, 네트워킹과 같은 특정 유효성 검사를 세부적으로 건너뛸 수 있습니다. 각 건너뛰기 플래그의 프리픽스는 --skip-[VALIDATION]입니다.

사용 가능한 건너뛰기 플래그에 대해 알아보려면 다음 명령어를 실행하세요. 원하는 경우 gkectl check-config 참조를 확인하세요.

gkectl check-config --help

예를 들어 부하 분산기 유효성 검사를 건너뛰려면 다음을 실행합니다.

gkectl check-config --config my-config.yaml --skip-validation-load-balancer 

실행 전 검사 취소

실행 전 검사를 실행했지만 취소하려면 CTRL + C를 두 번 누릅니다. 실행 전 검사에서 테스트 VM을 만든 경우 취소하면 VM이 자동으로 삭제되어야 합니다.

테스트 VM 삭제

실행 전 검사를 완료한 후에 테스트 VM이 남아 있으면 vCenter에서 이 VM을 삭제할 수 있습니다. 테스트 VM 이름은 다음과 같습니다.

check-config-[dhcp|static]-[random number]

VM을 삭제하려면 다음 안내를 따르세요.

  1. VM을 마우스 오른쪽 버튼으로 클릭하고 Power(전원) > Power Off(전원 끄기)를 클릭합니다.

  2. VM을 종료한 후 VM을 마우스 오른쪽 버튼으로 다시 클릭하고 Delete from Disk(디스크에서 삭제)를 클릭합니다.

예시

다음은 명령어 출력 예시입니다. 이 예시에서 유효성을 검사하는 구성은 통합된 부하 분산 모드와 외부 Docker 레지스트리가 없는 고정 IP를 사용합니다.

- Validation Category: Config Check
    - [SUCCESS] Config

- Validation Category: Internet Access
    - [SUCCESS] Internet access to required domains

- Validation Category: GCP
    - [SUCCESS] GCP Service
    - [SUCCESS] GCP Service Account

- Validation Category: Docker Registry
    - [SUCCESS] gcr.io/gke-on-prem-release access

- Validation Category: vCenter
    - [SUCCESS] Credentials
    - [SUCCESS] Version
    - [SUCCESS] Datacenter
    - [SUCCESS] Datastore
    - [SUCCESS] Data Disk
    - [SUCCESS] Resource Pool
    - [SUCCESS] Network
    - [SUCCESS] VSphere CSI Driver

- Validation Category: F5 BIG-IP
    - [SUCCESS] Admin Cluster F5 (credentials, partition and user role)
    - [SUCCESS] User Cluster F5 (credentials, partition and user role)

- Validation Category: Network Configuration
    - [SUCCESS] CIDR, VIP and static IP (availability and overlapping)

- Validation Category: DNS
    - [SUCCESS] DNS (availability)

- Validation Category: VIPs
    - [SUCCESS] ping (availability)

- Validation Category: Node IPs
    - [SUCCESS] ping (availability)

Now running slow validation checks. ...

Reusing VM template "gke-on-prem-osimage-xxx" that already exists in vSphere.
Creating test VMs with admin cluster configuration...  DONE
Waiting to get IP addresses from test VMs...  DONE
Waiting for test VMs to become ready...  DONE

Reusing VM template "gke-on-prem-osimage-xxx" that already exists in vSphere.
Creating test VMs with user cluster configuration...  DONE
Waiting to get IP addresses from test VMs...  DONE
Waiting for test VMs to become ready...  DONE

- Validation Category: F5 BIG-IP
    - [SUCCESS] Admin Cluster VIP and NodeIP
    - [SUCCESS] Admin Cluster F5 Access
    - [SUCCESS] User Cluster VIP and NodeIP
    - [SUCCESS] User Cluster F5 Access

- Validation Category: Internet Access
    - [SUCCESS] Internet access to required domains

- Validation Category: vCenter on test VMs
    - [SUCCESS] Test VM: VCenter Access and Permission

- Validation Category: DNS on test VMs
    - [SUCCESS] Test VM: DNS Availability

- Validation Category: TOD on test VMs
    - [SUCCESS] Test VM: TOD Availability

- Validation Category: Docker Registry
    - [SUCCESS] gcr.io/gke-on-prem-release access

Deleting test VMs with admin cluster configuration...  DONE
Deleting test VMs with user cluster configuration...  DONE

알려진 문제

  • 버전 1.3.0-gke.16:

    다음 두 가지 모두에 해당하는 경우 실행 전 검사에 빠른 유효성 검사 gkectl check-config --fast를 실행해야 합니다.

    1. 프록시를 사용하도록 VMware용 Anthos 클러스터를 구성했습니다.

    2. 다음 번들 중 하나를 설치했습니다.

      • 다운로드 페이지의 /var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16.tgz 번들
      • 관리자 워크스테이션의 /var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16.tgz 번들

    전체 번들을 설치한 경우에만 전체 유효성 검사 집합을 실행할 수 있습니다. 예를 들면 다음과 같습니다. /var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16-full.tgz

  • 버전 1.2.0-gke.6:

    중첩된 리소스 풀이나 기본 리소스 풀을 사용하는 경우 gkectl check-config는 전체 유효성 검사를 수행하려고 하면 실패합니다. 그러나 --fast 플래그를 전달하면 더 작은 유효성 검사 집합을 수행할 수 있습니다.

    gkectl check-config --config [CONFIG] --fast

다음 단계