클러스터 VPC 고려 사항 - Amazon EKS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

클러스터 VPC 고려 사항

Amazon EKS 클러스터를 생성할 때 클러스터가 사용할 VPC 서브넷을 지정합니다. Amazon EKS의 경우 2개 이상의 가용 영역에서 서브넷이 필요합니다. Kubernetes가 프라이빗 서브넷에 있는 노드에서 실행되는 포드로 트래픽을 로드 밸런싱하는 퍼블릭 서브넷에 퍼블릭 로드 밸런서를 생성할 수 있도록 퍼블릭 및 프라이빗 서브넷이 있는 VPC를 사용하는 것이 좋습니다.

클러스터를 생성할 때 노드 및 로드 밸런서와 같이 클러스터에 대한 리소스를 호스팅하는 모든 서브넷도 지정합니다.

참고

인터넷 경계 로드 밸런서는 클러스터에 퍼블릭 서브넷을 필요로 합니다. 기본적으로 노드는 시작 시 클러스터 내부 검사 및 노드 등록을 위해 에 Amazon EKS APIs 대한 아웃바운드 인터넷 액세스도 필요합니다. 아웃바운드 인터넷 액세스가 없는 클러스터의 경우 단원을 참조하십시오.프라이빗 클러스터.

컨테이너 이미지를 가져오려면 Amazon S3 및 Amazon ECR APIs (및 기타 컨테이너 레지스트리(예: ))에 대한 액세스가 필요합니다DockerHub. 자세한 내용은 Amazon EKS 보안 그룹 고려 사항https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html 의 AWS General ReferenceAWS IP 주소 범위를 참조하십시오.

클러스터를 생성할 때 전달하는 서브넷은 가 제어 플레인에서 노드 통신에 사용되는 네트워크 인터페이스를 Amazon EKS 배치하는 위치에 영향을 미칩니다.

클러스터를 생성할 때 퍼블릭 또는 프라이빗 서브넷만을 지정할 수 있지만 이러한 구성과 관련하여 몇 가지 제한 사항이 있습니다.

  • Private-only: 프라이빗 서브넷 및 Kubernetes에서 실행하는 모든 것이 포드에 대한 인터넷 경계 로드 밸런서를 생성할 수 없습니다.

  • Public-only(퍼블릭 전용): 노드를 포함하여 모든 것이 퍼블릭 서브넷에서 실행됩니다.

Amazon EKS 는 프라이빗 서브넷에 네트워크 인터페이스를 생성하여 노드와의 통신을 용이하게 합니다. 이 통신 채널은 kubectl execkubectl logs 와 같은 Kubernetes 기능을 지원합니다. 클러스터를 생성할 때 지정하는 보안 그룹은 클러스터 제어 플레인에 대해 생성된 네트워크 인터페이스에 적용됩니다.

VPC는 DNS 호스트 이름과 DNS 확인을 모두 지원해야 합니다. 그렇지 않으면 노드가 클러스터에 등록할 수 없습니다. 자세한 내용은Amazon VPC 사용 설명서VPC에서 DNS 사용. 을 참조하십시오.

VPC IP 주소 지정

노드는 제어 플레인 및 기타 AWS 서비스와 통신할 수 있어야 합니다. 노드가 프라이빗 서브넷에 배포된 경우 다음 중 하나가 필요합니다.

  • 서브넷에서 NAT 게이트웨이로의 기본 경로를 설정합니다. 노드에 인터넷 액세스를 제공하려면 NAT 게이트웨이에 퍼블릭 IP 주소를 할당해야 합니다.

  • 서브넷에 필요한 몇 가지 설정을 구성하고 에 나열된 필요한 작업을 수행했습니다프라이빗 클러스터.

퍼블릭 서브넷에 자체 관리형 노드를 배포하는 경우, 퍼블릭 IP 주소를 자동 할당하도록 서브넷을 구성해야 합니다. 그렇지 않으면 노드 인스턴스가 시작될 때 퍼블릭 IP 주소가 할당되어야 합니다. 관리형 노드가 퍼블릭 서브넷에 배포된 경우 퍼블릭 IP 주소를 자동 할당하도록 서브넷을 구성해야 합니다. 그렇지 않은 경우 노드에 퍼블릭 IP 주소가 할당되지 않기 때문입니다. 다음 명령을 사용하여 퍼블릭 서브넷이 퍼블릭 IP 주소를 자동 할당하도록 구성되어 있는지 여부를 확인합니다.

aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=<VPC-ID>" | grep 'SubnetId\|MapPublicIpOnLaunch'

출력값은 다음과 같습니다.

"MapPublicIpOnLaunch": <false>, "SubnetId": "<subnet-aaaaaaaaaaaaaaaaa>", "MapPublicIpOnLaunch": <false>, "SubnetId": "<subnet-bbbbbbbbbbbbbbbbb>",

