전체 글 30

DownTime Zero를 통한 EKS 운영 안정성 높이기

OverviewEKS 서비스 워크로드 운영 안정성을 높이기 위해 본 글에서 아래 항목을 테스트하겠습니다.서비스 무중단을 위한 애플리케이션 파드 내 ReadinessGate, preStop 설정 후 Downtime Zero 확인 Serivce Downtime Zero 구성EKS 를 비롯한 쿠버네티스에서 롤링 업데이트 또는 노드 변경에 따라 파드 재기동을 자주 발생합니다.일반적으로 파드가 이중화되고 파드를 하나씩 롤링업데이트하면 서비스 이상이 없을 것으로 예상하지만,,Cloudwatch를 비롯한 대시보드 확인시 ELB 5XX가 일부 확인됩니다.이는 AWS 타겟 그룹에서 파드 등록 및 삭제 과정에서 발생합니다.AWS 로드밸런서 컨트롤러는 타켓 그룹에 새 파드를 등록하고, 기존 파드를 동시에 제거합니다.대상 그..

Cloud Tech 2024.11.02

Cilium Service Mesh on EKS

OverviewAWS 블로그 글 Getting Started with Cilium Service Mesh on Amazon EKS 를 기반으로 EKS에서 Clium 기반의 Service Mesh를 구성하고 구성 요소를 확인하겠습니다.Sidecarless Service Mesh for Cilium? Cilium 은 eBPF(Extended Berkeley Packet Filter)를 기반으로 하는 K8s CNI Plugin 입니다.BPF는 Kernel에 Snadbox 형태로 설치되어 패킷을 필터링하고 제어할 수 있습니다. 기존 CNI 로 Iptables를 통해 패킷을 제어하게 되면 네임스페이스 간의 통신에서 오버헤드가 발생하지만, BPF는 커널에 내장되어 있어 성능향상과 패킷 추적을 기대할 수 있습니다...

Cloud Tech 2024.10.26

EKS VPC CNI 네트워크 최적화 설정과 Kubeflow에서의 istio 구성

OverviewEKS 내 VPC CNI 네트워킹 모범사례를 실습하고, Kubeflow에서의 Istio 구성을 확인하겠습니다. EKS 네트워킹 모범사례 정리M/L 및 데이터 워크로드 기반의 EKS 프로젝트(DoEKS) 에서 AWS VPC CNI고려사항을 정리하고 실습하겠습니다. Networking for Data | Data on EKSVPC and IP Considerationsawslabs.github.io  VPC와 IP 고려 사항1. EKS 클러스터에서의 Warm Pool 유지AWS 각 인스턴스 유형은 최대 네트워크 인터페이스 수, 네트워크 인터페이스 당 최대 개인 IP를 지원합니다.aws ec2 describe-instance-types \ --filters "Name=instance-typ..

Cloud Tech 2024.10.20

AWS Load Balancer Controller 기능 분석

OverviewEKS 클러스터에서 네트워크 addon인 AWS Load Balancer Controller 가 제공하는 기능들을 실습하여 동작 이해와 AWS 콘솔에서의 형상을 확인하겠습니다. AWS Load Balancer ControllerAWS ELB를 자동으로 관리하며, 쿠버네티스 리소스(Ingress, SVC)를 AWS ELB에 매핑시켜 ELB의 트래픽을 쿠버네티스 서비스 리소스로 라우팅을 시켜주는 컨트롤러입니다. ELB를 자동으로 관리한다는 말은 쿠버네티스 서비스에 annotation을 정의하면 옵션에 맞게 아래 AWS ALB, NLB을 생성, 삭제, 수정시켜 쿠버네티스 리소스에 매핑시켜줍니다.It satisfies Kubernetes Ingress resources by provisioning..

Cloud Tech 2024.10.13

k8s node-shell 원리이해

Node-shell ?k8s 컨트롤 노드를 통해서 워크 노드에 root 권한으로 접근시킬 수 있는 툴입니다. kubectl krew 확장 도구로 설치가 간단하며, 워크 노드 서버 접근에 자주 사용되는 툴입니다.다만, k8s api-server만 접근이 가능하게 되면 워크 노드도 접근이 가능하기에 예상치 못한 보안 이슈를 가져올 수 있습니다. 이번 장에서는 해당 툴의 원리를 확인하고 발생할 수 있는 보안 이슈를 확인하겠습니다.  GitHub - kvaps/kubectl-node-shell: Exec into node via kubectlExec into node via kubectl. Contribute to kvaps/kubectl-node-shell development by creating an ac..

Cloud Tech 2024.10.04

쿠버네티스 서비스 Iptabls 모드 정리

