EKS란?
EKS는 AWS Managed Kubernetes입니다. AWS가 쿠버네티스 클러스터를 생성하고 수정, 삭제를 전부 담당하므로 “Managed”라는 키워드가 있습니다. 사용자는 비용을 지불하고 비지니스 로직을 쿠버네티스로 어떻게 관리할까만 고민하면 됩니다.
쿠버네티스만 아는 사람이 바라보는 EKS
쿠버네티스를 직접 설치하는 것과 EKS를 사용하는 것은 2가지 차이가 있습니다.
- 쿠버네티스가 AWS환경에서 실행된다.
- control-plane은 AWS가 직접 관리한다.
AWS에 쿠버네티스에 동작하기 때문에 쿠버네티스는 AWS리소스가 활용됩니다. 워커노드는 EC2 Instance 또는 Fargate를 사용하고 네트워크는 VPC영향을 받습니다. LoadBalancer타입 서비스를 생성하면 AWS ELB를 사용하고 Ingress를 사용하면 도메인은 AWS Route53을 사용합니다.
그리고 쿠버네티스 control-plane을 직접 AWS가 관리합니다. 따라서 사용자가 control-plane 세부 파라미터를 설정하는 것을 불가능합니다.
입문자가 바라보는 EKS
EKS를 처음 첩했을 때, 저처럼 입문자가 알고 가면 좋은 핵심을 정리했습니다.
네트워크 관점 EKS
EKS를 생성하면 control-plane은 AWS가 직접 관리합니다. 네트워크 관점에서 다르게 해석하면 EKS가 위치한 AWS VPC는 AWS가 스스로 관리합니다.
public EKS vs private EKS
첫 번째는 public EKS, private EKS입니다. public과 private선택은 EKS생성과정에 필수선택입니다. public과 private의 차이는 kubernetes API접근 방식차이입니다. 이 내용은 “eks-best-practice”문서에 자세히 설명되어 있습니다.
public EKS는 kubernetes API가 외부에서 호출할 수 있습니다. 주소만 알면 외부에서 호출할 수 있는 장점이 있습니다. 하지만 누구나 접글할 수 있기 때문에 보안에 취약하다는 치명적인 단점이 있습니다. 그리고 워커노드가 kubernetes API접근하기 위해 외부망을 사용하므로 네트워크 비용이 발생합니다.
반대로 private EKS는 외부에서 kubernetes API를 접근하지 못합니다. 워커노드는 AWS 내부망을 이용하여 내부통신을 합니다.
Managed node group
EKS 워커노드는 EC2 인스턴스 또는 Fargate로 생성할 수 있습니다. EC2 Instance로 워커노드를 사용할 경우 Managed node group 또는 Self Managed nodes를 선택해야 합니다. 입문자가 EKS를 사용한다면 Manage node group을 많이 사용합니다.
Managed node group은 사용자가 생성할 때만 옵션을 설정하고 이후 과정은 AWS가 자동으로 관리한다는 의미입니다. 그래서 Managed라는 키워드가 붙었습니다. 기술로 풀이하면 Auto scaling group으로 EC2 인스턴스가 관리됩니다.
'연재 시리즈' 카테고리의 다른 글
EKS 스터디 - 1주차 3편 - eksctl로 EKS생성 (0) | 2023.04.16 |
---|---|
EKS 스터디 - 1주차 2편 EKS를 생성하는 도구 소개 (0) | 2023.04.15 |
pkos 스터디 5주차 6편 - securityContext.allowPrivilegeEscalation (0) | 2023.04.08 |
pkos 스터디 5주차 5편 - securityContext.readOnlyRootFilesystem (0) | 2023.04.08 |
pkos 스터디 5주차 4편 - securityContext.capability (0) | 2023.04.07 |