실습환경 배포 EKS를 3개 AZ에 Pub / Priv Subnet으로 배포합니다.로드밸런서 배포를 위한 태그를 각 서브넷에 설정하고, 노드에서 공유하여 사용할 수 있도록 EFS를 배포하고,각 Pub 서브넷은 ENI를 통해 연동합니다.또 operator-vpc에는 운영 서버를 배포하고, eks vpc와 통신이 가능하도록 peering을 맺습니다. Cloud Formation 배포 [VPC, VPC Peering, routing table, EFS, EC2]## 배포 파일 다운로드$ curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/K8S/myeks-3week.yaml## 배포$ aws cloudformation dep..
Service & AWS LoadBalancer ControllerServicePod 집합과 같은 어블리케이션에 접근 경로나 Service Discovery 제공Pod를 외부 네트워크에 연결하고, pod로의 연결을 로드밸런싱하는 네트워크 오브젝트하나의 Microservice 단위서비스이름.네임스페이스.svc.cluster.local 이라는 FQDN 생성껍데기만 있는 추상적인 객체Kubernetes의 Pod는 Lifecycle 혹은 어떤 이유에 따라 언제든 재시작이 발생할 수 있습니다.Computing 측면에서는 이를 방지하기 위해 Deployment가 그룹으로 Pod를 정의된 숫자만큼 보장하고 있습니다.그렇다면 Computing resource 측면에서 Deployment가 이를 보장해준다면 Networ..
1. 실습 환경 - VPC 2ea- EC2 1ea- EKS 1ea (Worker node 3ea) EKS를 1개의 VPC 내 여러 AZ로 분리 배치- 로드밸런서 배포를 위한 Pub/Priv 서브넷 태그 설정 operator-vpc 에 AZ1를 사용하는 Pub/Priv 서브넷 배치내부 통신을 위한 VPC Peering 배치 실습 환경 배포## Cloud Formation Script$ curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/K8S/myeks-2week.yaml## 환경 배포$ aws cloudformation deploy --template-file ./myeks-2week.yaml --stack-name ..
선언형(멱등성) 알아보기멱등성(idempotency) : 동일한 작업을 여러 번 수행하여도 결과가 달라지지 않는 것을 의미합니다.예시)# 첫 번째 실행 - 성공k create deployment my-webs --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --replicas=3# 두 번째 실행 - 에러 발생Error from server (AlreadyExists): deployments.apps "my-webs" already exists# apply를 사용한 경우k apply deployment my-webs --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --replicas=3 # 정상 생성k apply ..
EKS Cluster Endpoint AccessEKS 환경에서 컨트롤 플레인 영역은 AWS 관리형 서비스로 동작합니다.이에 따라 쿠버네티스 API 서버의 접근에 대한 방법으로 Endpoint Access를 3가지 형태로 정의하고 있습니다.[출처: ongja blog]Endpoint Access 설정설명보안 수준Public Access인터넷에서 접근 가능 (IP 제한 가능)낮음Private AccessVPC 내부에서만 접근 가능높음Public + Private (혼합)VPC 내부 + 특정 Public IP에서 접근 가능중간 1. Public Cluster Endpoint Access인터넷을 통해 모든 IP 또는 IP 제한을 하지 않을 경우 보안에 취약kubectl을 사용하여 aws 외부에서 EKS 클러스..
EKS 배포 방법[VPC 생성 과정은 제외합니다.] 1. AWS 웹 콘솔을 통한 생성AWS EKS 메뉴 클릭 > 클러스터 생성 클릭사용자 지정 구성 > EKS 자율 모드 사용 Disable (Auto mode)Cluster 이름 작성 > Kubernetes 버전 지정 클러스터 액세스 방식 선택ARC 영역 전환 비활성화ARC 영역 전환은 크게 두가지로 나뉜다. 영역 이동(zonal shift) – 문제가 발생한 AZ에서 트래픽을 Healthy한 AZ로 신속하게 전환하여 문제를 임시로 해결자동 영역 이동(zonal autoshift) – 연습 실행을 통해 미리 AZ 장애 시의 복구 상태를 점검하고 AWS가 복구 작업을 자동으로 처리할 수 있도록 설정네트워킹 지정 (클러스터 엔드포인트 액세스는 Public으로..
EKS에 대하여EKS는 AWS에서 신청 가능한 Kubernetes 관리형 서비스입니다.AWS EKS를 신청하면 컨트롤 플레인과 노드를 설치하고 유지 보수하는 이유가 사라집니다. EKS는 여러 가용 영역에서 kubernetes 컨트롤 플레인 인스턴스를 실행하여 고가용성을 보장하며,컨트롤 플레인의 이상 여부를 감지하여 자동으로 교체합니다. 또, 지속적으로 Kubernetes 버전 업데이트에 맞춰 EKS 역시 릴리즈 업데이트가 되고 있어,버전 업데이트도 콘솔 및 CLI 상에서 유저가 편리하게 수행할 수 있습니다. 일반적으로 4개의 Standard Version 지원하며, Extended Version으로 Old 버전 5개를 지원합니다. (25.02.05 기준)Extended Version의 클러스터를 사용할 ..
Karpenter AWS에서 개발한 오픈소스 K8s의 worker node 오토스케일러Cluster Autoscaler (CA)와 비슷한 역할을 수행하지만, AWS 리소스에 의존성이 없어 JIT(Just In-Time) 배포가 가능Cluster Autoscaler은 asg 의존도가 높고, 노드 재배포 시 rolling 되고, 진행 중 작업자 개입이 어렵고, OS Userdata 설정이 필요할 경우 Launch template을 별도 설정해야함.오픈소스이기 때문에 주요 CSP 및 on-prem 환경을 포함함Karpenter 동작 방식운영 부담 절감신속한 Node 추가와 제거자동 Node 롤링 (TTL)다양한 인스턴스 타임을 쉽게 적용빠른 버전 업데이트AWS 의존성을 제거함Auto scaling group ..
EKS 생성 방법AWS Console GUI 환경에서 생성IaC를 통해 생성 (Cloud Formation, AWS CDK, RANCHER)전용 명령 tool (eksctl)AWS Console GUI장점 : GUI에서 클릭클릭으로 생성하므로 매우 쉽다단점 : 별도 로그, 코드를 남기기 않기 때문에 이력 확인이 어렵다. (콘솔 상의 설정 값으로 유추해야함)EKSCTL 사용장점 : Conosle과 마찬가지로 배포가 쉽다. 코드로 이력을 남길 수 있어 관리가 수월하다.단점 : EKS에만 타겟된 도구이므로 AWS 자원 전체를 관리하기에는 불편하다.IaC 사용Terraform : 전체적인 사용 빈도가 가장 많고 대중화되어 있으며, EKS 생성이 간편하도록 별도 모듈도 제공한다.CDK : Terraform은 자체..
테스트 환경은 Oracle 11.2.0.4 버전이나, 타 버전의 경우에도 큰 차이는 없습니다. 업그레이드를 하지 않을 경우 AWS에서 예정한 일정에 맞춰 엔진 업그레이드가 진행됩니다.자동 업그레이드가 될 경우 특이사항 발생 시 즉시 대응이 어려우므로 수동 진행하는 것을 권장합니다. 업그레이드 진행 시 서비스 단절(테스트 시 40분 가량 단절)이 발생합니다. 물론 소요 시간은 RDS 상태에 따라 차이가 있을 수 있습니다.업그레이드 이후 Desupport 항목으로 인해 서비스 장애가 발생할 수 있기 때문에 인스턴스 복제를 통해 사전에 충분히 검증 후 진행하는 것을 권고하고 있습니다. (AWS Docs 내용) Testing an UpgradeBefore you perform a major version up..