전체 글 794

EKS 스터디 - 3주차 1편 - EKS가 AWS스토리지를 다루는 원리

3주차 1편에서는 EKS가 어떻게 AWS스토리지를 사용할 수 있으며, 사용 예제를 소개합니다. EKS가 AWS스토리지를 사용하는 원리 쿠버네티스에서는 다양한 스토리지 연계를 위해 CSI 인터페이스를 제공합니다. CSI 인터페이스 덕분에 쿠버네티스에서 쉽게 스토리지(EBS, EFS 등)를 사용할 수 있습니다. 쿠버네티스 CSI 인터페이스에 맞춰 개발된 AWS CSI를 CSI 드라이버라고 부릅니다. EKS에서 EBS, EFS 등 AWS 스토리지를 다루려면 스토리지별로 AWS CSI 드라이버를 설치해야 합니다. AWS CSI드라이버 설치 방법은 EKS공식문서에 안내하고 있습니다. AWS CSI 드라이버는 크게 2개 구성요소가 있습니다. AWS API를 호출하면서 AWS 스토리지를 관리하는 CSI-Control..

연재 시리즈 2023.04.28

EKS 스터디 - 2주차 3편 - ALB Controller

이 글은 EKS에서 AWS ALB controller(AWS Load Balancer Controller)를 사용하는 방법을 설명합니다. ※ github 링크: https://github.com/choisungwook/eks-practice/tree/main/alb_controller ※ 유투브 영상: https://youtu.be/JJfin3N-43E 1. ALB controller이란? EKS에서 kubernetes spec으로 AWS NLB또는 ALB를 생성하려면 ALB controller를 설치해야합니다. ALB controller가 설치되어 있지 않으면 AWS Loadbalancer생성단계가 pending상태에 멈춥니다. ALB는 Application LoadBalancer약자가 아니라 AWS ..

연재 시리즈 2023.04.23

EKS 스터디 - 2주차 2편 - EKS POD IP는 무한대로 할당할 수 있을까?

EKS POD IP할당 한계 이전 글에 언급한거처럼, ENI가 pod IP를 관리하므로 ENI가 가질수 있는 IP개수에 제한을 받게 됩니다. 따라서, 인스턴스 유형에 따라 가질 수 있는 IP개수가 결정되고 pod개수도 같이 결정됩니다. 인스턴스타입별 IP할당 계산기 인스턴스 타입별 IP개수제한은 AWS 공식문서를 보고 직접 계산해야 합니다. 감사하게도 AWS에서 “인스턴스별로 가질 수 있는 IP개수” 계산기를 제공합니다. curl -o max-pods-calculator.sh https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/files/max-pods-calculator.sh chmod +x max-pods-calculator.sh ./ma..

연재 시리즈 2023.04.19

EKS 스터디 - 2주차 1편 - EKS는 어떤 CNI를 사용할까?

EKS는 어떤 CNI를 사용할까? 쿠버네티스에서는 pod 네트워크 설정과 통신을 CNI에게 위임하고 있습니다. AWS는 VPC CNI를 개발하였고 EKS 네트워크에 적용했습니다. VPC CNI덕분에 쿠버네티스가 VPC기능(security group, vpc flow 등)을 사용할 수 있습니다. EKS가 설치되면 VPC CNI POD가 자동으로 생성됩니다. 모든 노드에 VPC CNI를 설치하기 위해 쿠버네티스 Daemonset으로 생성되고 이름은 aws-node입니다. kubectl -n kube-system get ds aws-node CNI 버전은 컨테이너 이미지 태글르 참조하시면 됩니다. 아래 예제는 1.11.4버전을 사용합니다. kubectl describe daemonset aws-node --n..

연재 시리즈 2023.04.18

EKS 스터디 - 1주차 3편 - eksctl로 EKS생성

1. eksctl란? AWS에서 공식으로 지원하는 eks관리 CLI입니다. kubectl처럼 eks를 관리하고 싶으신 분들에게 매우 좋습니다. eksctl의 단점은 eks만 관리합니다. aws다른 리소스를 관리하지 못합니다. 개인적으로 eks에 익숙하지 않으면, eksctl로 eks를 관리하는 것이 매우 좋은 선택인 것 같습니다. 2. 준비 2.1 eksctl 설치 eksctl은 실행파일로 제공됩니다. 공식문서에서 제공해준 명령어 그대로 입력하면 실행파일 다운로드 받습니다. 출처: https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/eksctl.html # linux기준 curl --silent --location "https://github.com/weav..

연재 시리즈 2023.04.16

