안녕하세요!
오늘은 AWS EKS에 대하여 알려드리고자 합니다!
Amazon Elastic Kubernetes Service(Amazon EKS)는 자체 Kubernetes 컨트롤 플레인 또는 노드를 설치, 운영 및 유지 관리할 필요 없이 AWS의 쿠버네티스 실행에 사용할 수 있는 관리형 서비스입니다.
쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하기 위한 오픈 소스 시스템입니다.
여러 AWS 가용 영역에 걸쳐 Kubernetes 컨트롤 플레인을 실행하고 크기를 조정하여 높은 가용성을 보장합니다.
하중에 따라 제어 영역 인스턴스의 크기를 자동으로 조정하고, 비정상 제어 영역 인스턴스를 감지하고 교체하며, 자동화된 버전 업데이트 및 패치를 제공합니다.
또한 여러 AWS 서비스와 통합되어 다음 기능을 포함한 애플리케이션에 대한 확장성과 보안을 제공합니다.
컨테이너 이미지에 대한 Amazon ECR
로드 분산을 위한 Elastic Load Balancing
인증용 IAM
격리를 위한 Amazon VPC
오픈 소스 Kubernetes 소프트웨어의 최신 버전을 실행하므로 Kubernetes 커뮤니티에서 모든 기존 플러그 인과 도구를 사용할 수 있습니다.
즉, 필요한 코드를 수정하지 않고 표준 Kubernetes 애플리케이션을 Amazon EKS로 쉽게 마이그레이션할 수 있습니다.
Amazon EKS 제어 영역 아키텍처
Amazon EKS 는 각 클러스터에 대해 단일 테넌트 Kubernetes 컨트롤 플레인을 실행합니다.
컨트롤 플레인 인프라는 클러스터 또는 AWS 계정 간에 공유되지 않습니다.
제어 플레인은 2개 이상의 API 서버 인스턴스와 AWS 리전 내 3개의 가용 영역에서 실행되는 3개의 etcd 인스턴스로 구성됩니다.
Amazon EKS는 Amazon VPC 네트워크 정책을 사용하여 제어 영역 구성 요소 간의 트래픽을 단일 클러스터 내로 제한합니다.
클러스터에 대한 컨트롤 플레인 구성 요소는 Kubernetes RBAC 정책에 따라 권한을 부여받지 않은 경우 다른 클러스터 또는 다른 AWS 계정의 통신을 보거나 수신할 수 없습니다.
Amazon EKS 동작방식은 다음과 같습니다.
- AWS Management Console 또는 AWS CLI를 사용하거나 AWS SDK를 사용하여 Amazon EKS를 생성합니다.
- 관리형 또는 자체 관리형 Amazon EC2 노드를 실행하거나 워크로드를 AWS Fargate에 배포합니다.
- 클러스터가 준비되면 원하는 Kubernetes 도구(예: kubectl)를 구성하여 클러스터와 통신할 수 있습니다.
- 다른 Kubernetes 환경에서와 마찬가지로 Amazon EKS 클러스터에 워크로드를 배포 및 관리합니다. AWS Management Console을 사용하여 노드 및 워크로드에 대한 정보를 볼 수도 있습니다.
EKS를 시작하기 위해서는 kubectl을 설치해야 하며, 설치 순서는 다음과 같습니다.
- 디바이스에 이미 kubectl이 설치되어 있는지 확인합니다.
kubectl version | grep Client | cut -d : -f 5
-
Linux에 kubectl을 설치하거나 업데이트하려면 다음을 수행합니다.
curl -o kubectl https://s3.us-west-2.amazonaws.com/amazon-eks/1.23.7/2022-06-29/bin/linux/amd64/kubectl
3. 다운로드한 바이너리에 대해 SHA-256 합계를 확인합니다.
openssl sha1 -sha256 kubectl
4.kubectl을 설치한 이후 다음 명령을 사용하여 버전을 확인할 수 있습니다.
kubectl version --short --client
댓글