쿠버네티스 6

K8s 소개

개요리눅스는 프로세스별로 자원을 격리해서 사용하는 cgroup과 특정 디렉터리 권한을 제한하는 chroot 등으로 격리 환경을 구성할 수 있습니다. 이러한 리눅스 구성에 디스크 파일 변경 사항을 레이어 형태로 저장하는 파일시스템을 결합한 개념이 바로 컨테이너입니다. 가상 머신과 컨테이너 차이가상 머신과 컨테이너를 비교했을 때, 컨테이너가 구조상 레이어가 더 간단하므로 성능을 높이기 쉽습니다. 컨테이너 생성 과정컨테이너는 Client, Docker Host, Registry 간 상호작용을 통해 생성됩니다.아래 이미지는 Docker 기준으로 컨테이너 생성 과정을 설명합니다.Client: 개발자가 도커 명령어를 입력하는 인터페이스로 Docker Host에 명령 요청Docker Host: 도커 데몬이 실행되는 ..

K8s 2025.04.20

서비스 (Service)

개요쿠버네티스 클러스터에서 컨트롤러를 이용해 포드를 실행한 경우, 포드는 한 장소에서 고정되어 실행되지 않고 클러스터 내부를 옮겨 다니며 실행됩니다. 노드가 옮겨지는 과정에서 포드 IP가 변경되기도 합니다.동적으로 변하는 포드에 접근하기 위해서 사용되는 방법이 바로 쿠버네티스 서비스입니다. 서비스를 사용하면 고정 주소를 이용해 포드에 접근할 수 있습니다.인그레스로도 포드에 접근할 수 있는데 서비스는 주로 L4 영역에서 통신을 할 때 사용하고, 인그레스는 주로 L7 영역에서 통신할 때 사용한다는 차이점이 있습니다. 타입서비스 타입은 크게 네 가지가 있습니다.ClusterIP: 기본 서비스이며 쿠버네티스 클러스터 내부에서만 사용 가능. 클러스터 IP를 이용해 포드에 접근NodePort: 서비스 하나에 모든 ..

K8s 2025.04.20

컨트롤러 (Controller)

개요컨트롤러는 포드를 관리하는 역할을 합니다.레플리케이션 컨트롤러레플리카세트디플로이먼트데몬세트스테이트풀세트잡크론잡 레플리케이션 컨트롤러초기부터 있었던 가장 기본적인 컨트롤러입니다. 설정한 개수만큼의 포드가 항상 클러스터 내 실행되도록 관리합니다.컨트롤러를 사용하지 않고 포드를 직접 실행하면 포드에 이상이 생겨 종료되거나 삭제되었을 때 재시작하기 어렵습니다.현재는 레플리케이션 컨트롤러보다는 레플리카세트를 주로 사용하고 있습니다. 레플리카세트레플리카세트는 레플리케이션 컨트롤러의 발전형입니다. 레플리케이션 컨트롤러와 같이 동작하지만 집합 기반의 셀럭터를 지원한다는 차이점이 존재합니다.아래는 레플리카세트 yaml (replicaset-nginx.yaml) 예시입니다.apiVersion: apps/v1kind: ..

K8s 2025.03.31

포드 (Pod)

개요쿠버네티스는 포드라는 단위로 컨테이너를 묶어서 관리합니다. 일반적으로 포드는 하나가 아닌 여러 개의 컨테이너로 구성됩니다. 포드 내 구성된 컨테이너는 모두 하나의 노드 안에서 실행됩니다. 아래 이미지와 같이 하나의 포드가 있을 때, 포드 내 컨테이너는 웹 서버, 로그 수집기, 볼륨 컨테이너라는 각각의 역할을 가질 수 있습니다. 포드 내 컨테이너는 포드 IP(192.168.10.10)를 공유합니다. 외부에서 포드에 접근할 때는 포드 IP(192.168.10.10)로 접근합니다. 컨테이너에 접근할 때는 컨테이너마다 설정된 포트로 접근합니다. 생성아래 pod.yaml은 기본적 포드를 생성하기 위한 템플릿입니다.apiVersion: v1kind: Podmetadata: name: {포드 이름} label..

K8s 2025.03.31

K8s Cluster 구조

개요쿠버네티스 클러스터는 클러스터를 관리하는 마스터와 컨테이너를 실행시키는 노드로 구성되어 있습니다.마스터: etcd, kube-apiserver, kube-scheduler, kube-controller-manager, kubelet, kube-proxy 등 실행노드: kubelet, kube-proxy 등 실행 고가용성 (High Availability, HA)  쿠버네티스에서 고가용성은 시스템 내의 구성 요소에 장애가 발생하더라도 서비스 중단 시간을 최소화하거나 아예 없이 지속적으로 운영할 수 있는 능력을 의미합니다.마스터는 일반적으로 고가용성을 만족하고자 서버 3대 정도로 구성하여 운영합니다. 실제 작동하면서 클러스터를 관리하는 리더 마스터는 1대고, 나머지 2대는 대기 상태로 존재합니다. 리더 ..

K8s 2025.03.29

kubectl

개요kubectl은 쿠버네티스 클러스터 관리를 위한 커맨드라인 인터페이스입니다. kubectl에서 지원하는 명령은 아래와 같이 구분됩니다.쿠버네티스 자원 생성, 업데이트, 삭제 (create, update, delete)디버그, 모니터링, 트러블 슈팅 (log, exec, cp, top, ...)클러스터 관리 (cordon, top, drain, taint, ...) 사용법kubectl은 아래 형식으로 명령을 작성합니다.kubectl {command} {TYPE} {NAME} {flags}command: 자원에 실행하는 동작 (create, get, delete, ...)TYPE: 자원 타입 (pod, service, ingress, ...)NAME: 자원 이름flags: 부가적 설정 옵션기본적으로 ku..

K8s 2025.03.29
728x90