eks

· AWS
ArgoCD Image Updater는 Kubernetes 워크로드와 함께 배포된 컨테이너 이미지의 새 버전을 확인하고, ArgoCD를 사용하여 허용되는 최신 버전으로 자동 업데이트 할 수 있습니다. 오늘은 ECR을 활용하여 ArgoCD Image Updater를 사용해봅시다. 사전 준비 ECR에 새로운 Repository를 만들고, 1.0.0 태그를 가진 이미지를 Push합니다. Kubernetes 리소스 yaml이 위치할 CodeCommit Repository도 하나 생성합니다. ArgoCD 설치 애플리케이션 배포 및 관리를 자동화하는 ArgoCD를 먼저 설치해줍니다. 오늘은 Helm으로 설치하겠습니다. values.yaml을 먼저 준비해줍니다. configs: params: server.insecu..
· AWS
전에 AWS Load Balancer Controller에 대해 소개드린 적이 있습니다. AWS Load Balancer Controller를 이용해 ALB를 생성하면 기본적으로 HTTP 리스너를 사용합니다. 더 보안적인 HTTPS 리스너를 사용하려면 추가적인 설정이 필요합니다. 준비 EKS - AWS Load Balancer Controller 실습에서 ALB 생성까지 진행합니다. https://arcozz.tistory.com/14 [AWS] EKS - AWS Load Balancer Controller EKS에서 Service를 생성할 때마다 외부 트래픽을 받기 위해 ALB나 NLB를 생성해야 합니다. 이것은 매우 귀찮은 일이고, AWS WAF 같은 리소스가 추가로 붙으면 더 까다로워질 것입니다. ..
· AWS
EKS에서 Service를 생성할 때마다 외부 트래픽을 받기 위해 ALB나 NLB를 생성해야 합니다. 이것은 매우 귀찮은 일이고, AWS WAF 같은 리소스가 추가로 붙으면 더 까다로워질 것입니다. 이것을 해결하기 위해 AWS Load Balancer Controller가 나왔습니다. AWS Load Balancer Controller는 EKS 클러스터의 Elastic Load Balancer 관리를 돕는 Controller입니다. Ingress를 통하여 ALB, Service를 통하여 NLB를 생성할 수 있습니다. 쿠버네티스 리소스를 이용해 ELB를 생성하므로 yaml 파일로 생성과 제거가 가능하여 관리또한 쉬워집니다. 오늘은 AWS Load Balancer Controller를 설치하고, ALB와 N..
· AWS
이전에는 Node 확장을 위해 Cluster Autoscaler을 사용했습니다. 그러나 Cluster Autoscaler는 AutoScaling Group을 통해 Node를 확장합니다. Pod의 Pending 상태를 확인하고, ASG의 Desired Capacity 값을 늘려 Node를 확장하는데는 많은 시간이 걸립니다. 또한, 워크로드별 인스턴스 요구사항이 다를 경우 여러 ASG를 운영해야 하기 때문에 운영 부담이 늘어납니다. 이러한 Cluster Autoscaler의 문제점을 해결하기 위해 Karpenter가 등장했습니다. Karpenter는 ASG에 의존하지 않고, EC2 Instance를 즉시 실행시켜 신속하게 Node를 확장시킬 수 있습니다. Provisioner을 설정해 워크로드별 인스턴스 요..
· AWS
EC2 인스턴스 메타데이터는 EC2 인스턴스에 대한 설정이나 정보를 가지는 데이터입니다. 인스턴스 메타데이터를 이용하여 User Data Script를 실행시키거나 IAM Role 권한을 적용시킬 수 있습니다. EKS에서 Node Group으로 EC2를 사용할 때도 Launch Template을 이용하여 메타데이터에 대한 설정을 할 수 있습니다. 오늘은 메타데이터에 대한 설정을 살펴보고 보안을 고려했을 때 어떤 설정이 더 나은 설정인지 탐구해봅시다. 1. IMDS Version 인스턴스 메타데이터 서비스(IMDS)는 버전이 1, 2가 있습니다. IMDSv1은 요청/응답 형식으로 메타데이터를 제공합니다. http://169.254.169.254로 접근하여 메타데이터를 얻을 수 있습니다. 쉽게 접근할 수 있..
· AWS
ArgoCD는 GitOps를 구현하기 위한 도구 중 하나로 쿠버네티스를 위한 CD 툴이라고 할 수 있습니다. Git Repository의 특정 브랜치, 태그에 대한 업데이트를 추적하여 Manifest 파일의 변경사항을 감시하게 됩니다. 동기화(Sync)를 통해 현재 배포된 환경의 상태와 Manifest 파일에 정의된 상태를 동일하게 유지하는 역할을 수행합니다. 오늘은 ArgoCD를 설치하고, 간단한 애플리케이션 버전 업데이트를 해보겠습니다. 1. ArgoCD 설치 argocd Namespace를 생성하고, github argocd repository에 있는 install.yaml을 통해 설치할 수 있습니다. kubectl create namespace argocd kubectl apply -n argoc..
· AWS
쿠버네티스는 부하 증가에 대비해 HPA(Horizontal Pod Autoscaler)를 제공하고 있습니다. HPA를 사용하면 CPU나 메모리의 사용량에 따라 Pod를 추가적으로 배치하거나 감소시킬 수 있습니다. 그러나 HPA로 Pod를 늘리다보면 EC2 Node 리소스가 부족해져 Pod가 Pending 상태에 놓이게 됩니다. 이때, Cluster Autoscaler를 사용하면 Node를 자동으로 증축시켜 Node 리소스 부족에 대처할 수 있습니다. 또한, 부하 감소로 활용도가 낮은 Node가 있다면 Node를 축소시키기도 합니다. 오늘은 HPA, Cluster Autoscaler를 이용하여 부하 증가에 대응해봅시다. 0. Deployment 준비 HPA의 대상이 되는 deployment를 먼저 준비하겠..
· AWS
Fargate는 컨테이너에 대한 적정 규모의 온디맨드 컴퓨팅 용량을 제공하는 기술입니다. Fargate를 사용하면 EC2와 달리 인스턴스를 설정하고, 확장시킬 방안을 고민할 필요가 없습니다. 그럼 Fargate를 사용하여 Pod를 배포하고, 로그까지 보내봅시다. 0. 사전 준비 Fargate profile을 구성할 때, Pod execution role이 필요합니다. IAM Role 생성으로 들어가 Use case에서 EKS - Fargate pod를 선택합니다. Policy는 자동으로 설정되므로 계속 Next를 누르고 Role name을 정한 뒤 Create role을 하면 됩니다. 로그를 받을 Kinesis Data Firehose도 하나 생성하겠습니다. 이때, Source는 Direct PUT이여야..
KimJeongTae
'eks' 태그의 글 목록