그냥 준형 그냥 정리 Kubernetes (7) 썸네일형 리스트형 쿠버네티스 환경에서의 부하분산(로드밸런싱) 로드밸런싱여러 서버(Pod들)에 트래픽을 골고루 분산시켜 주는 기술입니다. (부하 분산 목적)로드밸런싱 주요 알고리즘Round Robin : 그냥 순차적으로 차례대로 트래픽을 전달Least Connections : 가장 접속이 적은 서버로 트래픽을 전달Random : 말 그대로 랜덤한 서버에 보냄IP Hash : Sticky Session / 접속한 사용자는 계속 요청을 보냈던 서버로 요청을 보냄Weighted : 서버에 가중치를 부여해 더 좋은 서버는 트래픽 배정 순위가 높음쿠버네티스 Service의 LoadBalancer 구동 방식 (AWS ELB 기준)로드밸런서를 적용하기 위해서는 Service에서 네트워크 타입을 LoadBalancer로 설정해야합니다.1. 전체 아키텍처 개요기본적으로 LoadBa.. 쿠버네티스 네트워크 Pod IP쿠버네티스 클러스터 내부에서만 사용되는 전용 내부 IP다.각 Pod는 고유한 IP를 가지며 Pod가 재시작되면 바뀐다.Node(EC2, VM, 물리)의 IP와는 완전히 별개다.Service → Pod 라우팅 할 때 이 Pod IP를 가지고 찾는다.대부분의 경우 디버깅 상황을 제외하고는 이 IP에 관심을 가질 필요가 없다.개념만 알아두자.Cluster IP쿠버네티스 클러스터에서 여러 Pod를 대표하는 내부 IP다.Service가 생성될 때 생기며, Service가 삭제되지 않는 한 고정이다.Cluster IP로 들어온 트래픽이 Cluster IP -> Pod IP로 내부적으로 전송된다. 쿠버네티스 볼륨 볼륨이 필요한 이유쿠버네티스에서 Pod 내부 컨테이너의 파일 시스템은 컨테이너가 종료되면 함께 사라지는 휘발성 저장소입니다.따라서 컨테이너 생명주기와 무관하게 데이터를 유지하기 위해서는 별도의 저장공간(Volume) 이 필요합니다.또한 각 컨테이너 별로 저장소는 공유가 되지 않기 때문에 데이터 공유가 필요할 때도 볼륨이 필요합니다.볼륨의 두 가지 주요 역할컨테이너 간 임시 저장 공간 공유컨테이너 데이터 영구 저장 공간 제공(중요)1. 컨테이너 간 임시 공간 공유 (emptyDir)컨테이너들이 서로 데이터를 주고받아야 하는 경우, Pod가 살아있는 동안만 유지되는 임시 저장소인 emptyDir을 사용할 수 있습니다.emptyDir은 Pod가 삭제될 때 함께 삭제되지만, 같은 Pod 내에서 컨테이너 재시작 .. 쿠버네티스 아키텍처 Kubernetes 클러스터 정리: 컨트롤 플레인 + 워커 노드Kubernetes 클러스터는 컨트롤 플레인(Control Plane)과 워커 노드(Worker Node)로 구성되며, 컨트롤 플레인은 클러스터의 두뇌 역할을, 워커 노드는 실제 애플리케이션 파드(Pod)를 실행하는 역할을 담당합니다.1. 컨트롤 플레인(Control Plane)컨트롤 플레인은 사용자가 정의한 원하는 상태(Desired State)를 유지하기 위한 모든 관리 및 조정 작업을 수행합니다.구성 요소별 역할구성 요소역할 및 기능통신의 중심API 서버 (Kube-apiserver)클러스터의 모든 통신과 요청 처리. etcd에 접근하는 유일 경로.모든 구성 요소etcd클러스터의 상태 저장소, 단 하나의 진실 근원(Source of Tr.. 쿠버네티스 명령어 정리 (kubectl) 및 yaml 리소스 조회kubectl get # pod, deployment, service 등kubectl get podkubcetl get deploymentkubectl get service# 상세 조회kubectl get -o widekubectl get pod -o wide리소스 디버그Pod의 상태를 봤을 때 오류가 발생한 경우 다음과 같이 원인을 찾을 수 있습니다.kubectl describe pod 컨테이너의 로그까지 봐야되는 경우kubectl logs -f리소스 삭제kubectl delete kubectl delete pod my-podkubectl delete service my-svc# 일괄 삭제 --allkubectl delete pod --allkubectl delete deploymen.. 쿠버네티스 개념 및 용어 정리 쿠버네티스란?쿠버네티스는 컨테이너 기반 MSA 환경에서 복잡한 운영을 자동화하고 표준화하기 위해 사용되는 오케스트레이션 플랫폼입니다.이게 아직은 무슨 소린지 감이 안 잡힙니다.쿠버네티스 도입 배경 알기 전에 MSA에 대하여 간략하게 알아봐야 합니다.MSA : Micro Service Architecture의 약자로 기존 서버의 기능을 역할 별로 쪼개어 결합도를 낮추어 배포하는 방식ex) 쿠팡 백엔드 서버(서비스)를 -> 결제 서버, 장바구니 서버, 회원 서버, 판매 서비스 등 쪼개버리는 것 MSA의 장점은 기존에는 서버에 문제가 생기면 모든 기능이 마비가 되었는데 서버를 역할별로 잘게 쪼개어 하나의 서버에서 문제가 생겨도 나머지 기능에 영향이 가지 않도록 하기 위함입니다. 개발적인 측면이나 안정성 측면에.. 쿠버네티스 VMware 실습 환경 세팅 쿠버네티스 노드 공통 환경 구성OS : Ubuntu Server 24.04 기준Master / Worker 노드 공통 설정1. 서버 시간대 설정쿠버네티스는 분산 시스템으로, 로그 분석, 이벤트 타임스탬프, 노드 간 통신 등 모든 작업에 정확한 시간 동기화가 필수적입니다.기본값인 UTC 대신 한국으로 시간대를 통일합니다.sudo timedatectl set-timezone Asia/Seoul2. 노드 간 정밀 시간 동기화각 노드의 시간이 더욱 정밀하게 동기화되도록 Chrony를 설치 및 사용합니다.sudo apt -y install chrony3. Swap 메모리 비활성화쿠버네티스의 구성 요소인 Kubelet은 Swap이 활성화된 노드에서는 기본적으로 실행되지 않도록 설계되어 있습니다.따라서 다음과 같이 .. 이전 1 다음