조직에서 인터넷 트래픽에 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 트래픽의 프록시 URL
- NO_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 보안 비밀을 immutable로 표시합니다.- 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 연결 클러스터는 구성 파일에 지정된 프록시 서버를 사용하여 아웃바운드 인터넷 트래픽을 처리합니다.