AWS Fargate 프로필 - Amazon EKS

AWS Fargate 프로필

클러스터의 Fargate에 포드를 예약하려면 먼저 포드가 시작될 때 Fargate를 사용할 포드를 지정하는 Fargate 프로필을 하나 이상 정의해야 합니다.

관리자는 Fargate 프로필을 사용하여 어떤 포드가 Fargate에서 실행되는지 선언할 수 있습니다. 이 선언은 프로파일의 선택기를 통해 수행됩니다. 각 프로파일에는 네임스페이스 및 선택적 레이블을 포함하는 선택기가 최대 5개까지 포함될 수 있습니다. 모든 선택기에 대해 네임스페이스를 정의해야 합니다. 레이블 필드는 여러 개의 선택적 키-값 페어로 구성됩니다. 선택기와 일치하는 포드(선택기의 네임스페이스와 선택기에 지정된 모든 레이블과 일치)는 Fargate에 예약됩니다. 네임스페이스 선택기가 레이블 없이 정의되면 Amazon EKS는 프로필을 사용하여 해당 네임스페이스에서 실행되는 모든 포드를 Fargate에 예약하려고 시도합니다. 예약할 포드가 Fargate 프로필의 선택기와 일치하는 경우, 해당 포드가 Fargate에 예약됩니다.

포드가 여러 Fargate 프로필과 일치하는 경우, Amazon EKS는 일치하는 항목 중 하나를 임의로 선택합니다. 이 경우 포드 사양에 Kubernetes 레이블(eks.amazonaws.com/fargate-profile: <profile_name>)을 추가하여 포드에서 사용할 프로파일을 지정할 수 있습니다. 그러나 포드는 Fargate에 예약하기 위해 해당 프로필의 선택기와 계속 일치해야 합니다.

Fargate 프로필을 생성할 때 프로필을 사용하여 Fargate 인프라에서 실행되는 Amazon EKS 구성 요소의 포드 실행 역할을 지정해야 합니다. 이 역할은 권한 부여를 위해 클러스터의 Kubernetes 역할 기반 액세스 제어(RBAC)에 추가되므로 Fargate 인프라에서 실행 중인 kubelet이 Amazon EKS 클러스터에 등록되고 클러스터에 노드로 표시될 수 있습니다. 또한 포드 실행 역할은 Amazon ECR 이미지 리포지토리에 대한 읽기 액세스를 허용하는 Fargate 인프라에 대한 IAM 권한을 제공합니다. 자세한 내용은 섹션을 참조하세요포드 실행 역할

Fargate 프로파일은 변경할 수 없습니다. 그러나 업데이트된 프로파일을 새로 생성하여 기존 프로파일을 바꾼 다음 업데이트된 프로파일 생성이 완료된 후 원본을 삭제할 수 있습니다.

참고

Fargate 프로필을 사용하여 실행 중인 모든 포드는 중지되고 프로필이 삭제되면 보류 상태로 전환됩니다.

클러스터의 Fargate 프로파일이 DELETING 상태인 경우 해당 클러스터에 다른 프로파일을 생성하려면 해당 Fargate 프로파일이 삭제될 때까지 기다려야 합니다.

Fargate 프로필 구성 요소

