쿠버네티스
는 컨테이너 관리자로 컨테이너 운영을 자동화하기 위한 도구
동일한 기능을 하는 도구에는 메소스, 도커 스웜 등있다.
이런 도구들을 오케스트레이션 도구라 지칭한다.
오케스트레이션 ???
: 여러 개의 컴퓨터 시스템, 애플리케이션 및 또는 서비스를 조율하고 관리하는 것,
: 여래 개의 작업을 함께 연결하여 크기가 큰 프로세스를 실행하는 방식
쿠버네티스 특징 및 기능
스케줄링
: 클러스터의 여러 노드 중 조건에 맞는 노드를 찾아 컨테이너 배치클러스터
: 가상 네트워크를 통해 하나의 서버에 있는것 처럼 통신스케일링
: 리소스에 따라 자동으로 서비스 조정Kubernetes의 여러 리소스를 관리하기 위한 집합체
Kubernetes 리소스 중에서 가장 큰 개념은 노드(node)
노드(node)는 클러스터(cluster)의 관리 대상으로 등록된 도커 호스트로, 도커 컨테이너가 배치되는 대상
Master Node
**Pod**
한개의 Pod
안의 컨테이너는 모두 같은 노드에 배치됩니다. 즉, 팟 하나가 여러 노드에 걸쳐 배치될 수는 없다.
Pod
는 내부적으로 하나의 ip를 사용한다.
이를 다르게 얘기하면 다른 기능을 가진 컨테이너들이 포드로 묶이면 하나의 ip를 할당 받게 되고 같은 ip를 가진 두개의 컨테이너의 포트번호가 각각 다르다면 서로간의 포트번호를 통해 통신이 가능하다.
일반적으로 컨테이너 끼리는 파일공간을 공유하지 않는다. 컨테이너는 host OS인 리눅스 위에서 돌아가는 단위이기 때문이다.
그러나 Pod
로 묶게되면 Volume이라는 공용공간을 사용하는데 컨테이너들끼리의 파일을 불륨에 올려놓고 사용하기 때문에 컨테이너간의 메모가 공유가 가능하다.
NameSpace
Kubernetes는 클러스터(cluster) 안에 가상 클러스터(cluster)를 또 다시 만들 수 있습니다.
클러스터 안의 가상 클러스터를 네임스페이스(namespace)라고 합니다.
클러스터(cluster)를 처음 구축하면 default, docker, kube-public, kube-system
의 네임스페이스 4개가 이미 만들어져 있습니다.
$kubectl get namespac
명령으로 현재 클러스터 안에 존재하는 네임스페이스의 목록을 확인할 수 있습니다.
네임스페이스(namespace)를 클러스터(cluster) 안의 가상 클러스터(cluster)라는 개념이 어려울 수 있습니다.
전체 클러스터에서 리소스의 구분 용도 즉, 전체 클러스터에서 특정 이름으로 클러스터의 영역을 구분하는 정도라고 생각하면 됩니다.
참고: