GKE on AWS 버전 1.8에는 클러스터를 다시 만들지 않고 클러스터의 프록시 설정을 수정하는 기능이 추가되었습니다.
관리형 서비스의 프록시 변경
GKE on AWS 관리 서비스에 대한 프록시 설정을 수정하려면 다음 단계를 수행합니다.
프록시 구성 JSON 파일 만들기에 설명된 대로 관리형 서비스의 proxy.json 파일 콘텐츠를 업데이트합니다.
anthos-gke aws management init
및anthos-gke aws management apply
를 다시 실행하여 관리형 서비스에 변경사항을 적용합니다.
사용자 클러스터의 프록시 변경
사용자 클러스터를 만들 때 관리형 서비스의 프록시 설정이 사용됩니다.
관리형 서비스의 프록시 설정을 변경하지 않으면서 사용자 클러스터의 프록시 설정을 변경하려면 프록시 정보가 포함된 Kubernetes 보안 비밀을 만든 후 kubectl
을 사용하여 변경사항을 적용해야 합니다.
Kubernetes 보안 비밀 만들기
먼저 보안 비밀을 설명하는 다음 콘텐츠가 포함된 YAML 파일을 만듭니다. 보안 비밀은 불투명 및 변경 불가능한 것으로 정의해야 합니다. 이 예시에서는 파일 이름
proxy-secret.yaml
을 사용합니다.apiVersion: v1 kind: Secret metadata: name: PROXY_SECRET type: Opaque immutable: true stringData: # You can include additional key value pairs as you do with Opaque Secrets httpProxy: HTTP_PROXY httpsProxy: HTTPS_PROXY noProxy: NO_PROXY_LIST
다음과 같이 바꿉니다.
- HTTP_PROXY를 HTTP 요청을 라우팅할 프록시 서버 주소로 변경합니다.
- HTTPS_PROXY를 HTTPS 요청을 라우팅할 선택적 프록시 서버 주소로 변경합니다.
- NO_PROXY_LIST를 프록시가 사용되어서는 안 되는 VPN 내의 IP, CIDR 범위 및 도메인에 대한 선택적 목록으로 변경합니다.
- PROXY_SECRET을 보안 비밀에 대해 선택한 이름으로 변경합니다.
변경사항을 적용하여 보안 비밀을 만듭니다.
env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f ./proxy-secret.yaml
사용자 클러스터 및 노드 풀 구성 업데이트
다음으로 spec.proxySecretName
및 spec.controlPlane.proxySecretName
아래에서 각각 보안 비밀 이름을 참조하도록 AWSCluster 및 AWSNodePool 구성을 업데이트합니다.
마지막으로 다음 명령어를 실행하여 사용자 클러스터를 업데이트합니다.
env HTTPS_PROXY=http://localhost:8118 \
kubectl apply -f CLUSTER_YAML_FILE
CLUSTER_YAML_FILE을 클러스터를 정의하는 yaml 파일의 이름으로 바꿉니다.
사용자 클러스터 상태 변경
kubectl apply
명령어를 실행하여 새 프록시 설정을 적용하면 사용자 클러스터 상태가 Provisioned
에서 Updating
으로 변경된 다음 완료되면 Provisioned
로 돌아갑니다.
두 개 이상의 사용자 클러스터에 대한 프록시 설정
사용자 클러스터가 여러 개이고 클러스터마다 서로 다른 프록시를 구성하려면 클러스터별로 사용자 클러스터의 프록시 변경에 나와 있는 안내를 따릅니다. 각 프록시에 대해 서로 다른 Kubernetes 보안 비밀을 만들어야 하며 해당 사용자 클러스터의 보안 비밀 이름을 참조하도록 각 사용자 클러스터 구성을 별도로 업데이트해야 합니다.
사용자 클러스터의 프록시 순환
이미 개별 프록시 설정이 있는 클러스터의 프록시 설정을 변경하려면 새 프록시 설정과 다른 보안 비밀 이름으로 새 보안 비밀을 만들고 적용합니다. 현재 보안 비밀 이름을 다시 사용할 경우 클러스터의 프록시 설정이 변경되지 않습니다.
문제 해결
보안 비밀이 올바른 형식이 아니거나 필수 키가 누락되면 명령어가 실패하고 변경사항이 적용되지 않습니다. 보안 비밀이 올바르게 검증되었는지 확인하려면 다음 명령어를 사용하여 AWSCluster 및 AWSNodePool의 Kubernetes 이벤트 로그를 확인합니다.
env HTTPS_PROXY=http://localhost:8118 \
kubectl get events
보안 비밀 구성에 오류가 있으면 다음 명령어를 사용하여 보안 비밀을 삭제합니다.
env HTTPS_PROXY=http://localhost:8118 \ kubectl delete secret SECRET_NAME
SECRET_NAME을 보안 비밀 이름으로 바꿉니다.
그런 다음 올바른 형식의 프록시 보안 비밀 YAML 파일로 보안 비밀을 다시 만들고 변경사항을 다시 적용합니다. 첫 번째 시도에서 사용한 것과 동일한 보안 비밀 이름을 사용할 수 있습니다.
추가 정보
프록시 설정을 처음으로 구성하는 경우 프록시 사용을 참조하세요.
전용 AWS VPC를 만들려면 관리형 서비스 설치를 참조하세요.