AWS VPC CNIAWS VPC CNI(Container Network Interface)는 Amazon EKS 클러스터의 파드 네트워킹을 담당하는 네트워크 플러그인이다. AWS CNI는 다른 CNI들과는 주요 특징은 다음과 같다.노드와 파드의 네트워크 대역이 같다.ENI와 L-IPAM을 함께 활용하여 다른 CNI와 차별화된 네트워크 방식을 제공한다.워커 노드의 인스턴스 타입별 파드 생성 개수 제한이 있다. 노드와 파드의 네트워크 대역이 같다노드와 파드의 네트워크 대역이 같다. 이는 VPC의 서브넷 IP를 파드에 직접 할당함으로써, 파드가 마치 VPC 내의 일반적인 EC2 인스턴스처럼 동작할 수 있게 한다. 일반적인 K8S CNI는 오버레이(VXLAN, IP-IP)등으로 통신하기 때문에 오버헤드가 발생..
EKS 배포EKS를 배포 방법에는 3가지 방법이 있습니다.AWS 웹 관리 콘솔eksctlIaC(CDK, CloudFormation, Terraform)이번 실습에서는 eksctl 명령어를 활용하여 EKS를 배포합니다.eksctleksctl은 Amazon EKS 클러스터를 생성하고 관리하기 위한 공식 CLI(Command Line Interface) 도구입니다.eksctl로 클러스터 생성 시, 내부 로직(코드)을 살펴보면 aws cloudformation 서비스를 통해서 스택을 생성하고 업데이트를 수행합니다. eksctl 설치 OS 플랫폼에 맞게 eksctl을 설치합니다.실습은 ubuntu(amd64) 환경에서 진행합니다.# for ARM systems, set ARCH to: `arm64`, `armv6..
테라폼 기본 사용테라폼은 hashcorp사에서 공개한 너무나도 유명한 IaC 도구입니다.테라폼 설치 mac os를 기준, 설치 방법입니다. tfenv는 테라폼의 다양한 버전을 사용할 수 있게 해 주는 도구입니다.테라폼 설치 버전 : 1.8.1테라폼 자동완성 설치# tfenv 설치brew install tfenv# 설치 가능 버전 리스트 확인tfenv list-remote# 테라폼 1.5.1 버전 설치tfenv install 1.8.1# 테라폼 1.5.1 버전 사용 설정 tfenv use 1.8.1# tfenv로 설치한 버전 확인tfenv list# 테라폼 버전 정보 확인terraform version# 자동완성terraform -install-autocomplete## 참고 .zshrc 에 아래 추가됨c..
1. Jenkins 젠킨스(Jenkins)는 지속적 통합(Continuous Integration, CI) 및 지속적 배포(Continuous Deployment, CD)를 지원하는 오픈 소스 자동화 도구입니다. 주요 특징은 다음과 같습니다: 자동화된 빌드: 소스 코드가 변경될 때마다 자동으로 빌드를 실행하여 테스트를 수행하고 결과를 제공합니다. 지속적 통합: 개발자들이 작성한 코드가 주기적으로 통합되고 테스트되며, 버그를 빠르게 발견하여 해결할 수 있도록 지원합니다. 지속적 배포: 빌드된 애플리케이션을 자동으로 테스트 및 프로덕션 환경으로 배포하여 개발과 운영 간의 간극을 줄입니다. 확장성: 풍부한 플러그인 생태계를 통해 다양한 개발 스택 및 툴과의 통합이 가능합니다. 유연성: 다양한 작업을 파이프라인..
1. K8S 인증/인가 K8S 인증/인가 쿠버네티스 API 서버에 대한 인증 및 인가에 대해 설명합니다. 인증(Authentication) 인증은 접근하려는 사용자의 신분을 확인하는 과정입니다. 쿠버네티스에서는 대표적으로 아래 3가지 방식의 인증을 지원합니다. X509 Client Certs kubectl Service Account X509 Client Certs kubeconfig에 CA crt(발급 기관 인증서) , Client crt(클라이언트 인증서) , Client key(클라이언트 개인키)를 통해 인증합니다. kubectl 러 클러스터(kubeconfig)를 관리 가능 - contexts 에 클러스터와 유저 및 인증서/키 참고합니다. Service Account 서비스 계정에 부여된 API ..
| EKS 환경에서 활용할 수 있는 다양한 오토스케일링 방법에 대해 포스팅합니다. 0. 실습환경 세팅 EKS Node Viewer 설치 노드 할당 가능 용량과 요청 request 리소스 보여줍니다.(실제 파드 리소스 사용량 X) # go 설치 wget https://go.dev/dl/go1.22.1.linux-amd64.tar.gz tar -C /usr/local -xzf go1.22.1.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin go version go version go1.22.1 linux/amd64 # EKS Node Viewer 설치 : 약 2분 이상 소요 go install github.com/awslabs/eks-node-viewer/c..
EKS에서의 다양한 옵저빌리티 도구에 대해 알아보겠습니다. 1. EKS Console 먼저 AWS 웹 콘솔에 EKS 메뉴에 들어가면 클러스터 ARN, 엔드포인트, 정책 리소스 등 Kubernetes API 리소스 유형을 확인할 수 있습니다. 2. Logging in EKS eks 로깅을 활성화하면 CloudWatch를 통해 손쉽게 로깅을 할 수 있습니다. Control plane logging 컨트롤 플레인의 로그의 종류는 다음과 같습니다. Kubernetes API server component logs (**api**) – kube-apiserver- Audit (**audit**) – kube-apiserver-audit- Authenticator (**authenticator**) – authen..
노드그룹이란? AWS 노드 그룹(Node Group)은 Amazon EKS(Elastic Kubernetes Service)와 관련된 개념으로, Kubernetes 클러스터에서 워커 노드(worker node)를 관리하는 논리적인 그룹입니다. 각 노드 그룹은 동일한 EC2 인스턴스 유형과 구성을 갖는 여러 워커 노드로 구성됩니다. EKS 클러스터에서 워커 노드를 관리하고 확장하는 강력한 도구이며 EKS 클러스터에서 워커 노드의 관리를 보다 효율적으로 수행할 수 있도록 도와줍니다. Graviton (ARM) Instance 노드그룹 AWS Graviton은 ARM 기반의 프로세서 아키텍처를 사용하는 EC2 인스턴스입니다. Graviton 인스턴스는 기존의 인텔 x86 아키텍처와는 다른 프로세서 아키텍처를 ..