외부 클러스터 연결 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

외부 클러스터 연결

다음 프로세스에서 여러 방법을 사용하여 외부 Kubernetes 클러스터를 Amazon EKS에 연결할 수 있습니다. 이 프로세스에는 두 단계로 이루어집니다. Amazon EKS에 클러스터를 등록하고 클러스터에 eks-connector 에이전트를 설치하는 것입니다.

중요

첫 번째 단계를 완료한 후 등록이 만료되는 3일 이내에 두 번째 단계를 완료해야 합니다.

커넥터 방법

클러스터를 등록하는 각 방법 이후에 에이전트를 설치하는 모든 방법을 사용할 수 있는 것은 아닙니다. 다음 표에는 각 등록 방법과 사용할 수 있는 에이전트 설치 방법이 나와 있습니다.

단계 메서드
클러스터 등록 AWS Management Console AWS Command Line Interface eksctl
에이전트 설치 Helm, YAML 매니페스트 Helm, YAML 매니페스트 YAML 매니페스트

사전 조건

  • Amazon EKS Connector 에이전트 역할이 생성되었는지 확인합니다. Amazon EKS Connector 에이전트 역할 생성 섹션의 단계를 따릅니다.

  • 클러스터를 등록하려면 다음 권한이 있어야 합니다.

    • eks:RegisterCluster

    • ssm:CreateActivation

    • ssm:DeleteActivation

    • iam:PassRole

1단계: 클러스터 등록

AWS CLI
사전 조건
  • AWS CLI가 설치되어 있어야 합니다. 설치하거나 업그레이드하려면 AWS CLI 설치를 참조하세요.

클러스터를 AWS CLI에 등록하려면
  • 커넥터 구성의 경우 Amazon EKS Connector 에이전트 IAM 역할을 지정합니다. 자세한 내용은 Amazon EKS Connector에 필요한 IAM 역할 섹션을 참조하세요.

    aws eks register-cluster \ --name my-first-registered-cluster \ --connector-config roleArn=arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole,provider="OTHER" \ --region aws-region

    예제 출력은 다음과 같습니다.

    { "cluster": { "name": "my-first-registered-cluster", "arn": "arn:aws:eks:region:111122223333:cluster/my-first-registered-cluster", "createdAt": 1627669203.531, "ConnectorConfig": { "activationId": "xxxxxxxxACTIVATION_IDxxxxxxxx", "activationCode": "xxxxxxxxACTIVATION_CODExxxxxxxx", "activationExpiry": 1627672543.0, "provider": "OTHER", "roleArn": "arn:aws:iam::111122223333:role/AmazonEKSConnectorAgentRole" }, "status": "CREATING" } }

    다음 단계에서 aws-region, activationIdactivationCode 값을 사용합니다.

AWS Management Console
콘솔에 Kubernetes 클러스터를 등록하려면 다음을 수행합니다.
  1. https://console.aws.amazon.com/eks/home#/clusters에서 Amazon EKS 콘솔을 엽니다.

  2. 클러스터 추가(Add cluster)를 선택하고 등록(Register)을 선택하여 구성 페이지를 불러옵니다.

  3. 클러스터 구성(Configure cluster) 페이지에서 다음 필드를 작성합니다.

    • 이름 - 클러스터에 대한 고유한 이름

    • 공급자(Provider) - 선택하여 Kubernetes 클러스터 공급자의 드롭다운 목록을 표시합니다. 특정 공급자를 모르는 경우 기타를 선택합니다.

    • EKS Connector 역할(EKS Connector role) - 클러스터 연결에 사용할 역할을 선택합니다.

  4. 클러스터 등록(Register cluster)을 선택합니다.

  5. 클러스터 개요 페이지가 표시됩니다. 차트 Helm을 사용하려면 helm install 명령을 복사하고 다음 단계로 넘어갑니다. YAML 매니페스트를 사용하려면 YAML 파일 다운로드를 선택하여 매니페스트 파일을 로컬 드라이브에 다운로드합니다.

    중요
    • helm install 명령을 복사하거나 이 파일을 다운로드할 수 있는 유일한 기회입니다. 링크에 액세스할 수 없으며 클러스터를 등록 취소하고 처음부터 단계를 시작해야 하므로 이 페이지에서 벗어나지 마세요.

    • 명령 또는 매니페스트 파일은 등록된 클러스터에 대해 한 번만 사용할 수 있습니다. Kubernetes 클러스터에서 리소스를 삭제하는 경우 클러스터를 다시 등록하고 새 매니페스트 파일을 가져와야 합니다.

    매니페스트 파일을 Kubernetes 클러스터에 적용하려면 다음 단계로 이동합니다.

