본문 바로가기

Kubernetes16

7주차 1편 EKS CI/CD - Docker, Jenkin Docker 웹 서버 도커 이미지 생성 후 도커 컨테이너 실행 Dockerfile 파일 생성 # ubuntu 이미지 다운로드 docker pull ubuntu:20.04 docker images # Dockerfile 파일 생성 vi Dockerfile FROM ubuntu:20.04 ENV TZ=Asia/Seoul VERSION=1.0.0 NICK= RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && \ sed -i 's/archive.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list && \ sed -i 's/security.ubuntu.com/mirror.kak.. 2024. 4. 21.
6주차 1편 EKS Security - EKS 인증/인가, IRSA, Pod Identity K8S 인증/인가 K8S(API 접근) 인증/인가 API 서버 사용 : kubectl(config, 다수 클러스터 관리 가능), 서비스 어카운트, https(x.509 Client Certs) API 서버 접근 과정 : 인증 → 인가 → Admission Control(API 요청 검증, 필요 시 변형 - 예. ResourceQuota, LimitRange) 인증(Authentication) X.509 Client Certs : kubeconfig 에 CA crt(발급 기관 인증서) , Client crt(클라이언트 인증서) , Client key(클라이언트 개인키) 를 통해 인증 kubectl : 여러 클러스터(kubeconfig)를 관리 가능 - contexts 에 클러스터와 유저 및 인증서/키 참고.. 2024. 4. 14.
5주차 2편 EKS Autoscaling - Karpenter Karpenter : K8S Native AutoScaler Karpenter 소개 Karpenter는 Kubernetes 네이티브 오토 스케일러로, 몇 초 만에 컴퓨팅 리소스를 제공하는 오픈 소스 노드 수명 주기 관리 솔루션입니다. Karpenter는 클라우드 제공 업체와 연동하여 클러스터에 필요한 노드를 자동으로 프로비저닝하고 관리하여 사용자가 리소스를 신속하게 확장하고 축소할 수 있도록 지원합니다. 작동 방식: 모니터링 후 스케줄링되지 않은 Pod이나 빈 노드를 감지하여 필요에 따라 Pod을 생성하거나 노드를 제거합니다. Provisioning: 새로운 Pod이나 노드를 생성합니다. Deprovisioning: 비어 있는 노드를 제거합니다. Provisioner CRD: 시작 템플릿 없이 대부분의 .. 2024. 4. 7.
5주차 1편 EKS Autoscaling - HPA/KEDA, VPA, CA, CPA 개요 Auto Scaling은 클라우드 환경에서 자원 확장 또는 축소를 자동화하여 시스템의 성능을 최적화하는 기술입니다. 이것은 리소스 사용량에 따라 자동으로 인프라 리소스를 조절하여 애플리케이션의 가용성을 유지하고, 비용을 최소화하는 데 사용됩니다. K8S에서는 여러 가지 Auto Scaling 메커니즘이 제공됩니다. HPA - Horizontal Pod Autoscaler Horizontal Pod Autoscaler 소개 HPA는 애플리케이션의 CPU 사용량, 메모리 사용량 등의 지표를 기반으로 파드 수를 자동으로 확장 또는 축소합니다. 이것은 파드 수를 조정하여 애플리케이션의 부하에 따라 자동으로 스케일링될 수 있게 합니다. HPA 아키텍처 cAdvisor: cAdvisor는 각 노드에서 실행되는.. 2024. 4. 7.