MapPublicIpOnLaunchfalse로 설정된 서브넷의 경우 설정을 true.로 변경합니다.

aws ec2 modify-subnet-attribute --map-public-ip-on-launch --subnet-id <subnet-aaaaaaaaaaaaaaaaa>
중요

Amazon EKS AWS CloudFormation 템플릿을 사용하여 이전에 VPC를 배포한 March 26, 2020경우 퍼블릭 서브넷에 대한 설정을 변경해야 합니다.

Amazon EKS 클러스터에 사용되는 VPC 내에서 프라이빗(RFC 1918) CIDR 범위와 퍼블릭(RFC 1918) CIDR 범위를 모두 정의할 수 있습니다. 자세한 내용은 의 VPC에 IPv4 CIDR 블록 추가를 참조하십시오Amazon VPC 사용 설명서. VPC 및 서브넷에 대한 CIDR(Classless Inter-Domain Routing) 블록을 선택할 때 배포하려는 모든 Amazon EC2 노드 및 포드에 대해 블록에 충분한 IP 주소가 포함되어 있는지 확인합니다. 각 포드에 대해 하나 이상의 IP 주소가 있어야 합니다. 공유 서비스 VPC로 전송 게이트웨이를 구현하여 IP 주소 사용을 절약할 수 있습니다. 자세한 내용은 하이브리드 네트워크에서 공유 서비스 및 VPCsEKS VPC 라우팅 가능한 IP 주소 보존 패턴을 사용하여 격리된 단원을 참조하십시오.

Amazon EKS 제어 플레인은 각 클러스터에 대해 VPC에 최대 4개의 네트워크 인터페이스를 생성합니다. 이러한 네트워크 인터페이스는 해당 설명Amazon EKS <cluster name>에 가 있습니다. 지정하는 서브넷에 네트워크 인터페이스 및 포드에 사용 가능한 IP 주소가 충분한지 확인합니다.

VPC 태그 지정 요건

버전 1.15 이전의 Amazon EKS 클러스터를 생성할 때 는 Kubernetes가 검색할 수 있도록 다음 방식으로 지정한 서브넷이 포함된 VPC에 Amazon EKS 태그를 지정합니다.

kubernetes.io/cluster/<cluster-name>

shared

  • : <cluster-name> 값이 Amazon EKS 클러스터의 이름과 일치합니다.

  • : shared 값을 통해 2개 이상의 클러스터가 이 VPC를 사용할 수 있습니다.

이 태그는 1.15 이상의 클러스터Amazon EKS에 대해 에서 필요하지 않거나 생성되지 않습니다. 이 태그가 이미 있는 VPC에 1.15 이상의 클러스터를 배포하는 경우 태그가 제거되지 않습니다.

서브넷 태그 지정 요건

Amazon EKS 클러스터를 생성할 때 Amazon EKS는 Kubernetes에서 식별할 수 있도록 다음 방법으로 서브넷에 태그를 지정합니다.

kubernetes.io/cluster/<cluster-name>

shared

  • : <cluster-name> 값이 Amazon EKS 클러스터와 일치합니다.

  • : shared 값을 통해 2개 이상의 클러스터가 이 서브넷을 사용할 수 있습니다.

내부 로드 밸런서에 대한 프라이빗 서브넷 태그 지정 요구사항

Kubernetes가 내부 로드 밸런서에 서브넷을 사용할 수 있음을 알 수 있도록 프라이빗 서브넷에 다음과 같이 태그를 지정해야 합니다. eksctl 또는 Amazon EKS AWS CloudFormation 템플릿을 사용하여 이후에 VPC를 생성하는 경우 March 26, 2020서브넷이 생성될 때 적절하게 태그가 지정됩니다. Amazon EKS AWS CloudFormation VPC 템플릿에 대한 자세한 내용은 단원을 참조하십시오Amazon EKS 클러스터용 VPC 생성.

kubernetes.io/role/internal-elb

1

외부 로드 밸런서의 퍼블릭 서브넷 태그 지정 옵션

퍼블릭 서브넷은 다음과 같이 태그를 지정해야 Kubernetes가 각 퍼블릭 서브넷을 선택하는 대신 외부 로드 밸런서에 해당 서브넷만 사용해야 한다는 것을 알 수 있습니다가용 영역(서브넷 ID를 기준으로 사전순으로 지정). eksctl 또는 Amazon EKS AWS CloudFormation 템플릿을 사용하여 이후에 VPC를 생성하는 경우 March 26, 2020서브넷이 생성될 때 적절하게 태그가 지정됩니다. Amazon EKS AWS CloudFormation VPC 템플릿에 대한 자세한 내용은 단원을 참조하십시오Amazon EKS 클러스터용 VPC 생성.

kubernetes.io/role/elb

1