다음 구성 요소는 Fargate 프로필에 포함되어 있습니다.

  • 포드 실행 역할 - 클러스터가 AWS Fargate에 포드를 생성하는 경우 Fargate 인프라에서 실행 중인 kubelet이 사용자를 대신하여 AWS API를 호출해야 합니다. 예를 들어 Amazon ECR에서 컨테이너 이미지를 가져올 수 있습니다. Amazon EKS 포드 실행 역할은 이 작업을 수행할 수 있는 IAM 권한을 제공합니다.

    Fargate 프로필을 생성할 때 포드와 함께 사용할 포드 실행 역할을 지정해야 합니다. 이 역할은 권한 부여를 위해 클러스터의 Kubernetes 역할 기반 액세스 제어(RBAC)에 추가됩니다. 이렇게 하면 Fargate 인프라에서 실행 중인 kubelet이 Amazon EKS 클러스터에 등록되어 클러스터에 노드로 표시될 수 있습니다. 자세한 내용은 섹션을 참조하세요포드 실행 역할

  • 서브넷 - 이 프로필을 사용하는 포드를 시작할 서브넷의 ID입니다. 현재 Fargate에서 실행 중인 포드에는 퍼블릭 IP 주소가 할당되지 않습니다. 따라서 이 파라미터에 대해서는 인터넷 게이트웨이로 가는 직접 경로가 없는 프라이빗 서브넷만 허용됩니다.

  • 선택기- 이 Fargate 프로필을 사용하기 위해 포드에 대해 일치시킬 선택기입니다. 각 선택기에는 연관된 네임스페이스가 있어야 합니다. 선택적으로 네임스페이스의 레이블을 지정할 수도 있습니다. Fargate 프로파일에 선택기를 최대 5개까지 지정할 수 있습니다. Fargate 프로필을 사용하여 실행하려면 포드가 하나의 선택기와 일치해야 합니다.

  • 네임스페이스 - 선택기에 대한 네임스페이스를 지정해야 합니다. 선택기는 이 네임스페이스에 생성된 포드와 일치하지만 여러 선택기를 생성하여 여러 네임스페이스를 대상으로 지정할 수 있습니다.

  • 레이블 - 선택적으로 선택기에 대해 일치시킬 Kubernetes 레이블을 지정할 수 있습니다. 선택기는 선택기에 지정된 모든 레이블이 있는 포드와 일치합니다.

Fargate 프로필 생성

이 주제는 Fargate 프로필을 생성하는 데 도움이 됩니다. AWS Amazon EKS가 포함된 Fargate는 중국(베이징), 중국(닝샤), AWS GovCloud (미국 동부) 및 AWS GovCloud (미국 서부)를 제외한 모든 Amazon EKS 리전에서 사용할 수 있습니다. 또한 Fargate 프로필에 사용할 포드 실행 역할을 생성해야 합니다. 자세한 내용은 섹션을 참조하세요포드 실행 역할 Fargate에서 실행되는 포드는 인터넷 게이트웨이에 대한 직접 경로가 없고 AWS 서비스에 대한 NAT 게이트웨이 액세스 권한이 있는 프라이빗 서브넷에서만 지원되므로 클러스터의 VPC에 프라이빗 서브넷이 있어야 합니다. eksctl 또는 AWS Management Console을 사용하여 프로필을 생성할 수 있습니다. Fargate 프로필을 생성할 도구 이름이 있는 탭을 선택합니다.

이 절차에는 eksctl 버전 0.70.0 이상이 필요합니다. 버전은 다음 명령을 통해 확인할 수 있습니다.

eksctl version

eksctl 설치 또는 업그레이드에 대한 자세한 내용은 eksctl 설치 또는 업그레이드 단원을 참조하십시오.

eksctl

eksctl를 사용하여 Fargate 프로필을 생성하려면

다음 eksctl 명령으로 Fargate 프로필을 생성하고 <variable text>(<> 포함)를 사용자 고유의 값으로 바꿉니다. 네임스페이스를 지정해야 합니다. 그러나 --labels 옵션은 필요하지 않습니다.

eksctl create fargateprofile \ --cluster <cluster_name> \ --name <fargate_profile_name> \ --namespace <kubernetes_namespace> \ --labels <key=value>
AWS Management Console

