이 문서에서는 VMware용 Google Distributed Cloud(소프트웨어만 해당)에서 클러스터를 만들거나 업그레이드할 때 실행되는 프리플라이트 검사에 대한 정보를 제공합니다.
방화벽 규칙 검토
버전 1.29 이상에서는 클러스터를 생성, 업데이트, 업그레이드할 때 서버 측 프리플라이트 검사가 기본적으로 사용 설정됩니다. 서버 측 프리플라이트 검사에는 추가 방화벽 규칙이 필요합니다. 관리자 클러스터의 방화벽 규칙에서 '프리플라이트 검사'를 검색하고 필요한 모든 방화벽 규칙이 구성되었는지 확인합니다.
gkectl check-config
실행
gkectl
을 사용하여 클러스터를 만들려면 gkectl create-config
를 실행하여 구성 파일을 생성합니다. 구성 파일을 통해 설치를 유도할 수 있습니다. 즉, 개발자가 vSphere 환경, 네트워크 및 부하 분산기, 클러스터 모양에 대한 정보를 제공합니다. 관리자 워크스테이션을 만들기 전이나 만든 후에 구성 파일을 생성할 수 있습니다. 특정 검사를 통과하려면 관리자 워크스테이션에서 검사를 실행해야 합니다.
환경 및 클러스터 요구사항에 맞게 파일을 수정한 후 파일을 사용하여 온프렘 환경에서 클러스터를 만듭니다.
gkectl
을 사용하여 클러스터를 만들기 전에 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 환경과 네트워크를 올바르게 구성했는지 확인할 수 있습니다.
버전 1.2.0-gke.6을 사용하는 경우 gkectl check-config
를 두 번 실행합니다.
gkectl check-config --fast
를 실행합니다.gkectl prepare
를 실행합니다.--fast
플래그 없이gkectl check-config
를 다시 실행합니다.
두 번 실행하는 이유는 gkectl prepare
가 클러스터 노드 OS 이미지의 VM 템플릿을 vSphere 환경에 업로드하기 때문입니다. 전체 유효성 검사 집합을 실행하기 전에 VM 템플릿이 있어야 합니다.
버전 1.2.1 이상에서 check-config
명령어 자체는 VM 템플릿을 업로드하므로 gkectl
prepare
를 실행하기 전에 전체 유효성 검사 집합을 실행할 수 있습니다.
--fast
플래그 없이gkectl check-config
를 실행합니다.gkectl prepare
를 실행합니다.
실행 전 검사는 파일에 제공된 값의 유효성을 검사합니다. 파일에 실행 전 검사를 실행하기 위해 구성 파일의 모든 필드를 채울 필요는 없습니다. 대신 필드를 채울 때 파일 유효성을 반복적으로 검사할 수 있습니다. 예를 들어 vCenter 구성 유효성만 검사하려면 vcenter
필드만 채우고 해당 필드에 검사를 실행하면 됩니다.
클러스터를 만든 후에는 구성을 변경할 수 없습니다. 프리플라이트 검사를 실행하면 클러스터를 만들기 전에 구성에서 문제를 찾고 해결할 수 있습니다.
테스트 VM 디버깅 준비
버전 1.2.1부터 gkectl check-config
명령어에 --cleanup
플래그가 있습니다.
gkectl check-config
에서 전체 유효성 검사 집합을 수행하면 테스트 VM과 관련 SSH 키가 생성됩니다. 디버깅을 위해 테스트 VM과 SSH 키를 보존하려면 --cleanup
을 false로 설정합니다.
--cleanup
의 기본값은 true입니다.
실행 전 검사 목록
실행 전 검사는 구성 파일의 각 필드 유효성을 검사합니다. 현재 검사는 다음과 같습니다.
카테고리 | 설명 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
구성 파일 | 일반적으로 각 필드와 사양에 예상 형식 및 값이 있는지 확인합니다.
|
||||||||||||||||
인터넷 | 필요한 도메인에 대한 인터넷 액세스 유효성을 검사합니다. gkectl을 실행할 위치를 기준으로 프록시 구성 유효성을 검사합니다.
|
||||||||||||||||
OS 이미지 | OS 이미지가 존재하는지 확인합니다.
|
||||||||||||||||
Windows OS 버전 | Windows OS 버전 유효성을 검사합니다.
|
||||||||||||||||
클러스터 버전 | 관리자 클러스터 버전, 사용자 클러스터 버전,
|
||||||||||||||||
클러스터 상태 | 업그레이드 전 관리자 또는 사용자 클러스터가 정상인지 확인합니다.
|
||||||||||||||||
인그레스 | 업그레이드하기 전에 사용자 클러스터에 Istio 게이트웨이 객체가 있는지 확인합니다. | ||||||||||||||||
예약된 IP | 생성 및 업그레이드에 사용할 수 있는 충분한 IP 주소가 있는지 확인합니다.
|
||||||||||||||||
Google Cloud |
--skip-validation-gcp 플래그로 건너뜁니다.
| ||||||||||||||||
gcr.io/gke-on-prem-release 액세스 권한 보유 |
Container Registry에서 호스팅되는 컨테이너 이미지 레지스트리에 대한 액세스 유효성을 검사합니다.
|
||||||||||||||||
Docker 레지스트리 |
privateregistryconfig 구성된 경우 Docker 레지스트리에 대한 액세스 유효성을 검사합니다.
|
||||||||||||||||
vCenter | 모든 vcenter 필드가 있는지 확인하고 다음 사항도 확인합니다.
|
||||||||||||||||
스토리지 |
| ||||||||||||||||
CSI 워크로드 |
클러스터가 vSphere CSI 드라이버를 통해 생성되고 동적으로 프로비저닝된 PersistentVolume을 사용하는 워크로드를 성공적으로 실행할 수 있는지 확인합니다. 이러한 검사는 트리 내 vSphere 볼륨이 있고 vSphere CSI 볼륨이 없는 경우에만 업그레이드 중에 실행됩니다. 이 검사는 다음을 확인합니다.
|
||||||||||||||||
안티어피니티 그룹의 호스트 |
클러스터에
|
||||||||||||||||
부하 분산기 | 부하 분산 구성 유효성을 검사합니다.
--skip-validation-load-balancer 플래그로 건너뜁니다.
|
||||||||||||||||
네트워킹 | 제공된 CIDR 범위, VIP, 고정 IP(구성된 경우)를 사용할 수 있는지 확인합니다. IP 주소가 겹치지 않는지 검사합니다.
|
||||||||||||||||
DNS | 제공된 DNS 서버를 사용할 수 있는지 확인합니다.
|
||||||||||||||||
NTP | 제공된 네트워크 시간 프로토콜(NTP) 서버를 사용할 수 있는지 확인합니다.
|
||||||||||||||||
VIP | 제공된 VIP를 핑합니다. 핑이 실패하면 이 VIP를 아직 가져오지 않았음을 나타내므로 이 검사가 성공한 것입니다.
|
||||||||||||||||
노드 IP | 제공된 노드 IP 주소를 핑합니다. 핑이 실패하면 노드 IP를 아직 가져오지 않았음을 나타내므로 이 검사가 성공한 것입니다.
|
실행 전 검사 결과
실행 전 검사는 다음과 같은 결과를 반환할 수 있습니다.
- SUCCESS
- 필드와 필드 값이 검사를 통과했습니다.
- FAILURE
- 필드 또는 필드 값이 검사를 통과하지 못했습니다. 검사 결과
FAILURE
메시지가 반환되면 문제를 해결하고 파일 유효성을 다시 검사합니다. - SKIPPED
검사가 구성과 관련이 없으므로 검사를 건너뛰었습니다. 예를 들어 DHCP 서버를 사용하는 경우 고정 IP 구성만 관련된 DNS 검사와 노드 IP 검사는 건너뜁니다.
유효성 검사를 건너뛰는 플래그를 전달하면 건너뛴 검사는 SKIPPED 결과를 반환하지 않습니다. 오히려 유효성 검사가 실행되지 않고 명령어 결과에 아무 것도 표시되지 않습니다.
- UNKNOWN
건너뛰기에서 0이 아닌 코드를 반환했습니다. UNKNOWN 결과를 검사 실패로 간주할 수 있습니다. UNKNOWN은 일반적으로 검사에서 nslookup 실행 실패 또는 gcloud 실행 실패와 같은 일부 시스템 패키지를 실행할 수 없음을 나타냅니다.
출시 예정
다음 출시 버전에서는 다음과 같은 실행 전 검사가 추가됩니다.
- NTP 서버
프리플라이트 검사 실행
다음 명령어를 실행하여 프리플라이트 검사를 실행합니다.
gkectl check-config --config [CONFIG]
여기서 [CONFIG]는 구성 파일 경로입니다.
빠른 모드에서 실행
원하는 경우 부하 분산 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을 삭제하려면 다음 안내를 따르세요.
VM을 마우스 오른쪽 버튼으로 클릭하고 Power(전원) > Power Off(전원 끄기)를 클릭합니다.
VM을 종료한 후 VM을 다시 마우스 오른쪽 버튼으로 클릭하고 디스크에서 삭제를 클릭합니다.
예시
다음은 명령어 출력 예시입니다. 이 예시에서 유효성을 검사하는 구성은 통합된 부하 분산 모드와 외부 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
를 실행해야 합니다.프록시를 사용하도록 Google Distributed Cloud를 구성했습니다.
다음 번들 중 하나를 설치했습니다.
- 다운로드 페이지의
/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