Amazon Web Services 한국 블로그
Amazon EKS HyBrid Nodes 출시: EKS 클러스터 온프레미스 인프라 사용 가능
오늘은 온프레미스 및 엣지 인프라를 클라우드의 EKS 클러스터에 노드로 연결하는 데 사용할 수 있는 새로운 기능인 Amazon Elastic Kubernetes Service (Amazon EKS) 하이브리드 노드의 정식 출시를 발표합니다.
Amazon EKS 하이브리드 노드를 사용하면 클라우드 및 온프레미스 환경 전반에서 Kubernetes 관리를 통합하고 애플리케이션을 실행해야 하는 모든 위치에서 Amazon EKS의 규모와 가용성을 활용할 수 있습니다. 기존 온프레미스 하드웨어를 사용하면서 Kubernetes 컨트롤 플레인 관리 책임을 EKS에 오프로드하고 워크로드를 위한 온프레미스 용량을 보존할 수 있습니다. Amazon EKS 하이브리드 노드를 사용하면 클라우드 및 온프레미스 환경 전반에서 일관된 운영 관행과 도구를 채택할 수 있습니다.
Amazon EKS 하이브리드 노드는 이전에 소개한 Amazon EKS on AWS Outposts 및 Amazon EKS Anywhere에 더하여, 하이브리드 Kubernetes 배포에 대한 지원을 확장합니다. 각 EKS 하이브리드 배포 옵션을 사용하여 Kubernetes 및 하드웨어 구성 요소를 관리하는 방법을 비교할 수 있습니다.
구성 요소 | EKS on Outposts | EKS 하이브리드 노드 | EKS Anywhere |
하드웨어 | AWS 관리 | 고객 관리 | |
Kubernetes 컨트롤 플레인 | AWS에서 호스팅 및 관리 | 고객이 호스팅 및 관리 | |
Kubernetes 노드 | Amazon EC2 | 고객이 관리하는 물리적 또는 가상 머신 |
Amazon EKS 하이브리드 노드를 사용하여 온프레미스 및 엣지 인프라를 EKS 클러스터에 연결하면 Amazon EKS 애드온, Pod Identity, 클러스터 액세스 항목, 클러스터 인사이트 및 확장된 Kubernetes 버전 지원을 비롯하여 다른 Amazon EKS 기능 및 통합을 사용할 수 있습니다. Amazon EKS 하이브리드 노드는 중앙 집중식 모니터링, 로깅 및 자격 증명 관리를 위해 AWS Systems Manager, AWS IAM Roles Anywhere, Amazon Managed Service for Prometheus, Amazon CloudWatch, Amazon GuardDuty 등의 AWS 서비스와 기본적으로 통합됩니다.
Amazon EKS 하이브리드 노드 시작하기
Amazon EKS 하이브리드 노드를 사용하는 단계는 다음과 같습니다. 먼저 EKS 클러스터를 생성하고 온프레미스 노드와 포드 서브넷을 지정합니다. 온프레미스 환경에 대한 네트워크 연결과 AWS Identity and Access Management(AWS IAM) 권한을 설정한 후 클러스터에 가입할 각 호스트에서 Amazon EKS 하이브리드 노드 CLI(nodeadm
)를 실행합니다. 하이브리드 노드가 클러스터에 가입하면 kube-proxy 및 CoreDNS와 같은 필수 네트워킹 구성 요소가 자동으로 설치됩니다. 하이브리드 노드가 애플리케이션을 실행할 준비를 갖추려면 먼저 호환되는 컨테이너 네트워크 인터페이스(CNI) 드라이버를 설치해야 합니다. Cilium 및 Calico CNI 드라이버는 Amazon EKS 하이브리드 노드와 함께 사용할 수 있습니다.
1. 사전 조건
온프레미스 인프라가 EKS 클러스터를 하이브리드 노드로 결합하려면 다음을 비롯하여 특정 사전 조건을 충족해야 합니다.
- AWS Site-to-Site VPN, AWS Direct Connect 또는 다른 가상 프라이빗 네트워크(VPN) 솔루션을 사용하여 온 프레미스 환경에서 AWS와 주고받는 하이브리드 네트워크 연결
- 가상 프라이빗 게이트웨이(VGW) 또는 전송 게이트웨이(TGW)를 대상으로 하는 온프레미스 노드 및 선택적으로 포드 네트워크용 라우팅 테이블에 경로가 있는 가상 프라이빗 클라우드(VPC)
- 물리적 또는 가상 시스템 형태의 인프라
- 하이브리드 노드와 호환되는 운영 체제
- AWS IAM Roles Anywhere 또는AWS Systems Manager가 컨트롤 플레인을 통해 하이브리드 노드를 인증하도록 설정되어 있습니다.
- EKS 클러스터 IAM 역할 및 EKS 하이브리드 노드 IAM 역할
Amazon Linux 2023, Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04 또는 Red Hat Enterprise Linux(RHEL) 8 및 9를 하이브리드 노드의 노드 운영 체제로 사용할 수 있습니다. AWS에서 이러한 운영 체제와의 하이브리드 노드 통합을 지원하지만 운영 체제 자체에 대한 지원은 제공하지 않습니다. 운영 체제 프로비저닝과 관리는 고객이 담당합니다.
자세히 알아보려면 Amazon EKS 사용 설명서의 EKS 하이브리드 노드 사전 조건을 참조하세요.
2. EKS 클러스터 생성 및 하이브리드 노드 활성화
Amazon EKS 콘솔로 이동하여 EKS 클러스터 생성을 시작합니다. 2단계 네트워킹 지정 화면의 하이브리드 노드를 사용하도록 원격 네트워크 구성 옵션에서 하이브리드 노드에 사용할 온프레미스 환경의 CIDR 블록 지정을 켭니다.
원격 노드 및 포드의 CIDR(Classless Inter-Domain Routing)은 RFC-1918 IPv4 IPv4 주소여야 하며, VPC CIDR 또는 EKS 클러스터 Kubernetes 서비스 CIDR과 겹칠 수 없습니다. 또한 원격 노드 CIDR과 원격 포드 CIDR은 겹칠 수 없습니다. 노드에서 웹후크를 실행하거나 포드 트래픽이 노드를 떠날 때 CNI가 포드 주소에 NAT를 사용하지 않는 경우 포드 CIDR 블록을 지정해야 합니다.
또한 AWS Comand Line Interface (AWS CLI), eksctl 및 AWS CloudFormation을 사용하여 EKS 클러스터를 생성할 수 있습니다. Amazon EKS 하이브리드 노드용 클러스터를 활성화하려면 remote-network-config
플래그를 사용하여 원격 노드 및 선택적으로 원격 포드 CIDR 블록을 지정합니다.
$ aws eks create-cluster --name channy-hybrid-cluster --region=us-east-1 \
--role-arn arn:aws:iam::012345678910:role/eks-cluster-role \
--resources-vpc-config subnetIds=subnet-1234a11a,subnet-5678b11b \
--remote-network-config \
{"remoteNodeNetworks":[{"cidrs":["10.80.0.0/16"]}],"remotePodNetworks":[{"cidrs":["10.85.0.0/16"]}]}}
클러스터는 API
또는 API_AND_CONFIG_MAP
클러스터 액세스 인증 모드로 구성되어야 합니다. EKS 하이브리드 노드 IAM 역할에 대한 Amazon EKS 액세스 항목을 생성하여 노드가 클러스터에 가입할 수 있도록 합니다.
$ aws eks create-access-entry \
--cluster-name my-hybrid-cluster \
--principal-arn arn:aws:iam::012345678910:role/eksHybridNodesRole \
--type HYBRID_LINUX
Amazon EKS 하이브리드 노드는 AWS Systems Manager 하이브리드 활성화 또는 IAM Roles Anywhere에서 프로비저닝하는 임시 IAM 자격 증명을 사용하여 EKS 클러스터에 인증합니다. 온프레미스 노드를 연결하기 전에 AWS Systems Manager 하이브리드 활성화를 생성하거나 AWS IAM Roles Anywhere에서 사용할 인증서 및 키를 노드에 추가해야 합니다. 자세히 알아보려면 Amazon EKS 사용 설명서의 EKS 하이브리드 노드에 대한 자격 증명 준비를 참조하세요.
3. 하이브리드 노드를 EKS 클러스터에 연결
이제 Amazon EKS 하이브리드 노드를 EKS 클러스터에 연결할 수 있습니다. Amazon EKS 하이브리드 노드 CLI(nodeadm
)를 사용하여 호스트를 하이브리드 노드로 설치, 구성 및 등록하는 작업을 간소화할 수 있습니다. nodeadm
은 nodeadm
설치 명령을 실행할 때 필요한 AWS Systems Manager 또는 IAM Roles Anywhere 구성 요소를 자동으로 설치합니다.
실행 중인 각 호스트에서 nodeadm
설치 프로세스를 실행하거나 운영 체제 빌드 파이프라인의 일부로 nodeadm
install을 실행하여 호스트를 EKS 클러스터에 가입시키는 데 필요한 구성 요소가 포함되어 있는 이미지를 생성할 수 있습니다.
$ nodeadm install 1.31 --credential-provider <ssm, iam-ra>
{"level":"info","ts":...,"caller":"...","msg":"Loading configuration","configSource":"file://nodeConfig.yaml"}
{"level":"info","ts":...,"caller":"...","msg":"Validating configuration"}
{"level":"info","ts":...,"caller":"...","msg":"Validating Kubernetes version","kubernetes version":"1.30"}
{"level":"info","ts":...,"caller":"...","msg":"Using Kubernetes version","kubernetes version":"1.30.0"}
{"level":"info","ts":...,"caller":"...","msg":"Installing SSM agent installer..."}
{"level":"info","ts":...,"caller":"...","msg":"Installing kubelet..."}
{"level":"info","ts":...,"caller":"...","msg":"Installing kubectl..."}
{"level":"info","ts":...,"caller":"...","msg":"Installing cni-plugins..."}
{"level":"info","ts":...,"caller":"...","msg":"Installing image credential provider..."}
{"level":"info","ts":...,"caller":"...","msg":"Installing IAM authenticator..."}
{"level":"info","ts":...,"caller":"...","msg":"Finishing up install..."}
EKS 클러스터에 연결하는 데 필요한 정보가 포함되어 있는 nodeConfig.yaml
파일을 각 호스트에 생성합니다. 다음은 AWS Systems Manager 하이브리드 활성화를 사용하는 nodeConfig.yaml
의 예입니다.
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
metadata:
name: hybrid-node
spec:
cluster:
name: my-cluster
region: us-east-1
hybrid:
roleArn: arn:aws:iam:012345678910:role/eksHybridNodesRole
ssm:
activationCode: <activation-code>
activationId: <activation-id>
이제 각 호스트에서 nodeam
을 실행합니다.
$ nodeadm init -c file:/// nodeConfig.yaml
위 명령이 성공적으로 완료되면 하이브리드 노드가 EKS 클러스터에 가입됩니다. Amazon EKS 콘솔에서 또는 kubectl get nodes
명령을 사용하여 이를 확인할 수 있습니다. 하이브리드 노드가 Ready
로 전환되기 전에 호환되는 CNI를 설치해야 합니다. 자세히 알아보려면 Amazon EKS 사용 설명서의 EKS 하이브리드 노드용 CNI 설치를 참조하세요.
4. EKS 콘솔에서 연결된 하이브리드 노드 보기 및 관리
이제 노드가 준비되었으므로 EKS 콘솔에서 하이브리드 노드와 해당 노드에서 실행 중인 리소스를 볼 수 있습니다.
고객이 하이브리드 노드를 관리하고 해당 노드가 실행하는 소프트웨어를 업데이트해야 합니다. Amazon EKS 하이브리드 노드 CLI를 최신 버전으로 업데이트하여 최신 수정 사항 및 업데이트를 가져오고 Kubernetes 버전을 업그레이드할 수 있습니다. 자세히 알아보려면 Amazon EKS 사용 설명서의 EKS 하이브리드 노드 업그레이드를 참조하세요.
정식 출시
이제 AWS GovCloud(미국) 리전 및 중국 리전을 제외한 모든 AWS 리전에서 Amazon EKS 하이브리드 노드를 사용할 수 있습니다.
선결제 약정이나 최소 요금이 없으며 EKS 클러스터 및 EKS 하이브리드 노드를 사용할 때 시간당 사용량을 지불하면 됩니다. 하이브리드 노드를 사용하는 EKS 클러스터의 시간당 비용은 표준 및 확장 지원을 위해 AWS 클라우드에서 노드를 실행하는 EKS 클러스터와 동일합니다. 또한 하이브리드 노드가 있는 EKS 클러스터에는 하이브리드 노드 vCPU당 시간 기준 요금이 부과됩니다. 자세한 내용은 Amazon EKS 요금 페이지를 참조하세요.
Amazon EKS 콘솔에서 EKS 하이브리드 노드를 사용해 보세요. 자세한 내용은 EKS 하이브리드 노드 설명서를 참조하고 피드백을 전달하려면 EKS용 AWS re:Post를 이용하거나 평소 교류하는 AWS Support 담당자를 통해 보내주세요.
— Channy