EKS 14

EKS Node의 최대 Pod 수 - Security Groups per Pod 사용 시

개요Security Groups per Pod 사용 시 EKS 노드에 설정되는 최대 pod 수가 달라지는 부분에 대해 설명합니다.Security Groups Per Pod(sgpp)해당 기능은 pod에서 노드의 sg를 사용하지 않고, pod 개별로 sg를 설정하여 사용할 수 있는 기능입니다.VPC CNI에서 ENABLE_POD_ENI=true 설정을 추가하여 사용할 수 있습니다.ENABLE_POD_ENI=true 설정을 추가하면, 노드에는 하나의 Trunk ENI가 생성되고, pod가 생성될 때마다 Branch ENI가 생성되어 Trunk ENI와 연결됩니다.Branch ENI에 pod의 sg가 설정됩니다. 참고로, Trunk ENI는 EC2에 추가할 수 있는 최대 ENI 수에 포함됩니다(참고). 그리고..

Kubernetes 2024.11.18

Amazon EKS VPC CNI + AWS LB Controller 사용 시 설정 별 통신 흐름

가시다님의 Kubernetes Advanced Networking Study에 참여하게 되어, 스터디 때 다룬 주제를 정리하려고 합니다.9주차는 VPC CNI + AWS LB Controller를 주제로 진행되었습니다.이번 글에서는 VPC CNI와 AWS LB Controller를 함께 사용할 때 서비스 접근 시 통신 흐름에 대해 살펴보려 합니다. 실습 환경EKS 클러스터 생성# YAML 파일 다운로드curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/kans/eks-oneclick.yaml# CloudFormation 스택 배포# aws cloudformation deploy --template-file eks-one..

[6주차] EKS Security

이번 주는 EKS 에서의 인증/인가에 대해 알아봤습니다. 인증 누가 접근하고 있는가? 인가 무엇을 할 수 있는가?(권한) EKS에서의 인증/인가 EKS에서 인증/인가는 각각 다른 방식으로 처리가 됩니다. 인증 - IAM 클러스터를 생성하고나면 aws-auth configmap이 자동으로 생성된 것을 확인할 수 있습니다. $ kubectl get cm aws-auth -n kube-system -oyaml apiVersion: v1 data: mapRoles: | - rolearn: arn:aws:iam::111122223333:role/[NodeGroup IAM role명] username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrapper..

[5주차] EKS Autoscaling

