k8s에서 기본적으로 제공하는 워크로드 타입은 Stateless한 애플리케이션입니다. 즉, 컨테이너는 상태가 없는 애플리케이션이며, pod가 삭제되면 더이상 pod에 저장된 데이터는 확인할 수 없습니다. pod 내 컨테이너에서 사용되는 스토리지는 Ephemeral(임시) Storage로 pod가 사라지면 함께 사라지기 때문입니다. 만약 하나의 pod 내의 다수의 컨테이너가 pod내에 생성된 Ephemeral Volume을 이용하는 경우에도 마찬가지입니다. 결국 pod가 사라지면 함께 사라지며, pod의 lifecycle에 따라 컨테이너에서 사용하는 데이터 lifecycle도 정해지게 됩니다. 그러나 DB를 사용하거나, 문제 발생시 Log 분석등을 위해 데이터를 지속적으로 유지해야 하는 경우가 있습니다. ..
1. 목표구성도 - EKS 클러스터 : Control Plane - VPC 1개 : 퍼블릭 서브넷 3개, 프라이빗 서브넷 3개 - 관리형 노드 그룹 : EC2 3대 - Add-on : 최신 버전 kube-proxy, coredns, aws vpc cni 2. 배포 방법 : CloudFormation을 통해 실습 환경 배포 - CloudNet@ 제공 YAML 파일을 이용하여 CloudFormation으로 배포 1단계 : node IP와 pod의 IP가 같은 대역임을 확인 - pod의 IP와 pod 내 위치한 kube-system용 pod(aws-node, kube-proxy)가 pod와 동일한 IP를 보유 - coredns pod는 랜덤하게 2개의 node에 배포되어 있음 1) 192.168.3.234 :..
K8s에서는 pod간의 통신을 확장하는 규약을 CNI(Container Network Interface)로 정의합니다. CNI는 다양한 방식으로 k8s의 네트워크 환경을 구성하며, 네트워크 관련 제조사나 커뮤니티별로 다양한 플러그인을 제공하고 있기 때문에, 사용자는 K8s의 CNI 관련 페이지에서 각자의 환경에 맞는 네트워크를 선택할 수 있습니다. 일반적인 K8s 네트워크에서는 Node의 IP대역과 pod의 IP대역을 서로 다르게 나누어 구성합니다. Node 내부에서 pod간의 통신이 일어나는 경우, Node 내부의 bridge를 통해서 바로 통신하지만, Node를 넘어선 pod간의 통신은, Overlay 네트워크를 통해서 최종 목적지 pod를 찾아가는 구조입니다. 이 경우 Pod 간의 통신을 위해 Vx..
1.EKSCTL 1) kubectlEKS 클러스터 구축 및 관리를 하기 위한 오픈소스 명령줄 도구 : 사용을 위해 사전 설치 필요 2) EKS 배포시 CloudFormation을 이용해서 배포 3) AWS에서 직접 제공하는 것은 아니지만, 공식적으로 지원하는 관리 도구이며, EKS 외 다른 리소스에 대한 관리 불가 4) 기본 설치시 - VPC CNI plugin for K8s, kube-froxy, CoreDNS와 같은 자체 관리형 추가 기능을 자동으로 함께 설치 - VPC : 3개의 AZ에 6개의 subnet, 1개의 NAT GW, IGW 설치 2. 목표 구성도 1) 가장 간소화된 환경 : 2개의 AZ, 4개의 Subnet 구성 1단계. CloudFormation을 이용하여 EKS 생성을 위한 작업용 ..
Kubernetes(=K8s)는 컨테이너화된 애플리케이션의 배포, 확장 관리를 자동화하기 위한 오픈 소스 시스템으로, 클라우드 네이티브의 핵심으로 급부상하여 현재는 컨테이너 관리의 디팩토(defacto) 스탠다드로 자리잡았습니다. 실제로 많은 곳에서 On-premise와 클라우드를 가리지 않고, 다양한 형태의 K8s 기반의 클러스터를 운영하고 있습니다. 그러나, 가용성, 다중화, 성능, 최적화, 확장, 업그레이드, 기술지원, 패치, 네트워크와의 연동 등에 있어 전문적인 기술/운영 인력이 없을 경우 K8s를 활용하는데 많은 어려움을 겪고 있는 것이 현실입니다. AWS에서는 이러한 어려움을 해소하기 위해, Amazon EKS(Elastic Kubernetes Services, 이하 EKS), 보통 EKS라 ..