Anthos clusters on AWS(GKE on AWS)의 새로운 버전이 2월 3일에 출시되었습니다. 자세한 내용은 출시 노트를 참조하세요.

빠른 시작

이 주제에서는 Anthos clusters on AWS(GKE on AWS)에서 워크로드를 만들어 클러스터에 내부적으로 노출하는 방법을 보여줍니다.

시작하기 전에

Anthos clusters on AWS를 사용하기 전에 다음 작업을 수행해야 합니다.

  • 관리 서비스를 설치합니다.
  • 사용자 클러스터를 만듭니다.
  • anthos-aws 디렉터리에서 anthos-gke를 사용하여 컨텍스트를 사용자 클러스터로 전환합니다.
    cd anthos-aws
    env HTTP_PROXY=http://localhost:8118 \
    anthos-gke aws clusters get-credentials CLUSTER_NAME

Connect로 인증한 경우 kubectl 또는 Google Cloud Console을 사용하여 이 단계를 수행할 수 있습니다. Google Cloud Console을 사용하는 경우 NGINX 배포 실행으로 건너뛰세요.

Anthos clusters on AWS 리소스에 연결하려면 다음 단계를 수행하세요. 기존 AWS VPC가 있거나 VPC에 직접 연결되어 있는지 또는 관리 서비스를 만들 때 전용 VPC를 만들었는지 선택합니다.

기존 VPC

기존 VPC에 직접 또는 VPN으로 연결된 경우 이 주제의 명령어에서 env HTTP_PROXY=http://localhost:8118 줄을 생략합니다.

전용 VPC

전용 VPC에서 관리 서비스를 만들면 Anthos clusters on AWS 공개 서브넷에 배스천 호스트가 포함됩니다.

관리 서비스에 연결하려면 다음 단계를 수행하세요.

  1. Anthos clusters on AWS 구성이 있는 디렉터리로 변경합니다. 이 디렉터리는 관리 서비스를 설치할 때 생성됩니다.

    cd anthos-aws

  2. bastion-tunnel.sh 스크립트를 실행하여 터널을 엽니다. 터널이 localhost:8118로 연결됩니다.

    배스천 호스트에 대한 터널을 열려면 다음 명령어를 실행합니다.

    ./bastion-tunnel.sh -N
    

    SSH 터널의 메시지가 이 창에 표시됩니다. 연결을 종료할 준비가 되면 Control+C를 사용하거나 창을 닫아 프로세스를 중지합니다.

  3. 새 터미널을 열고 anthos-aws 디렉터리로 변경합니다.

    cd anthos-aws
  4. kubectl을 사용하여 클러스터에 연결할 수 있는지 확인합니다.

    env HTTP_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    출력에는 관리 서비스 API 서버의 URL이 포함됩니다.

NGINX 배포 실행

이 섹션에서 nginx-1이라는 NGINX 웹 서버의 배포를 만듭니다.

kubectl

  1. kubectl create을 사용하여 배포를 만듭니다.

    env HTTP_PROXY=http://localhost:8118 \
    kubectl create deployment --image nginx nginx-1
    
  2. kubectl을 사용하여 배포 상태를 가져옵니다. Pod의 NAME을 기록합니다.

    env HTTP_PROXY=http://localhost:8118 \
    kubectl get deployment
    

Console

Google Cloud Console에서 NGINX 배포를 실행하려면 다음 단계를 수행하세요.

  1. Cloud Console에서 GKE 워크로드 메뉴로 이동합니다.

    워크로드 메뉴로 이동

  2. 배포를 클릭합니다.

  3. 컨테이너 수정에서 기존 컨테이너 이미지를 선택하여 Container Registry에서 제공되는 컨테이너 이미지를 선택합니다. 이미지 경로에 사용할 컨테이너 이미지와 해당 버전을 입력합니다. 이 빠른 시작에는 nginx:latest를 사용합니다.

  4. 완료를 클릭한 다음 계속을 클릭합니다. 구성 화면이 나타납니다.

  5. 배포의 애플리케이션 이름 및 Kubernetes 네임스페이스를 변경할 수 있습니다. 이 빠른 시작에서는 애플리케이션 이름 nginx-1 및 네임스페이스 default를 사용할 수 있습니다.

  6. 클러스터 드롭다운 메뉴에서 사용자 클러스터를 선택합니다. 기본적으로 첫 번째 사용자 클러스터의 이름은 cluster-0입니다.

  7. 배포를 클릭합니다. Anthos clusters on AWS가 NGINX 배포를 시작합니다. 배포 세부정보 화면이 표시됩니다.