EKS 스터디 - 1주차 2편 EKS를 생성하는 도구 소개

EKS를 생성하는 방법은 매우 다양합니다. AWS console AWS console에서 직접 EKS를 생성하는 방법입니다. 가장 쉽게 EKS를 관리하는 방법입니다. console로 직접 작업을 하기 때문에 히스토리를 추적하기 어렵습니다. 또한, EKS구성을 확인하려면 일일이 console에서 전부 확인해야 합니다. EKSCTL kubectl처럼 EKS를 조작할 수 있는 CLI입니다. EKS공식문서도 eksctl를 제공하기 때문에 CLI로 관리하고 싶으신 분들에게 추천드립니다. git과 연동을 하면 히스토리 관리도 할 수 있지만 의무사항이 아니기 때문에 누군가 지키지 않으면 히스토리 추적하기가 어렵습니다. EKSCTL의 또다른 단점은 EKS에 특화되어 있습니다. EKS와 연관되어 있지 않은 AWS리소스는..

연재 시리즈 2023.04.15

EKS 스터디 - 1주차 1편 EKS란?

EKS란? EKS는 AWS Managed Kubernetes입니다. AWS가 쿠버네티스 클러스터를 생성하고 수정, 삭제를 전부 담당하므로 “Managed”라는 키워드가 있습니다. 사용자는 비용을 지불하고 비지니스 로직을 쿠버네티스로 어떻게 관리할까만 고민하면 됩니다. 쿠버네티스만 아는 사람이 바라보는 EKS 쿠버네티스를 직접 설치하는 것과 EKS를 사용하는 것은 2가지 차이가 있습니다. 쿠버네티스가 AWS환경에서 실행된다. control-plane은 AWS가 직접 관리한다. AWS에 쿠버네티스에 동작하기 때문에 쿠버네티스는 AWS리소스가 활용됩니다. 워커노드는 EC2 Instance 또는 Fargate를 사용하고 네트워크는 VPC영향을 받습니다. LoadBalancer타입 서비스를 생성하면 AWS ELB..

연재 시리즈 2023.04.15

실수를 꾸준히 개선하는 관점으로 해석한 아이어맨

이번주 매우 인상깊은 영화 리뷰를 봤습니다. 빨간도깨비 영화 유투브 채널에서 리뷰한 영상입니다. 마블영화에서 보여준 아이언맨을 매우 인상깊게 해석했습니다. 빨강도깨비님은 아이언맨 다음 시리즈에서 등장한 기술은 이전 영화에서 실수 또는 부족한점을 개선한 기술라고 해석했습니다. 마블영화를 볼 때 아무 생각없이 봤었는데, 실수개선이라고 생각하고 보니 본받을 점이 많은 캐릭터라고 느꼈습니다. https://youtu.be/xjtnEBt73AY

일상생활 2023.04.09

pkos 스터디 5주차 6편 - securityContext.allowPrivilegeEscalation

5주차 여섯번째 주제는 pod securityContext.allowPrivilegeEscalation입니다. allowPrivilegeEscalation이란? allowPrivilegeEscalation은 컨테이너가 실행 된 후, 컨테이너 유저 권한보다 높은 권한을 제어합니다. 공식문서 allowPrivilegeEscalation설명을 보면 부모 프로세스보다 높은 권한을 얻는 것을 제어한다고 되어 있습니다. 컨테이너에서 부모(최초) 프로세스는 entrypoint로 실행된 프로세스입니다. entrypoint는 Dockerfile에서 USER로 설정된 사용자로 실행됩니다. 결국, 컨테이너 유저보다 높은 권한을 제어한다는 의미와 같습니다. 예제 예제는 allowPrivilegeEscalation를 false..

연재 시리즈 2023.04.08

pkos 스터디 5주차 5편 - securityContext.readOnlyRootFilesystem

5주차 다섯번째 주제는 pod securityContext.capability입니다. readOnlyRootFilesystem이란? 쿠버네티스 컨테이너 내부 파일을 수정하지 못하게 하려면 어떻게 해야할까요? 파일 읽기권한만 설정하면 됩니다. 쿠버네티스에서 파일읽기권한만 설정하는 것을 readOnlyRootFilesystem이라고 합니다. securitycontext.readOnlyRootFilesystem필드에 bool값으로 설정할 수 있습니다. apiVersion: v1 kind: Pod metadata: name: rootfile-readonly spec: containers: - name: busybox image: busybox command: ["tail"] args: ["-f", "/dev/n..

연재 시리즈 2023.04.08