디지털 양피지/Docker2017. 6. 30. 10:22

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
Posted by 빨간 양말