본문 바로가기

전체 글137

8주차 1편 EKS IaC - Terraform, HCL TerraformTerraform 소개테라폼(terraform)은 인프라스트럭처를 코드로 관리하고 자동화하기 위한 오픈 소스 도구입니다. 이를 통해 클라우드 서비스의 인프라스트럭처를 프로그래밍 방식으로 정의하고 배포할 수 있습니다.테라폼을 사용하면 가상 머신, 컨테이너, 네트워크, 스토리지 등과 같은 다양한 클라우드 리소스를 쉽게 관리할 수 있습니다.테라폼은 인프라스트럭처의 상태를 추적하고 변경사항을 관리하여 인프라를 일관되고 안정적으로 유지할 수 있도록 도와줍니다. 이는 개발자나 시스템 관리자가 손쉽게 인프라를 관리하고 확장할 수 있게 해줍니다. 실습 환경 준비테라폼 설치 및 확인wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor .. 2024. 4. 28.
7주차 2편 EKS CI/CD - Jenkins with Kubernetes, Argo Jenkins with Kubernetes Jenkins 에서 k8s 사용을 위한 사전 준비 # root 계정에서 아래 복사 실행 cp ~/.kube/config /var/lib/jenkins/.kube/config chown jenkins:jenkins /var/lib/jenkins/.kube/config # jenkins 사용자에서 aws eks 사용(sts 호출 등)을 위한 자격증명 설정 aws configure AWS Access Key ID [None]: AKIA5ILF2### AWS Secret Access Key [None]: ### Default region name [None]: ap-northeast-2 # jenkins 사용자에서 kubectl 명령어 사용 확인 kubectl get .. 2024. 4. 21.
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.
4주차 1편 EKS Observability - Grafana, Loki GrafanaTSDB 데이터를 시각화하고, 다양한 데이터 형식 지원합니다.(메트릭, 로그, 트레이스 등)그라파나는 시각화 솔루션으로 데이터 자체를 저장하지는 않습니다. → 현재 실습 환경에서는 데이터 소스는 프로메테우스를 사용접속 정보 확인 및 로그인 : 기본 계정 : admin / 비밀번호 : prom-operator기본 대시보드 확인1. Search dashboards : 대시보드 검색2. Starred : 즐겨찾기 대시보드3. Dashboards : 대시보드 전체 목록 확인4. Explore : 쿼리 언어 PromQL를 이용해 메트릭 정보를 그래프 형태로 탐색5. Alerting : 경고, 에러 발생 시 사용자에게 경고를 전달6. Connections : 설정, 예) 데이터 소스 설정 등7. Adm.. 2024. 3. 31.
4주차 1편 EKS Observability - Prometheus 1. Logging in EKS Amazon EKS 컨트롤 플레인 로깅 Amazon EKS 컨트롤 플레인에서 CloudWatch Logs로 감사 및 진단 로그를 직접 제공합니다. 필요한 로그 유형을 선택할 수 있으며, 로그는 CloudWatch의 각 Amazon EKS 클러스터 그룹 로그 스트림으로 전송됩니다. Default 서정은 비활성화 사용할 수 있는 클러스터 컨트롤 플레인 로그 유형 - API 서버(api), 감사(audit), 인증자(authenticator), 컨트롤러 관리자(controllerManager), 스케줄러(scheduler) 로깅 활성화 # 모든 로깅 활성화 aws eks update-cluster-config --region $AWS_DEFAULT_REGION --name $C.. 2024. 3. 31.