1. Kubernetes
- google에서 제공하는 container orchestration tool 이다.
. swarm보다 먼저 나왔다. (mesosphere는 mesos의 제품)
. 2014년 6월 발표
- 별도로 설치해야 한다.
- k8s 자체도 컨테이너로 구성되어 있어 설치시 여러개의 container가 설치된다.
- swarm 이 나오면서 k8s와 호환성에 문제가 생길 수 있어, 이전 버전을 사용한다.
특징
- docker 명령을 몰라도 된다.
* 명령어 도구
- kubectl: cluster 동작을 위한 명령 도구.
- kubeadm: 설치 명령. 1.4 이후 제공
* 용어
. Cluster: compute, storage, network등을 포함한 하나로 묶여있다. flat network로 구성
. host들이 묶여 있는 요소로 1~200개의 노드로 구성된다. (최소 3개 권장)
. Node(Minion): 하나의 single host로 VM 또는 물리 장비들이다.
. kubeler과 proxy를 가지고 있다.
. master의 관리늘 받는다.
. Master: control plane of K8s.
.API Server: 인증 및 pods, services, replication control 등 역활 담당.
.Scheduler: kubelet 명령어를 통해 지시를 받아 제어를 통해 api server로 보낸다.
.Controller Manager(Replication Controller): Pods의 Replica 제어 담당.
. Pod: 기본 배포 유닛이다.
. ip가 할당된다. (내부 container와 통신하기 위한 container이다.)
. pod 내의 container들은 반드시 같은 host에 있다.
. container의 집합으로 volume은 docker volume으로 안보인다.
.. volume 종류에 따라 다르게 구성
. Label: key-value 쌍으로 object set으로 만들어 사용할 수 있다.
. label을 통해 서로 다른 객체(pod, node 등)간 묶어서 사용 가능.
. Label selector:
. Replication Controller와 replica set
.. Pods의 Replication부분을 모니터링하고 변경사항을 API Scheduler를 통해 증강/감소 등 수행.
.. replica set는 set based selection 의 형태. replication controller는 name으로 체크.
.. Endpoints controller, node controller
==> Deployment Contoller
. 애플리케이션 인스턴스들의 생성과 업데이트를 책임진다.
. 애플리케이션의 replica, scale, schedule을 담당한다.
. Service: pods에 포함된 컨테이너의 통신을 지원한다.(network service)
.cluster ip, node port , LB 등의 서비스를 생성하고 관리한다.
. Volume: 임시데티터, 영구적 저장을 할 수있는 장치이다.
. docker의 volume과는 다르다.
. 다양한 volume 을 제공한다.
. Secret
. Name: resouce 등에 사용하는 객체.
. Namespace: virtual cluster 개념이다.
. 하나의 물리적 cluster를 여러개의 논리적 cluster로 구별 가능하다.
. kube-system namespace는 시스템이 사용하는 k8s namespace
. namespace 별로 resource 제약 가능
약자 사용
- 명령어 사용시 resource 제어에 대한 약어를 사용한다.
Resource type |
약어 |
Resource type |
약어 |
componentsstatuses |
cs |
ingress |
ing |
Events |
ev |
Pods |
po |
Endpoints |
ep |
Persistentvolumes |
pv |
Horizontalpodautoscaler |
hpa |
Persistentvoluesclaims |
pvc |
Limitranges |
limts |
Resourcequotas |
qotas |
Nodes |
no |
Replicationcontrollers |
rc |
|
|
|
|
* Kubernates 아키텍트
전체의 그림은 아래와 같다.
구성요소
- Kubernetes 마스트 - Kubernetes 노드 - etcd - 오버레이 네트워크(flannel) |
Node: swarm 의 worker의 역활을 하는 것으로 여러개의 host가 포함 되어 있을 수 있다.
- kubelet: 마스터의 명령을 받아 컨테이너 제어
- proxy: 외부 통신 요소를 제어
- Pod: 는 배포의 기본 유닛으로 swarm의 service와 같다.
. 여러개의 container 요소를 포함하고 있으며 동일 호스트로 배포된다.
. compose와 같이 한 host에 배포
. replica로 배포 되는 것은 pod 단위로 배포된다.
. 내부 container는 ip가 없으며 pod가 ip를 가진다.
- Node port와 LB Service 를 만들어서 내부/외부와 통신을 해야 한다.
'디지털 양피지 > Docker' 카테고리의 다른 글
6. Kubenetes 리소스 관리 (0) | 2017.06.30 |
---|---|
6. Kubernetes 설치 (0) | 2017.06.30 |
5. Docker Swarm (0) | 2017.06.29 |
5. Docker Compose (0) | 2017.06.29 |
4. Docker 네트워킹 (0) | 2017.06.28 |