이 페이지에서는 VPC 기반 클러스터의 일종인 비공개 Google Kubernetes Engine(GKE) 클러스터를 만드는 방법을 설명합니다. 비공개 클러스터의 노드에는 내부 IP 주소만 있습니다. 즉, 노드와 포드는 기본적으로 인터넷에서 격리되어 있습니다. 클라이언트가 컨트롤 플레인에 액세스할 수 없거나 제한적으로 액세스하거나 제한 없이 액세스할 수 있습니다.
비공개가 아닌 기존 클러스터를 비공개 클러스터로 변환할 수 없습니다. 비공개 클러스터 작동 방식에 대한 자세한 내용은 비공개 클러스터 개요를 참조하세요.
이 페이지는 네트워크 보안을 계획하고 구현하는 네트워킹 전문가를 대상으로 합니다. Google Cloud 콘텐츠에서 참조하는 일반적인 역할과 예시 태스크에 대한 자세한 내용은 일반 GKE Enterprise 사용자 역할 및 태스크를 참조하세요.
제한 및 한도
비공개 클러스터는 VPC 기반 클러스터여야 합니다. VPC 기반 클러스터는 기존 네트워크를 지원하지 않습니다.
비공개 클러스터를 만들 때 IP 주소 범위 및 트래픽과 관련된 규칙을 보려면 다음 섹션을 펼치세요.
시작하기 전에
시작하기 전에 다음 태스크를 수행했는지 확인합니다.
- Google Kubernetes Engine API를 사용 설정합니다. Google Kubernetes Engine API 사용 설정
- 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치한 경우
gcloud components update
를 실행하여 최신 버전을 가져옵니다.
클러스터를 만들 수 있는 올바른 권한이 있는지 확인합니다. 최소한 Kubernetes Engine 클러스터 관리자 권한이 있어야 합니다.
기본 인터넷 게이트웨이에 대한 경로가 있는지 확인합니다.
클라이언트가 공개 엔드포인트에 액세스할 수 없는 비공개 클러스터 만들기
이 섹션에서는 다음 리소스를 만듭니다.
- 비공개 노드가 있고 공개 엔드포인트에 대한 클라이언트 액세스 권한이 없는
private-cluster-0
라는 비공개 클러스터 - 이름이
my-net-0
인 네트워크 - 이름이
my-subnet-0
인 서브넷
Console
네트워크 및 서브넷 만들기
Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
add_box VPC 네트워크 만들기를 클릭합니다.
이름에
my-net-0
를 입력합니다.서브넷 생성 모드에 커스텀을 선택합니다.
새 서브넷 상자의 이름에
my-subnet-0
를 입력합니다.리전 목록에서 원하는 리전을 선택합니다.
IP 주소 범위에
10.2.204.0/22
을 입력합니다.비공개 Google 액세스를 사용으로 설정합니다.
완료를 클릭합니다.
만들기를 클릭합니다.
비공개 클러스터 만들기
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
만들기를 클릭하고 Standard 또는 Autopilot 섹션에서 구성을 클릭합니다.
이름에
private-cluster-0
를 지정합니다.탐색창에서 네트워킹을 클릭합니다.
네트워크 목록에서 my-net-0을 선택합니다.
노드 서브넷 목록에서 my-subnet-0을 선택합니다.
비공개 클러스터 라디오 버튼을 선택합니다.
외부 IP 주소를 사용한 액세스 제어 영역 체크박스를 선택 취소합니다.
(Autopilot 선택사항): 제어 영역 IP 범위를
172.16.0.32/28
로 설정합니다.만들기를 클릭합니다.
gcloud
Autopilot 클러스터의 경우 다음 명령어를 실행합니다.
gcloud container clusters create-auto private-cluster-0 \ --create-subnetwork name=my-subnet-0 \ --enable-master-authorized-networks \ --enable-private-nodes \ --enable-private-endpoint
Standard 클러스터의 경우 다음 명령어를 실행합니다.
gcloud container clusters create private-cluster-0 \ --create-subnetwork name=my-subnet-0 \ --enable-master-authorized-networks \ --enable-ip-alias \ --enable-private-nodes \ --enable-private-endpoint \ --master-ipv4-cidr 172.16.0.32/28
각 항목의 의미는 다음과 같습니다.
--create-subnetwork name=my-subnet-0
은 GKE가 자동으로my-subnet-0
이라는 서브넷을 생성하도록 합니다.--enable-master-authorized-networks
는 공개 엔드포인트에 대한 액세스를 사용자가 승인한 IP 주소 범위로 제한합니다.
--enable-ip-alias
는 클러스터를 VPC 기반으로 만듭니다(Autopilot의 경우 필수 아님).
--enable-private-nodes
는 클러스터의 노드에 외부 IP 주소가 없음을 나타냅니다.--enable-private-endpoint
는 클러스터가 제어 영역 API 엔드포인트의 내부 IP 주소를 사용하여 관리됨을 나타냅니다.
--master-ipv4-cidr 172.16.0.32/28
은 제어 영역의 내부 IP 주소 범위를 지정합니다(Autopilot의 경우 선택사항). 이 설정은 이 클러스터에 영구적으로 유지되며 VPC 내에서 고유해야 합니다. 비RFC 1918 내부 IP 주소를 사용할 수 있습니다.
API
공개적으로 연결 가능한 제어 영역 없이 클러스터를 만들려면 privateClusterConfig
리소스에 enablePrivateEndpoint: true
필드를 지정합니다.
이 시점에서 다음의 IP 주소에서만 제어 영역에 액세스할 수 있습니다.
my-subnet-0
의 기본 범위- 포드에 사용되는 보조 범위
예를 들어 기본 범위 my-subnet-0
에 VM을 만들었다고 가정해 보겠습니다.
그런 다음 이 VM에서 제어 영역의 내부 IP 주소를 사용하도록 kubectl
을 구성할 수 있습니다.
my-subnet-0
외부에서 제어 영역에 액세스하려면 비공개 엔드포인트에 액세스할 수 있는 하나 이상의 주소 범위를 승인해야 합니다.
클러스터와 동일한 리전의 기본 네트워크에 VM이 있지만 my-subnet-0
에는 없다고 가정해 보겠습니다.
예를 들면 다음과 같습니다.
my-subnet-0
:10.0.0.0/22
- 포드 보조 범위:
10.52.0.0/14
- VM 주소:
10.128.0.3
다음 명령어를 사용하여 VM이 제어 영역에 액세스하도록 승인할 수 있습니다.
gcloud container clusters update private-cluster-0 \
--enable-master-authorized-networks \
--master-authorized-networks 10.128.0.3/32
공개 엔드포인트에 대한 액세스가 제한된 비공개 클러스터 만들기
이 구성을 사용하여 비공개 클러스터를 만들 때 자동으로 생성된 서브넷 또는 커스텀 서브넷을 사용할 수 있습니다.
자동 생성된 서브넷 사용
이 섹션에서는 GKE가 클러스터 노드의 서브넷을 자동으로 생성하는 private-cluster-1
라는 비공개 클러스터를 만듭니다.
이 서브넷은 비공개 Google 액세스가 사용 설정되어 있습니다. 서브넷에서 GKE는 두 개의 보조 범위를 자동으로 만듭니다. 하나는 포드용이고 하나는 서비스용입니다.
Google Cloud CLI 또는 GKE API를 사용할 수 있습니다.
gcloud
Autopilot 클러스터의 경우 다음 명령어를 실행합니다.
gcloud container clusters create-auto private-cluster-1 \ --create-subnetwork name=my-subnet-1 \ --enable-master-authorized-networks \ --enable-private-nodes
Standard 클러스터의 경우 다음 명령어를 실행합니다.
gcloud container clusters create private-cluster-1 \ --create-subnetwork name=my-subnet-1 \ --enable-master-authorized-networks \ --enable-ip-alias \ --enable-private-nodes \ --master-ipv4-cidr 172.16.0.0/28
각 항목의 의미는 다음과 같습니다.
--create-subnetwork name=my-subnet-1
은 GKE가 자동으로my-subnet-1
이라는 서브넷을 생성하도록 합니다.--enable-master-authorized-networks
는 공개 엔드포인트에 대한 액세스를 사용자가 승인한 IP 주소 범위로 제한합니다.
--enable-ip-alias
는 클러스터를 VPC 기반으로 만듭니다(Autopilot의 경우 필수 아님).
--enable-private-nodes
는 클러스터의 노드에 외부 IP 주소가 없음을 나타냅니다.
--master-ipv4-cidr 172.16.0.0/28
은 제어 영역의 내부 IP 주소 범위를 지정합니다(Autopilot의 경우 선택사항). 이 설정은 이 클러스터에 영구적으로 유지되며 VPC 내에서 고유해야 합니다. 비RFC 1918 내부 IP 주소를 사용할 수 있습니다.
API
Cluster
API 리소스의 privateClusterConfig
필드를 지정합니다.
{
"name": "private-cluster-1",
...
"ipAllocationPolicy": {
"createSubnetwork": true,
},
...
"privateClusterConfig" {
"enablePrivateNodes": boolean # Creates nodes with internal IP addresses only
"enablePrivateEndpoint": boolean # false creates a cluster control plane with a publicly-reachable endpoint
"masterIpv4CidrBlock": string # CIDR block for the cluster control plane
"privateEndpoint": string # Output only
"publicEndpoint": string # Output only
}
}
이 시점에서 다음의 IP 주소에서만 클러스터 제어 영역에 액세스할 수 있습니다.
my-subnet-1
의 기본 범위- 포드에 사용되는 보조 범위
VPC 네트워크 외부에 203.0.113.0/29
범위의 주소를 가진 머신 그룹이 있다고 가정해 보겠습니다. 다음 명령어를 입력하여 이 머신들이 공개 엔드포인트에 액세스하도록 승인할 수 있습니다.
gcloud container clusters update private-cluster-1 \
--enable-master-authorized-networks \
--master-authorized-networks 203.0.113.0/29
그러면 다음의 IP 주소에서만 제어 영역에 액세스할 수 있습니다.
my-subnet-1
의 기본 범위- 포드에 사용되는 보조 범위
- 승인한 주소 범위(예:
203.0.113.0/29
)
커스텀 서브넷 사용
이 섹션에서는 다음 리소스를 만듭니다.
- 이름이
private-cluster-2
인 비공개 클러스터 - 이름이
my-net-2
인 네트워크 - 클러스터 노드에 기본 범위가
192.168.0.0/20
인 서브넷my-subnet-2
서브넷의 보조 IP 주소 범위는 다음과 같습니다.- 포드 IP 주소의 경우
my-pods
- 서비스 IP 주소의 경우
my-services
- 포드 IP 주소의 경우
Console
네트워크, 서브넷, 보조 범위 만들기
Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
add_box VPC 네트워크 만들기를 클릭합니다.
이름에
my-net-2
를 입력합니다.서브넷 생성 모드에 커스텀을 선택합니다.
새 서브넷 상자의 이름에
my-subnet-2
를 입력합니다.리전 목록에서 원하는 리전을 선택합니다.
IP 주소 범위에
192.168.0.0/20
을 입력합니다.보조 IP 범위 만들기를 클릭합니다. 서브넷 범위 이름에
my-services
를 입력하고, 보조 IP 범위에10.0.32.0/20
을 입력합니다.IP 범위 추가를 클릭합니다. 서브넷 범위 이름에
my-pods
를 입력하고, 보조 IP 범위에10.4.0.0/14
를 입력합니다.비공개 Google 액세스를 사용으로 설정합니다.
완료를 클릭합니다.
만들기를 클릭합니다.
비공개 클러스터 만들기
서브넷을 사용하는 비공개 클러스터를 만듭니다.
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
만들기를 클릭하고 Standard 또는 Autopilot 섹션에서 구성을 클릭합니다.
이름에
private-cluster-2
를 입력합니다.탐색창에서 네트워킹을 클릭합니다.
비공개 클러스터 라디오 버튼을 선택합니다.
승인된 외부 IP 범위에서 액세스할 수 있는 제어 영역을 만들려면 외부 IP 주소를 사용하여 제어 영역에 액세스 체크박스를 선택한 상태로 둡니다.
(Autopilot 선택사항) 제어 영역 IP 범위를
172.16.0.16/28
로 설정합니다.네트워크 목록에서 my-net-2를 선택합니다.
노드 서브넷 목록에서 my-subnet-2를 선택합니다.
보조 범위 자동 생성 체크박스를 선택 취소합니다.
포드 보조 CIDR 범위 목록에서 my-pods를 선택합니다.
서비스 보조 CIDR 범위 목록에서 my-services를 선택합니다.
제어 영역 승인된 네트워크 사용 체크박스를 선택합니다.
만들기를 클릭합니다.
gcloud
네트워크 만들기
먼저 클러스터의 네트워크를 만듭니다. 다음 명령어는 my-net-2
네트워크를 만듭니다.
gcloud compute networks create my-net-2 \
--subnet-mode custom
서브넷 및 보조 범위 만들기
그런 다음 my-net-2
네트워크에 보조 범위(포드의 경우 my-pods
, 서비스의 경우 my-services
)가 있는 my-subnet-2
서브넷을 만듭니다.
gcloud compute networks subnets create my-subnet-2 \
--network my-net-2 \
--range 192.168.0.0/20 \
--secondary-range my-pods=10.4.0.0/14,my-services=10.0.32.0/20 \
--enable-private-ip-google-access
비공개 클러스터 만들기
이제 만든 네트워크, 서브넷, 보조 범위를 사용해 비공개 클러스터 private-cluster-2
을 만듭니다.
Autopilot 클러스터의 경우 다음 명령어를 실행합니다.
gcloud container clusters create-auto private-cluster-2 \ --enable-master-authorized-networks \ --network my-net-2 \ --subnetwork my-subnet-2 \ --cluster-secondary-range-name my-pods \ --services-secondary-range-name my-services \ --enable-private-nodes
Standard 클러스터의 경우 다음 명령어를 실행합니다.
gcloud container clusters create private-cluster-2 \ --enable-master-authorized-networks \ --network my-net-2 \ --subnetwork my-subnet-2 \ --cluster-secondary-range-name my-pods \ --services-secondary-range-name my-services \ --enable-private-nodes \ --enable-ip-alias \ --master-ipv4-cidr 172.16.0.16/28 \ --no-enable-basic-auth \ --no-issue-client-certificate
이 시점에서 다음의 IP 주소에서만 제어 영역에 액세스할 수 있습니다.
my-subnet-2
의 기본 범위my-pods
의 보조 범위
my-net-2
외부에 203.0.113.0/29
범위의 주소를 가진 머신 그룹이 있다고 가정해 보겠습니다. 다음 명령어를 입력하여 이 머신들이 공개 엔드포인트에 액세스하도록 승인할 수 있습니다.
gcloud container clusters update private-cluster-2 \
--enable-master-authorized-networks \
--master-authorized-networks 203.0.113.0/29
이 시점에서 다음의 IP 주소에서만 제어 영역에 액세스할 수 있습니다.
my-subnet-2
의 기본 범위my-pods
의 보조 범위- 승인한 주소 범위(예:
203.0.113.0/29
)
Cloud Shell을 사용하여 비공개 클러스터 액세스
자동으로 생성된 서브넷 사용 섹션 private-cluster-1
에서 만든 비공개 클러스터에는 공개 엔드포인트가 있고 승인된 네트워크가 사용 설정되어 있습니다. Cloud Shell을 사용하여 클러스터에 액세스하려면 클러스터의 승인된 네트워크 목록에 Cloud Shell의 외부 IP 주소를 추가해야 합니다.
그러려면 다음 안내를 따르세요.
Cloud Shell 명령줄 창에서
dig
를 사용하여 Cloud Shell의 외부 IP 주소를 찾습니다.dig +short myip.opendns.com @resolver1.opendns.com
Cloud Shell의 외부 주소를 클러스터의 승인된 네트워크 목록에 추가합니다.
gcloud container clusters update private-cluster-1 \ --enable-master-authorized-networks \ --master-authorized-networks EXISTING_AUTH_NETS,SHELL_IP/32
다음을 바꿉니다.
EXISTING_AUTH_NETS
: 기존 승인된 네트워크 목록의 IP 주소입니다. 콘솔에서 또는 다음 명령어를 실행하여 승인된 네트워크를 찾을 수 있습니다.gcloud container clusters describe private-cluster-1 --format "flattened(masterAuthorizedNetworksConfig.cidrBlocks[])"
SHELL_IP
: Cloud Shell의 외부 IP 주소입니다.
kubectl
을 사용해 클러스터에 액세스할 수 있도록 사용자 인증 정보를 받습니다.gcloud container clusters get-credentials private-cluster-1 \ --project=PROJECT_ID \ --internal-ip
PROJECT_ID
를 프로젝트 ID로 바꿉니다.Cloud Shell에서
kubectl
을 사용하여 비공개 클러스터에 액세스합니다.kubectl get nodes
출력은 다음과 비슷합니다.
NAME STATUS ROLES AGE VERSION gke-private-cluster-1-default-pool-7d914212-18jv Ready <none> 104m v1.21.5-gke.1302 gke-private-cluster-1-default-pool-7d914212-3d9p Ready <none> 104m v1.21.5-gke.1302 gke-private-cluster-1-default-pool-7d914212-wgqf Ready <none> 104m v1.21.5-gke.1302
공개 엔드포인트에 무제한으로 액세스할 수 있는 비공개 클러스터 만들기
이 섹션에서는 모든 IP 주소가 제어 영역에 액세스할 수 있는 비공개 클러스터를 만듭니다.
Console
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
만들기를 클릭하고 Standard 또는 Autopilot 섹션에서 구성을 클릭합니다.
이름에
private-cluster-3
를 입력합니다.탐색창에서 네트워킹을 클릭합니다.
비공개 클러스터 옵션을 선택합니다.
외부 IP 주소를 사용하여 제어 영역 액세스 체크박스를 선택한 상태로 둡니다.
(Autopilot 선택사항) 제어 영역 IP 범위를
172.16.0.32/28
로 설정합니다.네트워크 및 노드 서브넷을
default
설정 그대로 둡니다. 이렇게 하면 GKE가 클러스터의 서브넷을 생성합니다.제어 영역에서 승인된 네트워크 사용 체크박스를 선택 해제합니다.
만들기를 클릭합니다.
gcloud
Autopilot 클러스터의 경우 다음 명령어를 실행합니다.
gcloud container clusters create-auto private-cluster-3 \ --create-subnetwork name=my-subnet-3 \ --no-enable-master-authorized-networks \ --enable-private-nodes
Standard 클러스터의 경우 다음 명령어를 실행합니다.
gcloud container clusters create private-cluster-3 \ --create-subnetwork name=my-subnet-3 \ --no-enable-master-authorized-networks \ --enable-ip-alias \ --enable-private-nodes \ --master-ipv4-cidr 172.16.0.32/28
각 항목의 의미는 다음과 같습니다.
--create-subnetwork name=my-subnet-3
은 GKE가 자동으로my-subnet-3
이라는 서브넷을 생성하도록 합니다.--no-enable-master-authorized-networks
는 클러스터의 승인된 네트워크를 중지합니다.
--enable-ip-alias
는 클러스터를 VPC 기반으로 만듭니다(Autopilot의 경우 필수 아님).
--enable-private-nodes
는 클러스터의 노드에 외부 IP 주소가 없음을 나타냅니다.
--master-ipv4-cidr 172.16.0.32/28
은 제어 영역의 내부 IP 주소 범위를 지정합니다(Autopilot의 경우 선택사항). 이 설정은 이 클러스터에 영구적으로 유지되며 VPC 내에서 고유해야 합니다. 비RFC 1918 내부 IP 주소를 사용할 수 있습니다.
특정 사용 사례를 위한 방화벽 규칙 추가
이 섹션에서는 비공개 클러스터에 방화벽 규칙을 추가하는 방법을 설명합니다. 기본적으로 방화벽 규칙은 클러스터 컨트롤 플레인이 포트 443
(HTTPS) 및 10250
(kubelet)에서만 노드 및 포드에 대한 TCP 연결을 시작하도록 제한합니다.
일부 Kubernetes 기능의 경우 추가 포트에서 액세스를 허용하도록 방화벽 규칙을 추가해야 할 수 있습니다. 자동으로 생성되는 방화벽 규칙보다 우선순위가 높은 방화벽 규칙이나 계층식 방화벽 정책 규칙을 생성하지 마세요.
추가 방화벽 규칙이 필요한 Kubernetes 기능은 다음과 같습니다.
- 허용 웹훅
- 집계된 API 서버
- 웹훅 변환
- 동적 감사 구성
- 일반적으로 ServiceReference 필드가 있는 API에는 추가 방화벽 규칙이 필요합니다.
방화벽 규칙을 추가하면 클러스터 제어 영역의 트래픽이 다음 모두로 전송될 수 있습니다.
- 각 노드의 지정된 포트(hostPort)
- 이러한 노드에서 실행되는 각 포드의 지정된 포트
- 이러한 노드에서 실행되는 각 서비스의 지정된 포트
방화벽 규칙에 대한 자세한 내용은 Cloud Load Balancing 문서의 방화벽 규칙을 참조하세요.
비공개 클러스터에 방화벽 규칙을 추가하려면 클러스터 제어 영역의 CIDR 블록과 사용할 대상을 기록해야 합니다. 이를 기록한 후에 규칙을 만들 수 있습니다.
1단계: 제어 영역의 CIDR 블록 보기
방화벽 규칙을 추가하려면 클러스터 제어 영역의 CIDR 블록이 필요합니다.
Console
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
클러스터 목록에서 클러스터 이름을 클릭합니다.
세부정보 탭의 네트워킹에서 제어 영역 주소 범위 필드의 값을 기록해둡니다.
gcloud
다음 명령어를 실행합니다.
gcloud container clusters describe CLUSTER_NAME
CLUSTER_NAME
을 비공개 클러스터 이름으로 바꿉니다.
명령어 결과에서 masterIpv4CidrBlock 필드 값을 기록합니다.
2단계: 기존 방화벽 규칙 보기
클러스터의 기존 방화벽 규칙이 사용하는 타겟(이 경우에는 목적지 노드)을 지정해야 합니다.
Console
Google Cloud 콘솔에서 방화벽 정책 페이지로 이동합니다.
VPC 방화벽 규칙의 테이블 필터링에
gke-CLUSTER_NAME
을 입력합니다.
결과에서 대상 필드 값을 기록합니다.
gcloud
다음 명령어를 실행합니다.
gcloud compute firewall-rules list \
--filter 'name~^gke-CLUSTER_NAME' \
--format 'table(
name,
network,
direction,
sourceRanges.list():label=SRC_RANGES,
allowed[].map().firewall_rule().list():label=ALLOW,
targetTags.list():label=TARGET_TAGS
)'
명령어 결과에서 대상 필드의 값을 기록해 둡니다.
3단계: 방화벽 규칙 추가
Console
Google Cloud 콘솔에서 방화벽 정책 페이지로 이동합니다.
add_box 방화벽 규칙 만들기를 클릭합니다.
이름에 원하는 방화벽 규칙 이름을 입력합니다.
네트워크 목록에서 관련 네트워크를 선택합니다.
트래픽 방향에서 인그레스를 클릭합니다.
일치 시 작업에서 허용을 클릭합니다.
대상 목록에서 지정된 대상 태그를 선택합니다.
대상 태그에 이전에 기록한 목표 값을 입력합니다.
소스 필터 목록에서 IPv4 범위를 선택합니다.
소스 IPv4 범위에 클러스터 제어 영역의 CIDR 블록을 입력합니다.
프로토콜 및 포트에서 지정된 프로토콜 및 포트를 클릭하고, 관련 프로토콜(TCP 또는UDP) 체크박스를 선택하고, 프로토콜 입력란에 원하는 포트 번호를 입력합니다.
만들기를 클릭합니다.
gcloud
다음 명령어를 실행합니다.
gcloud compute firewall-rules create FIREWALL_RULE_NAME \
--action ALLOW \
--direction INGRESS \
--source-ranges CONTROL_PLANE_RANGE \
--rules PROTOCOL:PORT \
--target-tags TARGET
다음을 바꿉니다.
FIREWALL_RULE_NAME
: 선택한 방화벽 규칙 이름입니다.CONTROL_PLANE_RANGE
: 이전에 수집한 클러스터 제어 영역의 IP 주소 범위(masterIpv4CidrBlock
)입니다.PROTOCOL:PORT
: 포트 및 해당 포트의 프로토콜(tcp
,udp
)입니다.TARGET
: 이전에 수집한 대상(Targets
) 값입니다.
노드에 외부 IP 주소가 없는지 확인
비공개 클러스터를 만든 후 클러스터 노드에 외부 IP 주소가 없는지 확인합니다.
Console
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
클러스터 목록에서 클러스터 이름을 클릭합니다.
Autopilot 클러스터의 경우 클러스터 기본사항 섹션에서 외부 엔드포인트 필드를 확인합니다. 값은 사용 중지됨입니다.
Standard 클러스터의 경우 다음을 실행합니다.
- 클러스터 페이지에서 노드 탭을 클릭합니다.
- 노드 풀에서 노드 풀 이름을 클릭합니다.
- 노드 풀 세부정보 페이지의 인스턴스 그룹에서 인스턴스 그룹 이름을 클릭합니다. 예: gke-private-cluster-0-default-pool-5c5add1f-grp`
- 인스턴스 목록에서 인스턴스에 외부 IP 주소가 없는지 확인합니다.
gcloud
다음 명령어를 실행합니다.
kubectl get nodes --output wide
출력의 EXTERNAL-IP
열이 비어 있습니다.
STATUS ... VERSION EXTERNAL-IP OS-IMAGE ...
Ready v.8.7-gke.1 Container-Optimized OS
Ready v1.8.7-gke.1 Container-Optimized OS
Ready v1.8.7-gke.1 Container-Optimized OS
클러스터에서 VPC 피어링 재사용 확인
2020년 1월 15일 이후에 만든 모든 비공개 클러스터는 VPC 네트워크 피어링 연결을 재사용합니다.
gcloud CLI 또는 Google Cloud 콘솔을 사용하여 비공개 클러스터가 VPC 네트워크 피어링 연결을 재사용하는지 확인할 수 있습니다.
Console
클러스터 세부정보 페이지에서 VPC 피어링 행을 확인합니다. 클러스터가 VPC 피어링 연결을 재사용하면 출력은 gke-n
으로 시작합니다.
예를 들면 gke-n34a117b968dee3b2221-93c6-40af-peer
입니다.
gcloud
gcloud container clusters describe CLUSTER_NAME \
--format="value(privateClusterConfig.peeringName)"
클러스터가 VPC 피어링 연결을 재사용하면 출력은 gke-n
으로 시작합니다. 예를 들면 gke-n34a117b968dee3b2221-93c6-40af-peer
입니다.
삭제
이 페이지의 작업을 완료한 후에는 다음 단계에 따라 리소스를 제거하여 계정에서 원치 않는 요금이 부과되지 않도록 합니다.
클러스터 삭제
Console
Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.
각 클러스터를 선택합니다.
delete 삭제를 클릭합니다.
gcloud
gcloud container clusters delete -q private-cluster-0 private-cluster-1 private-cluster-2 private-cluster-3
네트워크 삭제
Console
Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
네트워크 목록에서
my-net-0
을 클릭합니다.네트워크 세부정보 페이지에서 delete VPC 네트워크 삭제를 클릭합니다.
네트워크 삭제 대화상자에서 삭제를 클릭합니다.
gcloud
gcloud compute networks delete my-net-0