이번 주는 EKS를 조금 더 유연하게 사용할 수 있는 scaling 방법에 대해 알아보았습니다. EKS에서 scaling 대상은 node와 pod가 있습니다. 각각 어떤 솔루션이 있는지 살펴보겠습니다. 실습 시 제일 하단에 있는 '사전 설치 툴'을 설치한 뒤 진행이 필요합니다. Node Cluster Autoscaler - metric server에서 제공하는 metric을 기반으로 노드그룹의 ASG 수를 조정합니다. - pending 상태인 pod가 생기면 노드 수를 늘리고 사용량이 낮다면 노드 수를 줄입니다. Cluster Autoscaler 설치 설치 전에 먼저 nodegroup의 ASG 최대값을 조정합니다. $ export ASG_NAME=$(aws autoscaling describe-auto..

[4주차] EKS Observability

이번주는 EKS Observability를 주제로 로깅, 메트릭, 기타 가시화를 위한 툴에 대해 알아보았습니다. Logging kubernetes에서 로깅은 EFK/ELK 스택을 주로 사용합니다. 이는 로그 데이터의 인덱싱과 검색을 담당하는 Elasticsearch, 데이터를 수집하고 필터링 및 변환하는 fluentd/fluentbit 또는 logstash, 데이터의 시각화를 담당하는 Kibana로 이루어져 있습니다. EFK 설치는 이전 글을 참고하시면 됩니다. 하지만 EKS에서는 fluentbit과 CloudWatch를 사용하는 Container Insights를 통해서도 로그 수집이 가능합니다. 이는 조금 뒤에 자세히 살펴보겠습니다. Metric Prometheus 프로메테우스는 대표적인 모니터링 솔..

[3주차] EKS Storage

이번 주는 EKS에서 Storage 관련 내용과 노드 그룹을 추가하는 방법을 알아봤습니다. EKS Storage EKS에서는 Amazon CSI driver를 통해 스토리지 볼륨을 생성하고 관리합니다. 먼저 CSI에 대해 알아보겠습니다. CSI(Container Storage Interface) CSI는 storage 벤더가 여러 컨테이너 오케스트레이션 시스템에서 동작하는 플러그인을 개발하기 위한 표준(인터페이스)을 정의합니다. 다음과 같은 API를 정의합니다. (참고) 볼륨의 동적 프로비저닝 및 해제 노드에 볼륨 부착 및 해제 / mount 및 umount 볼륨 스냅샷 생성 및 삭제 스냅샷으로부터 신규 볼륨 생성 등 CSI driver CSI 표준을 따라 구현하여 실제 스토리지 시스템과 kubernet..

EKS에서 볼륨 snapscheduler 설치하기

VolumeSnapshot을 주기적으로 생성할 수 있는 방법을 검색하던 도중 snapscheduler라는 프로젝트를 발견했습니다. helm으로 간단하게 설치가 가능해서 실제로 잘 동작하는지 실습을 통해 알아봤습니다. 해당 실습 전에 Volume Snapshots Controller가 클러스터에 설치가 되어 있어야 합니다. 설치 과정은 이전 포스팅에 정리해 두었습니다. 설치 $ helm repo add backube https://backube.github.io/helm-charts/ $ kubectl create namespace backube-snapscheduler $ helm install -n backube-snapscheduler snapscheduler backube/snapscheduler ..

EKS에서 pvc로 생성한 ebs에 태그 추가하기

EKS에서 pvc로 생성한 ebs에 원하는 태그를 추가할 수 있는지 확인해보겠습니다. 참고 문서에 작성된 내용을 기반으로 실습을 해보겠습니다. 문서에 따르면 EBS CSI Driver 1.6.0 이상 부터 custom tag 추가가 가능합니다. 먼저 add on 버전을 확인해보겠습니다. eksctl get addon --cluster ${CLUSTER_NAME} 2023-05-09 22:28:20 [ℹ] Kubernetes version "1.24" in use by cluster "myeks" 2023-05-09 22:28:20 [ℹ] getting all addons 2023-05-09 22:28:22 [ℹ] to see issues for an addon run `eksctl get addon --..

[2주차] EKS Networking

Amazon VPC CNI란? Amazon VPC Container Network Interface의 약자로 Pod가 VPC 네트워크의 IP를 사용할 수 있게 해주는 플러그인입니다. 또한, Pod 안의 컨테이너들이 network namespace를 공유하여 local port를 통해 통신할 수 있게 합니다. VPC CNI는 EKS add-on으로 제공되며 모든 노드에서 실행이 필요하므로 aws-node 라는 DaemonSet이 배포됩니다. EKS 클러스터 생성 시 기본적으로 설치되지만, 최신 버전을 사용하기 위해서는 별도로 설치가 필요합니다. 구성 요소 CNI Binary Pod network를 구성하여 Pod간 통신을 가능하게 함 노드의 root 파일 시스템에서 실행되며, Pod가 추가되거나 노드에서 ..

[1주차] EKS 설치 및 기본 사용

좋은 기회로 EKS 워크샵 스터디에 참여해서 전체 과정과 과제를 남겨보려고 합니다. 1주차 주제 EKS 아키텍처 Public/Private endpoint 사용 별 Cluster endpoint로의 접근 방식 Control Plane Data Plane 통신 경로 클러스터 생성 실습 CloudFormation을 통한 bastion host, VPC 배포 eksctl cli를 사용한 클러스터 생성 EKS 아키텍처 EKS Cluster 생성 시 Managed VPC에 Control Plane이 배포되고 통신을 위한 eni가 설정한 VPC의 각 subnet에 생성됩니다. EKS API server endpoint(NLB)에 연결하여 kubectl 명령어를 수행할 수 있습니다. EKS Control Plane은..

반응형