사용자 클러스터 만들기

AWS의 GKE 사용자 클러스터는 Kubernetes 워크로드를 호스팅합니다. 이 주제에서는 기본 사용자 클러스터를 만드는 방법을 보여줍니다. 사용자 클러스터를 추가로 구성하려면 커스텀 사용자 클러스터 만들기를 참조하세요.

AWSClusterAWSNodePool 커스텀 리소스를 사용하여 GKE on AWS 사용자 클러스터를 프로비저닝하세요.

시작하기 전에

사용자 클러스터를 만들려면 먼저 관리 서비스를 설치해야 합니다.

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

기존 VPC

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

전용 VPC

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

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

  1. GKE 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 HTTPS_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

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

제어 영역 인스턴스 크기 선택

GKE on AWS는 크기 조절 제어 영역 인스턴스를 지원하지 않습니다. 사용자 클러스터를 만들기 전에 제어 영역의 인스턴스 크기를 선택합니다. 제어 영역 크기는 클러스터의 노드 수에 따라 다릅니다. 다음 표에는 다양한 클러스터 크기에 권장되는 제어 영역 인스턴스 크기가 나와 있습니다.

클러스터 크기(노드) 제어 영역 인스턴스 유형
1~10 m5.large
11~100 m5.xlarge
101~200 m5.2xlarge

사용자 클러스터 만들기

이 예시에서는 terraform을 사용하여 기본 클러스터를 만드는 구성을 생성합니다. 그런 다음 kubectl apply를 사용하여 구성을 적용합니다.

  1. 터미널을 열고 필요한 경우 배스천 호스트에 연결합니다.

  2. 관리 서비스를 설치할 때 만든 폴더로 디렉터리를 변경합니다.

  3. Terraform을 사용하여 예시 클러스터를 구성하는 매니페스트를 생성하고 이를 YAML 파일에 저장합니다. Terraform 버전을 선택한 후 다음 명령어를 실행합니다.

    Terraform 0.12, 0.13

    terraform output cluster_example > cluster-0.yaml
    

    Terraform 0.14.3 이상

    terraform output -raw cluster_example > cluster-0.yaml
    

    이 파일의 콘텐츠에 자세한 내용은 AWSClusterAWSNodePool 문서를 참조하세요.

  4. 텍스트 편집기에서 파일을 열고 필요한 경우 수정합니다. 기본적으로 AWS의 GKE는 anthos-gke.yaml에 지정된 각 가용성 영역에 노드 풀을 만듭니다. 원하는 클러스터와 일치하도록 노드 풀의 크기와 수를 변경할 수 있습니다. 구성을 추가로 변경할 수도 있습니다. 예를 들어 GKE on AWS 노드의 인스턴스 유형을 변경할 수 있습니다. 컨트롤 플레인 노드에서 로깅 및 모니터링을 사용 설정할 수도 있습니다.

  5. 파일을 관리 서비스에 적용합니다.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    

kubeconfig 만들기

사용자 클러스터를 시작할 때 새 사용자 클러스터의 kubeconfig 컨텍스트를 만들 수 있습니다. 컨텍스트를 사용하여 사용자 또는 관리자 클러스터에 인증합니다.

  1. anthos-gke aws clusters get-credentials를 사용하여 ~/.kube/config의 사용자 클러스터에 대한 kubeconfig를 생성합니다.

    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters get-credentials CLUSTER_NAME
    

    CLUSTER_NAME을 클러스터 이름으로 바꿉니다. 예를 들면 cluster-0입니다.

  2. kubectl을 사용하여 새 사용자 클러스터를 인증합니다.

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

    클러스터가 준비되면 클러스터에 있는 Kubernetes 구성요소에 대한 URL이 반환됩니다.

클러스터 상태 보기

AWSCluster 또는 AWSNodePool을 적용할 때 관리 서비스가 AWS 리소스를 프로비저닝합니다.

  1. anthos-aws 디렉터리에서 anthos-gke를 사용하여 컨텍스트를 관리 서비스로 전환합니다.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. 클러스터를 나열하려면 kubectl get AWSClusters를 사용합니다.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get AWSClusters
    

    결과에는 각 클러스터의 이름, 상태, 사용 기간, 버전, 엔드포인트가 포함됩니다.

    예를 들어 다음 결과에는 cluster-0이라는 AWSCluster가 하나 포함되어 있습니다.

    NAME        STATE          AGE     VERSION         ENDPOINT
    cluster-0   Provisioning   2m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    

클러스터 이벤트 보기

사용자 클러스터에서 최근의 Kubernetes 이벤트를 보려면 kubectl get events를 사용합니다.

  1. anthos-aws 디렉터리에서 anthos-gke를 사용하여 컨텍스트를 관리 서비스로 전환합니다.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. kubectl get events를 실행합니다.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get events
    

출력에는 관리 서비스의 정보, 경고, 오류가 포함됩니다.

사용자 클러스터 삭제

사용자 클러스터를 삭제하려면 다음 단계를 수행하세요.

  1. anthos-aws 디렉터리에서 anthos-gke를 사용하여 컨텍스트를 관리 서비스로 전환합니다.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. kubectl delete를 사용하여 사용자 클러스터가 포함된 매니페스트를 삭제합니다.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete -f CLUSTER_FILE
    

    CLUSTER_FILE을 AWScluster 및 AWSNodePool 객체가 포함된 매니페스트의 이름으로 바꿉니다. 예를 들면 cluster-0.yaml입니다.

모든 사용자 클러스터 삭제

모든 사용자 클러스터를 삭제하려면 다음 단계를 수행하세요.

  1. anthos-aws 디렉터리에서 anthos-gke를 사용하여 컨텍스트를 관리 서비스로 전환합니다.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. kubectl delete를 사용하여 관리 서비스에서 AWSNodePool 및 AWSCluster를 삭제합니다.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete AWSNodePool --all
    env HTTPS_PROXY=http://localhost:8118 \
      kubectl delete AWSCluster --all
    

자세한 내용은 GKE on AWS 제거를 참조하세요.

다음 단계