조직에서 인터넷 트래픽에 HTTP 프록시를 사용하는 경우 그에 따라 GKE 연결 클러스터를 구성해야 합니다. 이 문서에서는 이 구성을 수행하는 방법을 설명합니다.
시작하기 전에
GKE 연결 클러스터는 다양한 Google Cloud 서비스에 연결되어야 합니다. 프록시 서버에서 다음 도메인에 대한 트래픽을 허용하는지 확인합니다.
.gcr.io
cloudresourcemanager.googleapis.com
container.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
oauth2.googleapis.com
securetoken.googleapis.com
storage.googleapis.com
sts.googleapis.com
www.googleapis.com
servicecontrol.googleapis.com
logging.googleapis.com
monitoring.googleapis.com
opsconfigmonitoring.googleapis.com
GCP_LOCATION-gkemulticloud.googleapis.com
GCP_LOCATION
을 클러스터가 있는 Google Cloud 리전으로 바꿉니다. us-west1
또는 다른 지원되는 리전을 지정합니다.
GKE 연결 클러스터에 대한 프록시 지원 구성
GKE 연결 클러스터에 대한 프록시 지원을 구성하려면 다음 단계를 수행합니다.
httpProxy
,noProxy
,httpsProxy
키 값이 포함된 프록시 구성 파일을 만듭니다.{ "httpProxy": HTTP_PROXY_AUTHENTICATION_URL, "httpsProxy": HTTPS_PROXY_AUTH_URL, "noProxy": NO_PROXY_ADDRESSES }
다음을 바꿉니다.
HTTP_PROXY_AUTHENTICATION_URL
: 호스트 이름/IP 주소, 선택적으로 포트, 사용자 이름, 비밀번호로 구성된 프록시 서버 URL. 예를 들면http://user:password@192.0.2.0:80
또는198.51.100.255
입니다.HTTPS_PROXY_AUTH_URL
: 호스트 이름/IP 주소, 선택적으로 포트, 사용자 이름, 비밀번호로 구성된 암호화된 HTTPS 트래픽의 프록시 URLNO_PROXY_ADDRESSES
: 프록시를 우회할 수 있는 리소스의 쉼표로 구분한 URL, CIDR 블록, DNS 이름 목록. 이렇게 하면 지정된 리소스에 프록시를 사용하지 않도록 GKE 연결 클러스터에 지시합니다. 다음 사항에 유의하세요.- 값은 개별 IP 주소, CIDR 범위, 도메인 이름 또는 별표 문자(*)일 수도 있습니다.
noProxy
필드에 단일 별표(*
)를 사용하면 GKE 연결 클러스터가 모든 트래픽의 프록시를 건너뜁니다. .google.com
과 같이 점으로 시작하는 도메인은 모든 하위 도메인을 타겟팅합니다. 예를 들어.google.com
에는mail.google.com
및drive.google.com
과 같은 주소가 포함되지만google.com
은 제외합니다.- 올바르게 로깅할 수 있도록
kubernetes.default.svc.cluster.local
및kubernetes.default.svc
도메인이 포함되었는지 확인합니다. 예를 들면 다음과 같습니다.198.51.100.0,192.0.2.0/16,examplepetstore.com,.altostrat.com,kubernetes.default.svc.cluster.local, kubernetes.default.svc
.
- 값은 개별 IP 주소, CIDR 범위, 도메인 이름 또는 별표 문자(*)일 수도 있습니다.
프록시 구성 파일을 만들 때 다음 가이드라인을 준수하세요.
httpProxy
및httpsProxy
필드는https://
프리픽스를 허용하지 않습니다. 실제 프록시 서버 주소가https://
로 시작하는 경우에도http://
를 사용합니다. 예를 들어https://proxy.example.com:3128
을http://proxy.example.com:3128
로 표시합니다.- 3가지 필드(
httpProxy
,httpsProxy
,noProxy
) 모두에 값을 제공해야 합니다. noProxy
목록에 추가 도메인, IP 주소 또는 CIDR을 추가하는 것이 좋습니다. VPC IP 범위를 포함하는 것이 좋습니다.
다음 명령어를 실행하여 프록시 구성이 포함된 Kubernetes 보안 비밀을 만듭니다.
kubectl create secret generic SECRET_NAME \ --from-file=PROXY_CONFIGURATION_FILE
다음을 바꿉니다.
SECRET_NAME
: Kubernetes 보안 비밀 이름PROXY_CONFIGURATION_FILE
: 1단계에서 만든 프록시 구성의 경로
immutable
필드를true
로 설정하여 Kubernetes 보안 비밀을 변경 불가로 표시합니다.kubectl edit secret SECRET_NAME
SECRET_NAME
을 Kubernetes 보안 비밀 이름으로 바꿉니다.프록시를 사용하도록 새 클러스터나 기존 클러스터를 구성합니다.
새 클러스터
새 클러스터를 등록하고 프록시 구성을 적용하려면
gcloud container attached clusters register
명령어를 사용합니다. 선택적 인수--proxy-secret-name
및--proxy-secret-namespace
를 제공해야 합니다.gcloud container attached clusters register CLUSTER_NAME \ --proxy-secret-name=SECRET_NAME \ --proxy-secret-namespace=SECRET_NAMESPACE
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터의 이름입니다.SECRET_NAME
: 프록시 구성이 포함된 Kubernetes 보안 비밀의 이름입니다.SECRET_NAMESPACE
: 보안 비밀이 저장된 Kubernetes 네임스페이스입니다.
클러스터를 등록할 때 사용할 수 있는 모든 인수에 대한 자세한 내용은
gcloud container attached clusters register
명령어를 참조하세요.기존 클러스터
이전에 등록된 클러스터를 새 프록시 구성으로 업데이트하려면
gcloud container attached clusters update
명령어를 사용합니다. 선택적 인수--proxy-secret-name
및--proxy-secret-namespace
를 제공해야 합니다.gcloud container attached clusters update CLUSTER_NAME \ --proxy-secret-name=SECRET_NAME \ --proxy-secret-namespace=SECRET_NAMESPACE
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터의 이름입니다.SECRET_NAME
: 프록시 구성이 포함된 Kubernetes 보안 비밀의 이름입니다.SECRET_NAMESPACE
: 보안 비밀이 저장된 Kubernetes 네임스페이스입니다.
이 단계는 프록시 서버 세부정보가 변경되었거나 초기 클러스터 등록에서 프록시 요구사항이 간과된 경우에 필요합니다.
클러스터를 업데이트할 때 사용할 수 있는 모든 인수에 대한 자세한 내용은
gcloud container attached clusters update
명령어를 참조하세요.
이 단계를 수행하면 GKE 연결 클러스터는 구성 파일에 지정된 프록시 서버를 사용하여 아웃바운드 인터넷 트래픽을 처리합니다.