kubeconfig 파일을 생성하여 kubectl을 EKS 클러스터에 연결 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 설명서에 기여하고 싶으신가요? 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.

kubeconfig 파일을 생성하여 kubectl을 EKS 클러스터에 연결

이 주제에서는 클러스터에 대한 kubeconfig 파일을 생성하거나 기존 파일을 업데이트합니다.

kubectl 명령줄 도구는 kubeconfig 파일의 구성 정보를 사용하여 클러스터의 API 서버와 통신합니다. 자세한 내용을 알아보려면 Kubernetes 문서의 kubeconfig 파일을 사용하여 클러스터 접근 구성하기를 참조하세요.

Amazon EKS는 클러스터 인증을 위해 kubectl과 함께 aws eks get-token 명령을 사용합니다. 기본적으로 AWS CLI에서는 다음 명령을 사용하여 반환되는 것과 동일한 보안 인증 정보를 사용합니다.

aws sts get-caller-identity
  • 기존 Amazon EKS 클러스터. 배포하려면 Amazon EKS 시작하기 섹션을 참조하세요.

  • kubectl 명령줄 도구는 장치 또는 AWS CloudShell에 설치됩니다. 버전은 클러스터의 Kubernetes 버전과 동일하거나 최대 하나 이전 또는 이후의 마이너 버전일 수 있습니다. 예를 들어, 클러스터 버전이 1.29인 경우 kubectl 버전 1.28, 1.29 또는 1.30를 함께 사용할 수 있습니다. kubectl을 설치하거나 업그레이드하려면 kubectl 및 eksctl 설정 부분을 참조하세요.

  • 장치에 설치 및 구성된 AWS 명령줄 인터페이스(AWS CLI)의 버전 2.12.3 이상 또는 버전 1.27.160 이상 또는 AWS CloudShell. 현재 버전을 확인하려면 aws --version | cut -d / -f2 | cut -d ' ' -f1을 사용합니다. macOS용 yum, apt-get 또는 Homebrew와 같은 패키지 관리자는 최신 버전의 AWS CLI보다 여러 버전 이전인 경우가 많습니다. 최신 버전을 설치하려면 AWS 명령줄 인터페이스 사용 설명서에서 설치aws config를 사용하여 빠른 구성을 참조하세요. AWS CloudShell에 설치된 AWS CLI 버전도 최신 버전보다 여러 버전 이전일 수도 있습니다. 업데이트하려면 AWS CloudShell 사용 설명서홈 디렉터리에 AWS CLI 설치하기를 참조하세요.

  • 지정한 클러스터에 대해 eks:DescribeCluster API 작업을 사용할 수 있는 권한을 보유한 IAM 사용자 또는 역할. 자세한 내용은 Amazon EKS 자격 증명 기반 정책 예제 섹션을 참조하세요. 자체 OpenID Connect 공급자 ID를 사용하여 클러스터에 액세스하는 경우 Kubernetes 설명서에서 Using kubectl을 참조하거나 kube config 파일을 생성 또는 업데이트합니다.

자동으로 kubeconfig 파일 생성

  • 장치에 설치 및 구성된 AWS 명령줄 인터페이스(AWS CLI)의 버전 2.12.3 이상 또는 버전 1.27.160 이상 또는 AWS CloudShell. 현재 버전을 확인하려면 aws --version | cut -d / -f2 | cut -d ' ' -f1을 사용합니다. macOS용 yum, apt-get 또는 Homebrew와 같은 패키지 관리자는 최신 버전의 AWS CLI보다 여러 버전 이전인 경우가 많습니다. 최신 버전을 설치하려면 AWS 명령줄 인터페이스 사용 설명서에서 설치aws config를 사용하여 빠른 구성을 참조하세요. AWS CloudShell에 설치된 AWS CLI 버전도 최신 버전보다 여러 버전 이전일 수도 있습니다. 업데이트하려면 AWS CloudShell 사용 설명서홈 디렉터리에 AWS CLI 설치하기를 참조하세요.

  • 지정한 클러스터에 대해 eks:DescribeCluster API 작업을 사용할 수 있는 권한. 자세한 내용은 Amazon EKS 자격 증명 기반 정책 예제 섹션을 참조하세요.

    1. 클러스터에 대해 kubeconfig 파일을 생성 또는 업데이트합니다. region-code를 클러스터를 생성한 AWS 리전으로 바꾸고 my-cluster를 클러스터 이름으로 바꿉니다.

      aws eks update-kubeconfig --region region-code --name my-cluster

      기본적으로 구성 파일은 홈 디렉터리의 기본 kubeconfig 경로(.kube)에 생성되거나 해당 위치의 기존 config 파일과 병합됩니다. --kubeconfig 옵션을 사용하여 다른 경로를 지정할 수 있습니다.

      --role-arn 옵션으로 IAM 역할 ARN을 지정하면 kubectl 명령을 실행할 때 인증에 사용할 수 있습니다. 그렇지 않으면 기본 AWS CLI 또는 SDK 자격 증명 체인의 IAM 보안 주체가 사용됩니다. aws sts get-caller-identity 명령을 실행하여 기본 AWS CLI 또는 SDK ID를 확인할 수 있습니다.

      사용 가능한 모든 옵션을 알아보려면 aws eks update-kubeconfig help 명령을 실행하거나 AWS CLI 명령 참조update-kubeconfig를 참조하세요.

    2. 구성을 테스트합니다.

      kubectl get svc

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

      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m

      권한 부여 또는 리소스 유형 오류가 표시되는 경우 문제 해결 주제의 권한이 없거나 액세스가 거부됨(kubectl) 부분을 참조하세요.