AWS Management Console에서 클러스터용 Fargate 프로필을 생성하려면

  1. https://console.aws.amazon.com/eks/home#/clusters에서 Amazon EKS 콘솔을 엽니다.

  2. Fargate 프로필을 생성할 클러스터를 선택합니다.

  3. [구성(Configuration)] 탭을 선택한 다음 [컴퓨팅(Compute)] 탭을 선택합니다.

  4. [Fargate 프로필(Fargate profiles)]에서 [Fargate 프로필 추가(Add Fargate profile)]를 선택합니다.

  5. [Fargate 프로필 구성(Configure Fargate profile)] 페이지에서 다음 정보를 입력하고 [다음(Next)]을 선택합니다.

    1. [이름(Name)]에 Fargate 프로필의 고유한 이름을 입력합니다.

    2. [포드 실행 역할(Pod execution role)]에서 Fargate 프로필과 함께 사용할 포드 실행 역할을 선택합니다. eks-fargate-pods.amazonaws.com 서비스 보안 주체가 있는 IAM 역할만 표시됩니다. 나열된 역할이 표시되지 않으면 역할을 만들어야 합니다. 자세한 내용은 섹션을 참조하세요포드 실행 역할

    3. 서브넷에 대해 포드에 사용할 서브넷을 선택합니다. 기본적으로 클러스터의 VPC에 있는 모든 서브넷이 선택됩니다. Fargate에서 실행되는 포드에는 프라이빗 서브넷만 지원됩니다. 퍼블릭 서브넷의 선택을 취소해야 합니다.

    4. [태그(Tags)]에 선택적으로 Fargate 프로필에 태그를 지정할 수 있습니다. 이러한 태그는 프로필과 관련된 다른 리소스(예: 포드)에는 전파되지 않습니다.

  6. 포드 선택 구성 페이지에서 다음 정보를 입력하고 다음을 선택합니다.

    1. 네임스페이스kube-system 또는 default와 같이 포드에 대해 일치시킬 네임스페이스를 입력합니다.

    2. (선택 사항) 선택기에 Kubernetes 레이블을 추가합니다. 특히 지정된 네임스페이스의 포드가 일치해야 하는 포드에 추가합니다. 예를 들어, infrastructure: fargate Kubernetes 레이블이 있는 지정된 네임스페이스의 포드만 선택기와 일치하도록 infrastructure: fargate 레이블을 선택기에 추가할 수 있습니다.

  7. [검토 및 생성(Review and create)] 페이지에서 Fargate 프로필에 대한 정보를 검토하고 [생성(Create)]을 선택합니다.

Fargate 프로필 삭제

이 주제는 Fargate 프로필을 삭제하는 데 도움이 됩니다.

Fargate 프로필을 삭제하면 해당 프로파일을 사용하여 Fargate에 예약된 모든 포드가 삭제됩니다. 이러한 포드가 다른 Fargate 프로필과 일치하면 해당 프로필을 사용하여 Fargate에 예약됩니다. Fargate 프로필과 더이상 일치하지 않으면 Fargate에 예약되지 않고 보류 상태로 남아있을 수 있습니다.

클러스터의 Fargate 프로필은 한 번에 하나만 DELETING 상태가 될 수 있습니다. Fargate 프로필이 삭제될 때까지 기다려야 해당 클러스터에서 다른 프로필을 삭제할 수 있습니다.

eksctl, AWS Management Console 또는 AWS CLI를 사용하여 프로필을 삭제할 수 있습니다. 프로필을 삭제하는 데 사용할 도구 이름이 있는 탭을 선택합니다.

eksctl

다음 명령을 사용하여 클러스터에서 프로필을 삭제합니다. <example values>(<> 포함)를 고유한 값으로 바꿉니다.

eksctl delete fargateprofile --name <my-profile> --cluster <my-cluster>
AWS Management Console

AWS Management Console에서 클러스터의 Fargate 프로필을 삭제하려면

  1. https://console.aws.amazon.com/eks/home#/clusters에서 Amazon EKS 콘솔을 엽니다.

  2. Fargate 프로필을 삭제할 클러스터를 선택합니다.

  3. [구성(Configuration) 탭을 선택한 다음 [컴퓨팅(Compute)] 탭을 선택합니다.

  4. 삭제할 Fargate 프로필을 선택한 다음 [삭제(Delete)]를 선택합니다.

  5. [<cluster_name> 삭제(Delete <cluster_name>] 페이지에서 클러스터 이름을 입력하고 [확인(Confirm)]을 선택하여 삭제합니다.

AWS CLI

다음 명령을 사용하여 클러스터에서 프로필을 삭제합니다. <example values>(<> 포함)를 고유한 값으로 바꿉니다.

aws eks delete-fargate-profile --fargate-profile-name <my-profile> --cluster-name <my-cluster>