이 주제에서는 HTTP/HTTPS 프록시를 통해 GKE on AWS 관리 서비스와 Connect의 트래핑을 라우팅하는 방법을 보여줍니다.
GKE on AWS에는 다음과 같은 이유로 인터넷 액세스가 필요합니다.
- 관리 서비스는 Connect에 사용자 클러스터를 등록합니다.
- 사용자 클러스터는 Connect Agent를 실행합니다.
- 모든 관리 서비스와 사용자 클러스터 노드는 Container Registry에서 이미지를 다운로드합니다.
이 트래픽은 HTTP 또는 HTTPS 프록시를 통해 라우팅할 수 있습니다. GKE on AWS 1.8부터는 관리형 서비스 및 각 클러스터에 대해 개별 프록시 설정을 구성할 수 있습니다. 프록시 설정을 변경하는 방법에 대한 자세한 내용은 클러스터 프록시 설정 변경을 참조하세요.
anthos-gke.yaml
에서 참조되는 JSON 파일에서 프록시 설정을 선언합니다.
기본 요건
프록시를 사용하도록 GKE on AWS를 구성하려면 먼저 VPC 엔드포인트를 사용 설정하고 프록시의 보안 그룹을 정의하고 특정 Google Cloud 서비스에 아웃바운드 연결을 허용해야 합니다.
HTTP 프록시를 사용하려면 사용자 클러스터가 Kubernetes 1.17 이상을 실행해야 합니다.
VPC 엔드포인트 사용 설정
프록시를 구성하기 전에 AWS 설치에서 GKE용 VPC 엔드포인트를 만들어야 합니다. VPC 엔드포인트를 사용하면 비공개 서브넷의 리소스가 공개 인터넷 액세스 없이 AWS 서비스에 액세스할 수 있습니다.
다음 표에는 엔드포인트 유형 및 엔드포인트에 대한 액세스 권한이 필요한 각 GKE on AWS 구성요소의 보안 그룹과 함께 GKE on AWS에서 VPC 엔드포인트가 필요한 AWS 서비스가 나열되어 있습니다.
서비스 | 엔드포인트 유형 | 보안 그룹 |
---|---|---|
자동 확장 | 인터페이스 | 관리, 제어 영역, 노드 풀 |
EC2 | 인터페이스 | 관리, 제어 영역, 노드 풀 |
부하 분산 | 인터페이스 | 관리, 제어 영역, 노드 풀 |
키 관리 서비스 | 인터페이스 | 관리, 제어 영역, 노드 풀 |
S3 | 게이트웨이 | 관리, 제어 영역, 노드 풀 |
보안 토큰 서비스(STS) | 인터페이스 | 관리, 제어 영역, 노드 풀 |
AWS VPC 콘솔에서 엔드포인트를 만들 수 있습니다. VPC 엔드포인트를 만들 때 설정한 옵션은 VPC 구성에 따라 다릅니다.
보안 그룹 정의
AWS의 GKE 구성요소는 프록시 서버에 연결할 수 있어야 합니다. 프록시 서버에 대한 아웃바운드 연결을 허용하는 AWS 보안 그룹을 만들거나 찾습니다. 보안 그룹은 관리, 제어 영역, 노드 풀 보안 그룹에서 프록시 주소 및 포트로의 아웃바운드 액세스를 허용해야 합니다. 이 보안 그룹(예: sg-12345678
)의 ID를 저장합니다.
유형 | 프로토콜 | 발신 포트 | 수신 포트 | 주소 |
---|---|---|---|---|
이그레스 | TCP | 프록시 포트: | 프록시 포트: | 프록시 보안 그룹 |
Google Cloud 서비스에 대한 아웃바운드 연결 허용
GKE on AWS에서 Google Cloud 서비스에 연결하려면 프록시 서버에서 다음 도메인에 대한 트래픽을 허용해야 합니다.
gkeconnect.googleapis.com
gkehub.googleapis.com
oauth2.googleapis.com
storage.googleapis.com
www.googleapis.com
gcr.io
k8s.gcr.io
EC2-REGION.ec2.archive.ubuntu.com
EC2-REGION을 AWS용 GKE 설치가 실행되는 AWS EC2 리전으로 바꿉니다. 예를 들면 us-west-1.ec2.archive.ubuntu.com/
입니다.
Prometheus 및 Kiali와 함께 Cloud Service Mesh를 사용하는 경우 다음 도메인에서 아웃바운드 액세스를 허용합니다.
docker.io
quay.io
프록시 구성 JSON 파일 만들기
프록시 구성 JSON 파일에는 키 이름이 httpProxy
, httpsProxy
, noProxy
인 키-값 쌍 3개가 포함된 객체가 1개 포함되어 있습니다.
사용자 이름과 비밀번호는 서버에 적용하기 전에 AWS KMS 키로 봉투 암호화를 사용합니다.
{
"httpProxy": "HTTP_PROXY",
"httpsProxy": "HTTPS_PROXY",
"noProxy": "NO_PROXY"
}
다음을 바꿉니다.
- 프록시 서버 주소가 있는 HTTP_PROXY를 사용하여 HTTP 요청을 라우팅합니다.
- 프록시 서버가 있는 HTTPS_PROXY를 사용하여 HTTPS 요청을 라우팅합니다.
- NO_PROXY는 프록시가 사용되지 않는 IP, CIDR 범위 및 도메인의 선택적 목록입니다.
자세한 내용은 구성 참조를 확인하세요.
예를 들어 다음 구성은 10.0.0.254
에서 프록시를 사용하고 여러 사이트를 제외합니다.
{
"httpProxy": "http://user:password@10.0.0.254:80",
"httpsProxy": "http://user:password@10.0.0.254:443",
"noProxy": "localhost,127.0.0.1,169.254.169.254,10.0.0.0/16,example.com"
}
anthos-gke.yaml에 프록시 추가
다음 단계에 따라 AWSManagementService를 구성합니다.
GKE on AWS 구성이 있는 디렉터리로 변경합니다. 이 디렉터리는 관리 서비스를 설치할 때 생성됩니다.
cd anthos-aws
텍스트 편집기에서
anthos-gke.yaml
를 엽니다. 다음 예시와 같이spec.proxy
값을 추가합니다.apiVersion: multicloud.cluster.gke.io/v1 kind: AWSManagementService metadata: name: management spec: version: aws-1.14.1-gke.0 proxy: PROXY_JSON_FILE securityGroupIDs: - SECURITY_GROUP_ID ...
다음을 바꿉니다.
- PROXY_JSON_FILE을 프록시 JSON 구성의 상대 경로로 바꿉니다.
- SECURITY_GROUP_ID를 프록시 서버에 대한 액세스 권한이 있는 보안 그룹의 ID로 바꿉니다.
파일을 저장합니다.
anthos-gke aws management init
를 실행하여 추가 구성으로anthos-gke.status.yaml
파일을 생성합니다.init
명령어는anthos-gke.yaml
파일에 있는AWSManagementService
객체의 유효성을 검사합니다.anthos-gke aws management init
anthos-gke aws management apply
를 실행하여 AWS의 관리 서비스를 업데이트합니다.anthos-gke aws management apply
다음으로 사용자 클러스터를 만듭니다. 프록시의 보안 그룹을
AWSCluster
와AWSNodePool
의spec.controlPlane.securityGroupIDs
및spec.securityGroupIDs
에 각각 포함합니다. 그러면 클러스터에서 프록시에 액세스할 수 있습니다.
구성 참조
필드 | 설명 | 예 | 필수 |
---|---|---|---|
httpProxy |
프록시 서버 URL입니다. 값에 호스트 이름/IP 주소가 포함되어야 하며 선택적으로 포트, 사용자 이름, 비밀번호를 포함할 수 있습니다. | "http://user:password@10.184.37.42:80" |
예 |
httpsProxy |
암호화된 HTTPS 트래픽의 프록시 URL. httpsProxy 가 제공되지 않으면 httpProxy URL이 사용됩니다. |
"http://user:password@10.101.16.31:80" |
없음 |
noProxy |
프록시에서 제외할 쉼표로 구분된 URL 목록입니다. 각 값은 IP 주소, CIDR 범위, 도메인 이름 또는 asterix 문자(* )일 수 있습니다. 선행 점이 지정된 도메인(예: '.google.com')은 하위 도메인이 필요함을 나타냅니다. 단일 asterix * 는 프록시가 수행되어서는 안 됨을 나타냅니다. |
"1.2.3.4,10.0.0.0/16,example.com,.site.com" |
없음 |
다음 단계
GKE on AWS 설치 완료에 대한 자세한 내용은 다음을 참조하세요.
전용 AWS VPC를 만들어야 하는 경우 관리 서비스 설치를 참조하세요.
기존 AWS VPC가 있는 경우 기존 인프라와 통합을 참조하세요.
클러스터의 프록시 설정 변경에 대한 자세한 내용은 다음을 참조하세요.