Pod 노출

이 섹션에서는 다음 작업 중 하나를 수행하는 방법을 보여줍니다.

  • 배포를 클러스터에 내부적으로 노출하고 kubectl port-forward에서 사용할 수 있는지 확인합니다.

  • Google Cloud Console에서 노드 풀 보안 그룹에 따라 허용되는 주소로 배포를 노출합니다.

kubectl

  1. kubectl expose를 사용하여 배포에서 포트 80을 클러스터에 노출합니다.

    env HTTP_PROXY=http://localhost:8118 \
    kubectl expose deployment nginx-1 --port=80
    

    이제 클러스터 내에서 배포에 액세스할 수 있습니다.

  2. kubectl port-forward를 사용하여 배포에서 포트 80을 로컬 머신의 포트 8080으로 전달합니다.

    env HTTP_PROXY=http://localhost:8118 \
    kubectl port-forward deployment/nginx-1 8080:80
    
  3. curl 또는 웹브라우저로 http://localhost:8080에 연결합니다. 기본 NGINX 웹페이지가 표시됩니다.

    curl http://localhost:8080
    

Console

  1. Cloud Console에서 GKE 워크로드 메뉴로 이동합니다.

    워크로드 메뉴로 이동

  2. 배포 세부정보 페이지에서 노출을 클릭합니다. 배포 노출 화면이 나타납니다.

  3. 포트 매핑 섹션에서 기본 포트(80)를 그대로 두고 완료를 클릭합니다.

  4. 서비스 유형부하 분산기를 선택합니다. 다른 옵션에 대한 자세한 내용은 Kubernetes 문서의 게시 서비스(ServiceTypes)를 참조하세요.

  5. 노출을 클릭합니다. 서비스 세부정보 화면이 표시됩니다. Anthos clusters on AWS는 서비스의 기본 Elastic Load Balancer를 만듭니다.

  6. 외부 엔드포인트 링크를 클릭합니다. 부하 분산기가 준비되면 기본 NGINX 웹페이지가 표시됩니다.

Google Cloud Console에서 배포 보기

클러스터가 Google Cloud Console에 연결되어 있으면 GKE 워크로드 페이지에서 배포를 볼 수 있습니다. 워크로드를 보려면 다음 단계를 수행합니다.

  1. 브라우저에서 Google Kubernetes Engine 워크로드 페이지로 이동합니다.

    Google Kubernetes Engine 워크로드 페이지로 이동

    워크로드 목록이 나타납니다.

  2. 워크로드 이름(nginx-1)을 클릭합니다. 배포 세부정보 화면이 표시됩니다.

  3. 이 화면에서 배포에 대한 세부정보를 확인하고, YAML 구성을 보고 수정하고, 다른 Kubernetes 작업을 수행할 수 있습니다.

이 페이지에서 제공되는 옵션들에 대한 자세한 내용은 GKE 문서의 스테이트리스(Stateless) 애플리케이션 배포를 참조하세요.

삭제

NGINX 배포를 삭제하려면 kubectl delete 또는 Google Cloud Console을 사용합니다.

kubectl

env HTTP_PROXY=http://localhost:8118 \
kubectl delete service nginx-1 &&\
kubectl delete deployment nginx-1

Console

  1. Google Cloud Console에서 서비스 및 인그레스 페이지 메뉴로 이동합니다.

    서비스 및 인그레스 페이지로 이동

  2. NGINX 서비스를 찾아 이름을 클릭합니다. 기본적으로 이름은 nginx-1-service입니다. 서비스 세부정보 화면이 표시됩니다.

  3. 삭제를 클릭하여 서비스를 삭제할 것인지 확인합니다. Anthos clusters on AWS가 부하 분산기를 삭제합니다.

  4. Google Kubernetes Engine 워크로드 페이지로 이동

    Google Kubernetes Engine 워크로드 페이지로 이동

    워크로드 목록이 나타납니다.

  5. 워크로드 이름(nginx-1)을 클릭합니다. 배포 세부정보 화면이 표시됩니다.

  6. 삭제를 클릭하여 배포를 삭제할 것인지 확인합니다. Anthos clusters on AWS가 배포를 삭제합니다.

다음 단계

다음 서비스 중 하나를 사용하여 내부 또는 외부 부하 분산기를 만듭니다.

AWS에서 Anthos clusters on AWS로 다른 유형의 Kubernetes 작업 부하를 사용할 수 있습니다. 워크로드 배포에 대한 자세한 내용은 GKE 문서를 참조하세요.