[Kubernetes] 1.쿠버네티스

쿠버네티스를 설치 및 사용하기 앞서 쿠버네티스의 아키텍처와 구성요소들에 대해 살펴본다.

1. 쿠버네티스(k8s)란?

쿠버네티스는 컨테이너화 된 서비스를 관리하기 위한 이식성이 높고 확장 가능한 오픈소스 플랫폼이다. (컨테이너 오케스트레이터)

실행중인 컨테이너에 장애가 발생했을 경우 빠르게 복구하여 장애를 방지 하고 여러 Node에 적절하게 자원을 분배 하는 특징을 가짐

쿠버네티스 아키텍쳐

architecture

쿠버네티스 주요 오브젝트

Node

물리 서버/가상 머신. 1개의 노드 = 1대의 머신

Pod

하나 이상의 컨테이너로 구성 된 쿠버네티스의 가장 작은 배포 단위

생성 될 때 가상의 유동 IP를 부여 받고, 외부에서는 Pod로 직접 접근이 불가능 함.

Pod의 컨테이너간에 저장소와 네트워크를 공유한다(localhost)

Service

외부에서 Pod에 접근하기 위해 Service는 고정적인 가상 IP를 가지고 있음. Pod를 생성할 때 붙인 라벨을 Service를 생성할 때 Selector로 설정해주면 서비스는 해당 Pod들을 찾아서 연결 함.

ReplicaSet

Pod가 문제가 생기면 새로운 Pod를 생성하며 Pod의 정보를 Template으로 가지고 있다.

Deployment

새로운 버전을 배포할 경우 Deployment는 새로운 버전의 ReplicaSet을 생성하고 순차적으로 이전 Pod를 죽이면서 새로운 버전의 Pod를 생성한다. (기본적으로 무중단 배포의 Rolling 동작 방식). ReplicaSet을 템플릿으로 가지고 있다.

Ingress

클러스터로 들어오는 요청을 URL 단위로 여러 Service로 분산시켜주는 로드밸런서이다.