이 페이지에서는 Google Kubernetes Engine (GKE) 네트워크 격리 문제를 해결하는 방법을 설명합니다.
추가 지원이 필요하면 Cloud Customer Care에 연락합니다.
GKE 클러스터가 실행되지 않음
클러스터 컨트롤 플레인에서 포트 10250의 노드로 전송되는 수신 트래픽을 허용하는 방화벽 규칙을 삭제하거나 기본 인터넷 게이트웨이의 기본 경로를 삭제하면 클러스터가 작동을 중지합니다. 기본 경로를 삭제할 경우 필요한Google Cloud 서비스로 가는 트래픽을 라우팅해야 합니다. 자세한 내용은 커스텀 라우팅을 참고하세요.
클러스터 생성 시 제한 시간
- 증상
- 버전 1.28 이하에서 비공개 노드로 만든 클러스터에는 VPC 간의 피어링 경로가 필요합니다. 하지만 한 번에 하나의 피어링 작업만 실행할 수 있습니다. 위의 특성을 가진 클러스터를 동시에 여러 개 만들려고 하면 클러스터 만들기가 타임아웃될 수 있습니다.
- 해결 방법
다음 해결 방법 중 하나를 사용하세요.
외부 엔드포인트 없이 이후의 각 클러스터에 VPC 피어링 경로가 이미 존재하도록 버전 1.28 이하에서 클러스터를 순차적으로 만듭니다. VPC에서 실행 중인 작업이 있는 경우 단일 클러스터를 만들려고 해도 타임아웃될 수 있습니다.
버전 1.29 이상에서 클러스터를 만듭니다.
VPC 네트워크 피어링 연결이 실수로 삭제됨
- 증상
VPC 네트워크 피어링 연결을 실수로 삭제한 경우 클러스터가 복구 상태로 전환되고 모든 노드가
UNKNOWN
상태로 표시됩니다. 제어 영역에 대한 연결 기능이 해제되었기 때문에 어떤 작업도 수행할 수 없습니다. 제어 영역을 검사하면 로그에 다음과 비슷한 로그가 표시됩니다.error checking if node NODE_NAME is shutdown: unimplemented
- 가능한 원인
VPC 네트워크 피어링 연결이 실수로 삭제되었습니다.
- 해결 방법
다음 단계를 따르세요.
새로운 임시 VPC 네트워크 피어링 클러스터를 만듭니다. 클러스터를 만들면 VPC 네트워크 피어링이 다시 생성되고 이전 클러스터가 정상 작동으로 복원됩니다.
이전 클러스터가 정상 작동으로 복원된 후 임시로 생성된 VPC 네트워크 피어링 클러스터를 삭제합니다.
Private Service Connect 엔드포인트 및 전달 규칙이 실수로 삭제됨
- 증상
Private Service Connect 엔드포인트 또는 전달 규칙을 실수로 삭제하면 클러스터가 복구 상태로 전환되고 모든 노드가
UNKNOWN
상태로 표시됩니다. 제어 영역에 대한 액세스 연결이 끊어졌으므로 클러스터에서 어떤 작업도 수행할 수 없습니다. 제어 영역을 검사하면 로그에 다음과 비슷한 로그가 표시됩니다.error checking if node NODE_NAME is shutdown: unimplemented
- 가능한 원인
Private Service Connect 엔드포인트 또는 전달 규칙을 실수로 삭제했습니다. 두 리소스 모두 이름이
gke-[cluster-name]-[cluster-hash:8]-[uuid:8]-pe
이며 제어 영역과 노드가 비공개로 연결하도록 허용합니다.- 해결 방법
제어 영역 IP 주소를 순환합니다.
클러스터가 활성 피어와 겹침
- 증상
외부 엔드포인트 없이 클러스터를 만들려고 하면 다음과 유사한 오류가 반환됩니다.
Google Compute Engine: An IP range in the peer network overlaps with an IP range in an active peer of the local network.
- 가능한 원인
겹치는 제어 영역 CIDR을 선택했습니다.
- 해결 방법
다음 해결 방법 중 하나를 사용하세요.
- 클러스터를 삭제하고 다른 제어 영역 CIDR을 사용하여 다시 만듭니다.
- 버전 1.29에서 클러스터를 다시 만들고
--enable-private-nodes
플래그를 포함합니다.
외부 엔드포인트가 없는 클러스터의 제어 영역에 연결할 수 없음
클러스터 엔드포인트 액세스 구성을 구현하여 클러스터 제어 영역의 연결 가능성을 높입니다. 자세한 내용은 클러스터 엔드포인트에 액세스를 참조하세요.
- 증상
외부 엔드포인트가 없는 클러스터를 만든 후 클러스터에
kubectl
명령어를 실행하려고 하면 다음 중 하나와 유사한 오류가 반환됩니다.Unable to connect to the server: dial tcp [IP_ADDRESS]: connect: connection timed out.
Unable to connect to the server: dial tcp [IP_ADDRESS]: i/o timeout.
- 가능한 원인
kubectl
이 클러스터 제어 영역에 연결할 수 없습니다.- 해결 방법
다음 해결 방법 중 하나를 사용하세요.
DNS 액세스를 사용 설정하여 간편하게 클러스터에 안전하게 액세스하세요. 자세한 내용은 DNS 기반 엔드포인트를 참고하세요.
kubeconfig에 대해 클러스터 사용자 인증 정보가 생성되었거나 올바른 컨텍스트가 활성화되었는지 확인합니다. 클러스터 사용자 인증 정보 설정에 대한 자세한 내용은 kubeconfig 항목 생성을 참조하세요.
외부 IP 주소를 사용하여 제어 영역에 액세스하는 것이 허용되는지 확인합니다. 클러스터 컨트롤 플레인에 대한 외부 액세스를 중지하면 클러스터가 인터넷에서 격리됩니다. 이 구성을 사용하면 승인된 내부 네트워크 CIDR 범위 또는 예약된 네트워크만 제어 영역에 액세스할 수 있습니다.
원본 IP 주소가 제어 영역에 도달하도록 승인되었는지 확인합니다.
gcloud container clusters describe CLUSTER_NAME \ --format="value(controlPlaneEndpointsConfig.ipEndpointsConfig.authorizedNetworksConfig)"\ --location=COMPUTE_LOCATION
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터 이름COMPUTE_LOCATION
: 클러스터의 Compute Engine 위치
원본 IP 주소가 승인되지 않으면 출력에서 원본 IP 주소가 포함되지 않은 빈 결과(중괄호만) 또는 CIDR 범위가 반환될 수 있습니다.
cidrBlocks: cidrBlock: 10.XXX.X.XX/32 displayName: jumphost cidrBlock: 35.XXX.XXX.XX/32 displayName: cloud shell enabled: true
제어 영역에 액세스할 수 있도록 승인된 네트워크를 추가합니다.
온프레미스 환경 또는 클러스터 위치와 다른 리전에서
kubectl
명령어를 실행하는 경우 제어 영역 비공개 엔드포인트 전역 액세스가 사용 설정되어 있는지 확인합니다. 자세한 내용은 모든 리전의 컨트롤 플레인 내부 IP 주소를 사용하여 액세스를 참고하세요.클러스터를 설명하여 제어 액세스 구성 응답을 확인합니다.
gcloud container clusters describe CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --flatten "controlPlaneEndpointsConfig.ipEndpointsConfig.globalAccess"
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터 이름COMPUTE_LOCATION
: 클러스터의 Compute Engine 위치
성공적인 출력은 다음과 비슷합니다.
enabled: true
null
이 반환되면 모든 리전에서 컨트롤 플레인의 내부 IP 주소를 사용하여 액세스를 사용 설정합니다.
겹치는 IPv4 CIDR 블록으로 인해 클러스터를 만들 수 없음
- 증상
gcloud container clusters create
는 다음과 비슷한 오류를 반환합니다.The given master_ipv4_cidr 10.128.0.0/28 overlaps with an existing network 10.128.0.0/20.
- 가능한 원인
VPC의 기존 서브넷과 겹치는 제어 영역 CIDR 블록을 지정했습니다.
- 해결 방법
--master-ipv4-cidr
의 기존 서브넷과 겹치지 않는 CIDR 블록을 지정합니다.
이미 다른 클러스터에서 사용 중인 서비스 범위로 인해 클러스터를 만들 수 없음
- 증상
클러스터를 만들려고 하면 다음과 유사한 오류가 반환됩니다.
Services range [ALIAS_IP_RANGE] in network [VPC_NETWORK], subnetwork [SUBNET_NAME] is already used by another cluster.
- 가능한 원인
다음 구성으로 인해 이 오류가 발생할 수 있습니다.
- 다른 클러스터에서 아직 사용 중인 서비스 범위를 선택했거나 클러스터가 삭제되지 않았습니다.
- 삭제된 서비스 범위를 사용하는 클러스터가 있지만 보조 범위 메타데이터가 제대로 삭제되지 않았습니다. GKE 클러스터의 보조 범위는 Compute Engine 메타데이터에 저장되며 클러스터가 삭제되면 삭제되어야 합니다. 클러스터가 성공적으로 삭제되더라도 메타데이터가 삭제되지 않을 수 있습니다.
- 해결 방법
다음 단계를 따르세요.
- 기존 클러스터에서 서비스 범위를 사용하고 있는지 확인합니다.
gcloud container clusters list
명령어를filter
플래그와 함께 사용하여 클러스터를 검색할 수 있습니다. 서비스 범위를 사용하는 기존 클러스터가 있으면 클러스터를 삭제하거나 새 서비스 범위를 만들어야 합니다. - 기존 클러스터에서 서비스 범위를 사용하지 않는 경우 사용하려는 서비스 범위와 일치하는 메타데이터 항목을 수동으로 삭제합니다.
- 기존 클러스터에서 서비스 범위를 사용하고 있는지 확인합니다.
서브넷을 만들 수 없음
- 증상
자동 서브넷으로 클러스터를 만들거나 커스텀 서브넷을 만들려고 하면 다음과 같은 오류가 발생할 수 있습니다.
An IP range in the peer network overlaps with an IP range in one of the active peers of the local network.
Error: Error waiting for creating GKE cluster: Invalid value for field PrivateClusterConfig.MasterIpv4CidrBlock: x.x.x.x/28 conflicts with an existing subnet in one of the peered VPCs.
- 가능한 원인
지정한 제어 영역 CIDR 범위가 클러스터의 다른 IP 범위와 겹칩니다. 최근에 삭제된 클러스터에서 사용된
master-ipv4-cidr
CIDR을 재사용하려고 할 때도 이 서브넷 생성 오류가 발생할 수 있습니다.- 해결 방법
다른 CIDR 범위를 사용해 봅니다.
공개 Docker Hub에서 이미지를 가져올 수 없음
- 증상
클러스터에서 실행 중인 포드가
kubectl describe
에 경고를 표시합니다.Failed to pull image: rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
- 가능한 원인
비공개 IP 주소가 있는 노드는 인터넷 액세스 요구사항을 충족하기 위한 추가 구성만 필요합니다. 단, 비공개 Google 액세스를 사용 설정하고 네트워크 요구사항을 충족한 경우 노드는 Google Cloud API 및 서비스에 액세스할 수 있습니다.
- 해결 방법
다음 해결 방법 중 하나를 사용하세요.
클러스터의 이미지를 Docker Hub에서 Artifact Registry로 복사합니다. 자세한 내용은 타사 레지스트리에서 컨테이너 마이그레이션을 참조하세요.
GKE는 자주 액세스되는 Docker Hub 이미지의 캐시된 복사본을 자동으로
mirror.gcr.io
에서 확인합니다.Docker Hub 또는 다른 공개 저장소에서 이미지를 가져와야 하는 경우 정적
0.0.0.0/0
경로의 대상인 Cloud NAT 또는 인스턴스 기반 프록시를 사용합니다.
허용 웹훅 타임아웃을 트리거하는 API 요청
- 증상
443이 아닌
targetPort
로 서비스를 사용하도록 구성된 허용 웹훅을 트리거하는 API 요청이 시간 초과되어 요청이 실패합니다.Error from server (Timeout): request did not complete within requested timeout 30s
- 가능한 원인
기본적으로 방화벽은 포트 443(HTTPS) 및 10250(kubelet)을 제외한 노드에 대한 TCP 연결을 허용하지 않습니다. 트래픽을 허용하는 커스텀 방화벽 규칙이 없으면 443 이외의 포트에서 포드와 통신을 시도하는 허용 웹훅이 실패합니다.
- 해결 방법
구체적 사용 사례에 맞는 방화벽 규칙을 추가합니다.
상태 점검 실패로 인해 클러스터를 만들 수 없음
- 증상
비공개 노드 풀이 있는 Standard 클러스터를 만들면 상태 확인 단계에서 중지되어 다음 중 하나와 유사한 오류가 보고됩니다.
All cluster resources were brought up, but only 0 of 2 have registered.
All cluster resources were brought up, but: 3 nodes out of 4 are unhealthy
- 가능한 원인
다음 구성으로 인해 이 오류가 발생할 수 있습니다.
- 클러스터 노드는 Cloud Storage API(
storage.googleapis.com
)에서 필요한 바이너리를 다운로드할 수 없습니다. - 이그레스 트래픽을 제한하는 방화벽 규칙
- 공유 VPC IAM 권한이 잘못되었습니다.
- 비공개 Google 액세스를 사용하려면
*.gcr.io
의 DNS를 구성해야 합니다.
- 클러스터 노드는 Cloud Storage API(
- 해결 방법
다음 해결 방법 중 하나를 사용하세요.
서브넷에서
storage.googleapis.com
에 대한 노드 네트워크 액세스를 위해 비공개 Google 액세스를 사용 설정하거나 노드가storage.googleapis.com
엔드포인트와 통신할 수 있도록 Cloud NAT를 사용 설정합니다.storage.googleapis.com
에 대한 노드 읽기 액세스의 경우 클러스터 노드에 할당된 서비스 계정에 스토리지 읽기 액세스 권한이 있는지 확인합니다.모든 이그레스 트래픽을 허용하는Google Cloud 방화벽 규칙이 있는지 확인하거나 클러스터 제어 영역 및
*.googleapis.com
에 대한 노드의 이그레스 트래픽을 허용하도록 방화벽 규칙을 구성합니다.*.gcr.io
의 DNS 구성을 만듭니다.기본이 아닌 방화벽이나 경로 설정이 있으면 비공개 Google 액세스를 구성합니다.
VPC 서비스 제어를 사용하는 경우 GKE 클러스터의 Container Registry 또는 Artifact Registry를 설정하세요.
자동으로 생성된 인그레스의 방화벽 규칙을 삭제하거나 수정하지 않았는지 확인합니다.
공유 VPC를 사용하는 경우 필요한 IAM 권한을 구성했는지 확인합니다.
kubelet 포드 샌드박스를 만들 수 없음
- 증상
비공개 노드가 있는 클러스터를 만든 후 다음 중 하나와 유사한 오류가 보고됩니다.
Warning FailedCreatePodSandBox 12s (x9 over 4m) kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = Error response from daemon: Get https://registry.k8s.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
- 가능한 원인
calico-node
또는netd
포드는*.gcr.io
에 도달할 수 없습니다.- 해결 방법
Container Registry 또는 Artifact Registry에 필요한 설정을 완료했는지 확인합니다.
비공개 노드가 생성되었지만 클러스터에 조인되지 않음
비공개 IP 주소만 있는 노드를 사용하는 클러스터의 경우 VPC에서 커스텀 라우팅 및 서드 파티 네트워크 어플라이언스를 사용할 때 기본 인터넷 게이트웨이 대신 기본 경로(0.0.0.0/0
)가 어플라이언스로 리디렉션되는 경우가 많습니다. 제어 영역 연결 외에도 다음 대상에 연결할 수 있는지 확인해야 합니다.
- *.googleapis.com
- *.gcr.io
- gcr.io
3개 도메인 모두에 대해 비공개 Google 액세스를 구성합니다. 이 권장사항을 따르면 새 노드가 인터넷 연결 트래픽 제한을 제한하면서 클러스터를 시작하고 조인할 수 있습니다.
GKE 클러스터의 워크로드가 인터넷에 액세스할 수 없음
비공개 IP 주소가 있는 노드에서 실행되는 포드는 인터넷에 액세스할 수 없습니다. 예를 들어 exec shell
포드에서 apt update
명령어를 실행한 후 다음과 비슷한 오류를 보고합니다.
0% [Connecting to deb.debian.org (199.232.98.132)] [Connecting to security.debian.org (151.101.130.132)]
클러스터의 포드에 사용되는 서브넷 보조 IP 주소 범위가 Cloud NAT 게이트웨이에 구성되지 않은 경우 포드는 Cloud NAT 게이트웨이에 대해 구성된 외부 IP 주소가 없으므로 인터넷에 연결할 수 없습니다.
클러스터에 사용되는 서브넷에 대해 최소한 다음 서브넷 IP 주소 범위를 적용하도록 Cloud NAT 게이트웨이를 구성해야 합니다.
- 서브넷 기본 IP 주소 범위(노드에 사용됨)
- 클러스터의 포드에 사용되는 서브넷 보조 IP 주소 범위
- 클러스터의 서비스에 사용되는 서브넷 보조 IP 주소 범위
자세한 내용은 포드에 사용되는 보조 서브넷 IP 범위를 추가하는 방법을 참조하세요.
공개 클러스터의 직접 IP 액세스를 사용 중지할 수 없음
- 증상
IP 주소 엔드포인트를 사용 중지하면 다음과 유사한 오류 메시지가 표시됩니다.
Direct IP access can't be disabled for public clusters
- 가능한 원인
클러스터에서 기존 네트워크를 사용합니다.
- 해결 방법
클러스터를 Private Service Connect로 이전합니다. 이전 상태에 관한 자세한 내용은 지원팀에 문의 하세요.
PSC 이전 중에는 클러스터에서 직접 IP 액세스를 사용 중지할 수 없음
- 증상
IP 주소 엔드포인트를 사용 중지하면 다음과 유사한 오류 메시지가 표시됩니다.
Direct IP access can't be disabled for public clusters
- 가능한 원인
클러스터에서 기존 네트워크를 사용합니다.
- 해결 방법
다음 해결 방법 중 하나를 사용하세요.
- 다른 버전으로 모든 노드 풀을 수동으로 다시 만듭니다.
- 유지보수 이벤트 중에 GKE가 노드 풀을 자동으로 업그레이드할 때까지 기다립니다.
컨트롤 플레인 내부 엔드포인트를 사용 설정할 수 없음
- 증상
클러스터 제어 영역의 내부 엔드포인트를 사용 설정하려고 하면 다음과 유사한 오류 메시지가 표시됩니다.
private_endpoint_enforcement_enabled can't be enabled when envoy is disabled
private_endpoint_enforcement_enabled is unsupported. Please upgrade to the minimum support version
- 가능한 원인
클러스터에서 IP 주소 회전 또는 버전 업데이트를 실행해야 합니다.
- 해결 방법
다음 해결 방법 중 하나를 사용하세요.
- 제어 영역 IP 주소를 순환하여 Envoy를 사용 설정합니다.
- 클러스터를 1.28.10-gke.1058000 버전 이상으로 업그레이드합니다.
조직 정책이 정의된 경우 클러스터 생성이 실패함
- 증상
클러스터를 만들려고 하면 다음과 유사한 오류 메시지가 표시됩니다.
compute.disablePrivateServiceConnectCreationForConsumers violated for projects
- 가능한 원인
클러스터 엔드포인트 또는 백엔드가 소비자 조직 정책에 의해 차단되었습니다.
- 해결 방법
소비자 측 조직 정책의 단계를 완료하여 인스턴스가
compute.restrictPrivateServiceConnectProducer
제약조건으로 엔드포인트를 만들도록 허용합니다.
클러스터 삭제 중에 Private Service Connect 엔드포인트가 유출될 수 있음
- 증상
클러스터를 만든 후 다음 증상 중 하나가 나타날 수 있습니다.
Private Service Connect 기반 클러스터의 Private Service Connect에 연결된 엔드포인트가 표시되지 않습니다.
Private Service Connect를 사용하는 클러스터의 내부 엔드포인트에 할당된 서브넷 또는 VPC 네트워크는 삭제할 수 없습니다. 다음과 유사한 오류 메시지가 표시됩니다.
projects/<PROJECT_ID>/regions/<REGION>/subnetworks/<SUBNET_NAME> is already being used by projects/<PROJECT_ID>/regions/<REGION>/addresses/gk3-<ID>
- 가능한 원인
Private Service Connect를 사용하는 GKE 클러스터에서 GKE는 컨트롤 플레인의 네트워크에서 클러스터 컨트롤 플레인에 액세스할 수 있도록 내부 IP 주소를 할당하는 전달 규칙을 사용하여 Private Service Connect 엔드포인트를 배포합니다. Private Service Connect를 사용하여 컨트롤 플레인과 노드 간의 통신을 보호하기 위해 GKE는 엔드포인트를 표시하지 않으며Google Cloud 콘솔 또는 gcloud CLI에서 볼 수 없습니다.
- 해결 방법
클러스터 삭제 전에 Private Service Connect 엔드포인트가 유출되지 않도록 하려면 다음 단계를 완료하세요.
- GKE 서비스 계정에
Kubernetes Engine Service Agent role
을 할당합니다. compute.forwardingRules.*
및compute.addresses.*
권한이 GKE 서비스 계정에서 명시적으로 거부되지 않았는지 확인합니다.
Private Service Connect 엔드포인트가 유출된 것으로 확인되면 지원팀에 문의 하세요.
- GKE 서비스 계정에
클러스터의 승인된 네트워크를 파싱할 수 없음
- 증상
버전 1.29 이상에서는 클러스터를 만들 수 없습니다. 다음과 유사한 오류 메시지가 표시됩니다.
Unable to parse cluster.master_ipv4_cidr "" into a valid IP address and mask
- 가능한 원인
Google Cloud 프로젝트에서 비공개 IP 기반 Webhook을 사용합니다. 따라서 Private Service Connect로 클러스터를 만들 수 없습니다. 대신 클러스터는
master-ipv4-cidr
플래그를 파싱하는 VPC 네트워크 피어링을 사용합니다.- 해결 방법
다음 해결 방법 중 하나를 사용하세요.
계속해서 VPC 네트워크 피어링 클러스터를 만들고
master-ipv4-cidr
를 포함하여 유효한 CIDR을 정의합니다. 이 솔루션에는 다음과 같은 제한사항이 있습니다.master-ipv4-cidr
플래그는 Google Cloud 콘솔에서 지원 중단되었습니다. 이 플래그를 업데이트하려면 Google Cloud CLI 또는 Terraform만 사용할 수 있습니다.- VPC 네트워크 피어링은 GKE 버전 1.29 이상에서 지원 중단됩니다.
Private Service Connect 제한사항의 단계에 따라 비공개 IP 기반 Webhook을 이전합니다. 그런 다음 지원팀에 문의 또는하여 Private Service Connect를 사용하는 클러스터를 선택합니다.
공개 노드가 있는 클러스터에서 내부 IP 주소 범위를 정의할 수 없음
- 증상
--master-ipv4-cidr
플래그를 사용하여 내부 IP 주소 범위를 정의할 수 없습니다. 다음과 유사한 오류 메시지가 표시됩니다.ERROR: (gcloud.container.clusters.create) Cannot specify --master-ipv4-cidr without --enable-private-nodes
- 가능한 원인
enable-private-nodes
플래그가 사용 설정되지 않은 클러스터에서master-ipv4-cidr
플래그를 사용하여 제어 영역의 내부 IP 주소 범위를 정의하고 있습니다.master-ipv4-cidr
가 정의된 클러스터를 만들려면enable-private-nodes
플래그를 사용하여 내부 IP 주소 (비공개 노드)로 노드를 프로비저닝하도록 클러스터를 구성해야 합니다.- 해결 방법
다음 해결 방법 중 하나를 사용하세요.
다음 명령어를 사용하여 클러스터를 만듭니다.
gcloud container clusters create-auto CLUSTER_NAME \ --enable-private-nodes \ --master-ipv4-cidr CP_IP_RANGE
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터 이름입니다.CLUSTER_NAME
: 제어 영역의 내부 IP 주소 범위입니다.
IP 주소만으로 노드를 프로비저닝하도록 클러스터를 업데이트합니다. 자세한 내용은 클러스터 구성을 참고하세요.
Autopilot 클러스터에서 공개 워크로드를 예약할 수 없음
- 증상
- Autopilot 클러스터에서 클러스터가 비공개 노드만 사용하는 경우
cloud.google.com/private-node=false
nodeSelector를 사용하여 공개 포드에서 워크로드를 예약할 수 없습니다. - 가능한 원인
- Pod의 nodeSelector에
false
로 설정된private-node
플래그의 구성은 버전 1.30.3 이상의 클러스터에서만 사용할 수 있습니다. - 해결 방법
- 클러스터를 1.30 버전 이상으로 업그레이드합니다.
DNS 기반 엔드포인트에 대한 액세스가 사용 중지됨
- 증상
클러스터에 kubectl 명령어를 실행하려고 하면 다음과 유사한 오류가 반환됩니다.
couldn't get current server API group list: control_plane_endpoints_config.dns_endpoint_config.allow_external_traffic is disabled
- 가능한 원인
클러스터에서 DNS 기반 액세스가 사용 중지되었습니다.
- 해결 방법
컨트롤 플레인의 DNS 기반 엔드포인트를 사용하여 컨트롤 플레인에 대한 액세스를 사용 설정합니다. 자세한 내용은 제어 영역 액세스 수정을 참고하세요.
확장 중에 노드가 IP 주소를 할당하지 못함
- 증상
서브넷의 기본 IP 주소 범위를 승인된 네트워크 목록으로 확장하려고 하면 다음과 유사한 오류가 반환됩니다.
authorized networks fields cannot be mutated if direct IP access is disabled
- 가능한 원인
클러스터 IP 기반 엔드포인트를 사용 중지했습니다.
- 해결 방법
enable-ip-access
플래그를 사용하여 클러스터 IP 기반 엔드포인트를 사용 중지 및 사용 설정합니다.
CIDR 블록이 너무 많음
CIDR 블록이 50개를 초과하는 클러스터를 만들거나 업데이트하려 하면 gcloud
가 다음 오류를 반환합니다.
ERROR: (gcloud.container.clusters.update) argument --master-authorized-networks: too many args
이 문제를 해결하려면 다음을 시도해 보세요.
- 클러스터에서 Private Service Connect 또는 VPC 네트워크 피어링을 사용하지 않는 경우 CIDR 블록을 50개 이하로 지정해야 합니다.
- 클러스터에서 Private Service Connect 또는 VPC 네트워크 피어링을 사용하는 경우 CIDR 블록을 100개 이하로 지정합니다.
서버에 연결할 수 없음
잘못 구성된 CIDR 블록으로 인해 kubectl
명령어가 시간 초과됩니다.
Unable to connect to the server: dial tcp MASTER_IP: getsockopt: connection timed out
클러스터를 만들거나 업데이트할 때는 올바른 CIDR 블록을 지정해야 합니다.