Overview쿠버네티스 서비스 모드 Iptable 를 알아보고, 확장 서비스 옵션, 서비스 트러블슈팅 방법과 최적화 방안을 정리합니다. IPtables Iptables은 서버의 firewall software입니다. 네트워크 트래픽을 룰을 통해 관리하여 실제 처리는 커널 계층의 netfilter 에서 각 hook에 해당 룰과 체인에 따라 modules을 등록해두고 상호작용합니다.netfilter의 Hook은 5개로 구분되며 각 hook에 iptables의 트래픽 정책(rule)을 언제 처리할 건지를 정의하는 Chain이 있습니다. Chain 안에는 룰의 집합체인 Table이 있습니다.PEEROUTING HOOK은 라우팅 전인 패킷이 인터페이스에 들어 올 때 동작 합니다. 패킷의 주소 변환 및 필터링을 ..

Cloud Tech 2024.09.28

Calico CNI 이해

Overviewk8s CNI인 Calico를 Mac M1 환경에서 VM를 통해 배포해보고, 구성 요소를 확인하겠습니다. 실습 환경 구성쿠버네티스 구성 환경은 Vagrant를 통해 Mac 에서 구성하겠습니다.네트워크 서브넷 192.169.10.0/24, 192.168.20.0/24 두 개에 서버를 구성하여 쿠버네티스 클러스터를 구성합니다. 우측 Router 서버에 각 서브넷의 네트워크 인터페이스를 연결하여 통신이 가능하도록 구성할 예정입니다.(KANS3 스터디 참고) 필자 환경은 MAC M1 에서 진행했습니다. 실습 환경으로 최소 vCPU 4, 12GiB RAM이 필요합니다 MaC M1에서의 Vagrant 환경 구성은 sejkim님의 블로그를 참고하였습니다.맥 환경 구성을 위한 OS, 네트워크 설정 등의 ..

Cloud Tech 2024.09.20

쿠버네티스 네트워크이해하기(Kind, Pause, Ephemeral Container, FlannelCNI)

Overview 지난 글에서 도커 네트워크를 확인한 것을 바탕으로 쿠버네티스 네트워크 구성을 살펴보겠습니다. 블로그 내용은 CloudNet@ KANS3 스터디를 참고하였습니다.Kind(Kubernetes in Docker)Kind는 도커 컨테이너 위에 로컬 kubernetes 클러스터를 실행하기 위한 도구 입니다. Kind는 Kubernetes 클러스터를 로컬 환경에서 손쉽게 시뮬레이션하고, 개발, 테스트, 학습 목적으로 사용됩니다.Docker(Host) 안에 또 다른 Docker를 실행하여 쿠버네티스 Control Plane과 Work Node를 구성합니다.Mac에서의 환경 구성M1 MAX 에서 구성docker 설치 Install Docker Desktop on MacInstall Docker for ..

Cloud Tech 2024.09.06

컨테이너 구성 이해와 도커 취약점 점검하기

OverviewCloudNET@ KANS3기 스터디에서 실습한 자료를 공유합니다.컨테이너의 세부 원리를 이해하고, 도커 없이 컨테이너를 구성하겠습니다.또한, KISA 도커 보안 취약점을 확인하겠습니다.컨테이너컨테이너는 애플리케이션과 실행에 필요한 모든 파일, 라이브러리, 의존성 등을 하나의 패키지로 묶어서 독립적으로 실행할 수 있는 가상화된 환경입니다. 가상 머신(VM)과 비교하였을 때 컨테이너 환경은 호스트 운영체제의 커널을 공유하므로 실행에 필요한 리소스가 적고, 가볍습니다. 또한 CPU, 메모리, 디스크 등의 자원을 보다 효율적으로 사용할 수 있습니다.컨테이너 환경은 호스트 운영체제의 커널을 공유하나, 프로세스는 격리합니다. 프로세스 격리는 리눅스의 독립된 환경(pivot-root, namespac..

Cloud Tech 2024.08.30

OpenTofu 와 Atlantis 연동하기

OverviewOpenTofu을 이해하고, Terraform Runner인 Atlantis와 연동하여 구성 동작을 확인하겠습니다.OpenTofu ?OpenTofu의 배경은 Terraform의 라이센스 변경과 관련이 있습니다. Terraform은 오랫동안 오픈 소스로 제공되었으나, 2023년 8월에 HashiCorp가 Terraform을 포함한 여러 제품의 라이센스를 변경하면서 더 제한적인 Business Source License(BSL)를 도입했습니다. BSL 도입에 따라 Terraform을 서비스 형태로 제공하거나, 상업적 목적으로 대규모로 사용하는 경우 라이센스 비용을 지불해야 합니다.(출처: GeekNews) 이에 따라 오픈소스 진영에서는 Terraform을 포크하여 만든 도구로 OpenTofu를..

Cloud Tech 2024.08.03