eks
-
Cluster Autoscaler (CA)CloudEngineering (AWS)/EKS 2021. 12. 3. 11:32
AWS EKS를 사용 중에 있으니, 리소스가 부족하면 자동확장이 되는 것이 맞죠?라는 질문을 받았다. 아니다. EKS 클러스터는 클러스터 내부의 상황에 자동으로 대처해주지 않는다. 이전 글에서 노드 그룹에는 pod 수에 제한이 있다고 했다. pod 수가 초과되어 스케줄링되지 못한 상황과 클러스터에 CPU / Memory 자원이 부족하여 pending상태일 경우 이럴 때는 여분의 노드가 필요할 것이다. Cluster Autoscaler - Amazon EKS Cluster Autoscaler Kubernetes Cluster Autoscaler는 포드가 실패하거나 다른 노드로 다시 예약될 때 클러스터의 노드 수를 자동으로 조정합니다. Cluster Autoscaler는 일반적으로 클러스터에 배포로 설치됩니..
-
EKS 환경에서 kubeconfig 적용하기CloudEngineering (AWS)/EKS 2021. 11. 5. 21:24
개요 EKS의 사용률이 높아지면서 운영자의 입장에서는 그만큼 관리해야 할 클러스터가 많아질 것이다. EKS 기본 환경 Setting부터 여러 개의 클러스터 접근 방법에 대해 알아보려 한다. 쿠버네티스는 kubectl에 대한 인증정보를 kubeconfig라는 yaml파일에 저장한다. EKS 클러스터는 어떻게 접근을 하는지, 어떻게 인증을 받아오는지 알아보자. Kubeconfig EKS 클러스터에 접근 가능한 kubeconfig파일을 생성하는 것은 간단하다. aws command 한 줄이면 인증 정보를 kubeconfig 파일에 저장할 수 있다. aws eks --region update-kubeconfig --name EKS에 인증을 받아오는 구조는 어떤 방식일까? EKS 클러스터의 세부 정보 탭에 API..
-
Custom AMI 로 EKS NodeGroup 배포CloudEngineering (AWS)/EKS 2021. 9. 4. 16:15
개요 EKS NodeGroup에 Custom AMI를 배포하는 법을 알아보겠다. EKS NodeGroup 즉, EC2에 각 보안 요소를 적용하거나 에이전트를 설치하여 Golden Image로 운영을 필요로 하는 분들이 많을 것이다. EKS NodeGroup은 기본적으로 AutoScaling이 적용되어 있기 때문에 서버가 Scale IN/OUT 될 때마다 보안 요소를 적용하고 에이전트를 일일이 설치할 수는 없을 것이다. Custom AMI 생성 노드 그룹에 적용할 Custom AMI는 EKS가 운영되는 클러스터의 버전에 맞는 이미지를 기반으로 생성해야한다. 또한, EKS 클러스터는 주기적으로 버전 업그레이드가 필요하다. 이때 노드 그룹(Data Plane) 또한 버전을 함께 변경해 줘야 한다. Custom..
-
EKS 환경에서 RBAC 적용하기CloudEngineering (AWS)/EKS 2021. 7. 21. 17:44
개요 EKS는 사용자가 IAM 사용자를 인증받아 대상 클러스터에 kubectl 명령어로 접근할 수 있도록 설정한다. 하지만 이 IAM은 정책 기반으로 AWS 서비스에 대한 접근 제어만 가능할 것이다. kubernetes의 리소스를 제한하고 싶을 경우에는 어떻게 해야 할까? Cluster 인증 EKS Cluster에 인증받는 순서가 아래 그림에 아주 자세하게 나와있다. 그림을 보고 테스트를 따라 해 본다면 쉽게 이해가 갈 것이다. 요약하자면 IAM과 kubernetes의 user 혹은 group을 aws-auth의 ConfigMap과 묶어 인증받는 순서이다. 같이 적용해 보도록 하자. AWS는 EKS 클러스터를 생성할 때의 IAM을 클러스터 master 계정으로 생성한다. master 계정 외에 다른 계정..
-
EKS Pod 수 제한CloudEngineering (AWS)/EKS 2021. 7. 16. 20:55
개요 "DaemonSet을 배포하다가 FailedScheduling 이벤트가 발생해서 보니까, 몇몇 노드에 Pod 생성 갯수 제한이 낮게 설정되어 있는데 확인 좀 부탁드립니다." 라는 문의가 들어왔다. 확인 해 보자. Network 확인 우선 EKS에 구성된 Subnet의 이용가능한 IP를 확인했을 때 충분한 여유를 가지고있었다. 그럼 EKS가 IP를 제한하는 부분이 따로 있을까? 포드 네트워킹(CNI) - Amazon EKS CNI 플러그인 버전 1.7.0 이상을 사용하고 있고 사용자 정의 포드 보안 정책을aws-node에 사용되는 Kubernetes 서비스 계정aws-node포드가 배포된 경우 정책에NET_ADMIN에서allowedCapabilities섹션과 함께hostNetwor docs.aws.a..
-
EKS API Endpoint 외부 접근CloudEngineering (AWS)/EKS 2021. 7. 11. 18:19
개요 특정 고객사에서 이런 문의가 들어왔다. "우리 EKS SG가 보안적으로 잘 설정되어 있는건가요? 외부에서 kubectl로 접근이 제한된 상태인가요?" 나도 이부분이 항상 궁금했다. 분명 cluster SG에는 외부 IP가 허용되어있지 않은데 어떻게 내 PC에서 kubectl명령어가 먹는거지? 함께 확인 해 보자. 일단, EKS 네트워킹 설정을 보자. API 서버 엔드포인트 엑세스가 퍼블릭 및 프라이빗으로 설정되어있다. 음... 뭐 퍼블릭 및 프라이빗이니까 외부 통신이 가능한건 알겠는데... SG에서 외부 IP에 대한 허용 규칙을 만들어야 접근이 가능해야 하는거 아닌가? 나만 이런 생각이 들은건가? 테스트 해보자. Resolve 테스트 일단 같은 VPC 안에 있는 서버에서 API 서버 엔드포인트가 내..