eksctl
사전 조건
클러스터를 eksctl에 등록하려면 다음을 수행합니다.
  1. 이름, 공급자 및 리전을 제공하여 클러스터를 등록합니다.

    eksctl register cluster --name my-cluster --provider my-provider --region region-code

    출력 예제:

    2021-08-19 13:47:26 [ℹ]  creating IAM role "eksctl-20210819194112186040"
    2021-08-19 13:47:26 [ℹ]  registered cluster "<name>" successfully
    2021-08-19 13:47:26 [ℹ]  wrote file eks-connector.yaml to <current directory>
    2021-08-19 13:47:26 [ℹ]  wrote file eks-connector-clusterrole.yaml to <current directory>
    2021-08-19 13:47:26 [ℹ]  wrote file eks-connector-console-dashboard-full-access-group.yaml to <current directory>
    2021-08-19 13:47:26 [!]  note: "eks-connector-clusterrole.yaml" and "eks-connector-console-dashboard-full-access-group.yaml" give full EKS Console access to IAM identity "<aws-arn>", edit if required; read https://eksctl.io/usage/eks-connector for more info
    2021-08-19 13:47:26 [ℹ]  run `kubectl apply -f eks-connector.yaml,eks-connector-clusterrole.yaml,eks-connector-console-dashboard-full-access-group.yaml` before expiry> to connect the cluster
                                

    이렇게 하면 로컬 컴퓨터에 파일이 생성됩니다. 이 파일을 3일 이내에 외부 클러스터에 적용해야 하며, 그러지 않으면 등록이 만료됩니다.

  2. 클러스터에 액세스할 수 있는 터미널에서 eks-connector-binding.yaml 파일 적용:

    kubectl apply -f eks-connector-binding.yaml

2단계: eks-connector 에이전트 설치

Helm chart
  1. 이전 단계에서 AWS CLI를 사용한 경우 다음 명령에서 ACTIVATION_CODE 및 ACTIVATION_ID를 각각 activationId 및 activationCode 값으로 대체합니다. aws-region을 이전 단계에서 사용한 AWS 리전으로 바꿉니다. 그런 다음 명령을 실행하여 등록하는 클러스터에 eks-connector 에이전트를 설치합니다.

    $ helm install eks-connector \ --namespace eks-connector \ oci://public.ecr.aws/eks-connector/eks-connector-chart \ --set eks.activationCode=ACTIVATION_CODE \ --set eks.activationId=ACTIVATION_ID \ --set eks.agentRegion=aws-region

    이전 단계에서 AWS Management Console을 사용한 경우 이전 단계에서 복사하고 이러한 값이 채워진 명령을 사용합니다.

  2. 설치된 eks-connector 배포의 상태를 확인하고 Amazon EKS에 등록된 클러스터의 상태가 ACTIVE가 될 때까지 기다립니다.

YAML manifest

Amazon EKS Connector 매니페스트 파일을 Kubernetes 클러스터에 적용하여 연결 작업을 완료합니다. 이렇게 하려면 앞서 설명한 방법을 사용해야 합니다. 3일 이내에 매니페스트가 적용되지 않으면 Amazon EKS Connector 등록이 만료됩니다. 클러스터 연결이 만료되면 먼저 클러스터의 등록을 취소한 후 클러스터를 다시 연결해야 합니다.

  1. Amazon EKS Connector YAML 파일을 다운로드합니다.

    curl -O https://amazon-eks.s3.us-west-2.amazonaws.com/eks-connector/manifests/eks-connector/latest/eks-connector.yaml
  2. Amazon EKS Connector YAML 파일을 편집하여 %AWS_REGION%, %EKS_ACTIVATION_ID%, %EKS_ACTIVATION_CODE%의 모든 참조를 이전 단계 출력의 aws-region, activationIdactivationCode로 바꿉니다.

    다음 예제 명령은 이러한 값을 대체할 수 있습니다.

    sed -i "s~%AWS_REGION%~$aws-region~g; s~%EKS_ACTIVATION_ID%~$EKS_ACTIVATION_ID~g; s~%EKS_ACTIVATION_CODE%~$(echo -n $EKS_ACTIVATION_CODE | base64)~g" eks-connector.yaml
    중요

    정품 인증 코드가 base64 형식인지 확인합니다.

  3. 클러스터에 액세스할 수 있는 터미널에서 다음 명령을 실행하여 업데이트된 매니페스트 파일을 적용할 수 있습니다.

    kubectl apply -f eks-connector.yaml
  4. Amazon EKS Connector 매니페스트 및 역할 바인딩 YAML 파일이 Kubernetes 클러스터에 적용된 후 클러스터가 이제 연결되었는지 확인합니다.

    aws eks describe-cluster \ --name "my-first-registered-cluster" \ --region AWS_REGION

    출력에 status=ACTIVE가 포함되어야 합니다.

  5. (선택 사항) 클러스터에 태그를 추가합니다. 자세한 내용은 Amazon EKS 리소스 태깅 섹션을 참조하세요.

다음 단계

이 단계에서 문제가 있는 경우 Amazon EKS 커넥터의 문제 해결의 내용을 참조하세요.

연결된 클러스터에서 Kubernetes 리소스를 볼 수 있도록 추가 IAM 보안 주체에게 Amazon EKS 콘솔에 대한 액세스 권한을 부여하려면 클러스터에서 Kubernetes 리소스를 보도록 IAM 보안 주체에게 액세스 권한 부여 섹션을 참조하세요.