-
KubernetesCoreOS 2015. 11. 14. 21:15
구글에서 공개한 리눅스 컨테이너 관리 시스템.
클러스터가 구성된 coreos-docker의 컨테이너들을 집합 개념으로 관리하며 집합이 죽었을 때의 백업, 집합을 관리하는 service를 운영
Kubernetes의 구조
POD: 컨테이너들의 집합
- 같은 주소, 컨테이너 2개: A또는 B의 포트를 노출 -> 해당포트로 연결
- 호스트가 다르고, 포트가 여러 개 필요하다면? Overlay network로 해결!
Overlay network란 물리 네트워크 위에 가상 컴퓨터 네트워크 -기존의 데이터 센터 네트워크 망이 어떻게 구성되어 있던지 Network을 넘어 구성하겠다는 것
vxlan이란 L2 Network 확장성을 의미한다. VLAN 기반 네트워크 보다 더욱 많은 Layer 2 Segment 를 구성한다. VLAN 숫자의 제약을 극복 할 수 있음을 의미한다. Mac Over IP/UDP Header에 24bit VAND ID를 새롭게 구성하게 되므로 기존의 VLAN 숫자를 뛰어넘는 구성이 가능해진다. VXLAN Header + UDP + IP 기반으로 전송
Ip netns란 리눅스 시스템에서 네트워크는 단지 하나만 존재하는 글로벌 자원. 네트워크 네임스페이스를 이용하면, 격리된 네트워크 환경을 구축할 수 있음
내 생각: 위의 과정을 봤을 때, 도커에게 할당 받은 ip들을 리더(?) 격인 1개만 남기고 나머지는 해제. 이후 포드 하나의 그룹 대표 ip로 지정??
ReplicationController: 복제를 담당
- ReplicationController 3으로 지정해 POD 3개를 관리하다가, POD1개가 고장 났을 때, Replication Controller에서 해당 포드를 재 생성해 살려냄.
- 새로 생성해서 죽은 pod를 살리면 ip가 바뀌면서 살아남
- 한 서비스 안에 여러 포드를 관리할 수 있음.
Service & proxy
- Service를 생성하면 별도의 ip가 할당
로드밸런스로 포드에 균일하게 처리할 수도 있고 트래픽을 강제로 한쪽으로만 몰수도 있음.
장점: 컨테이너들을 묶어 관리하기 때문에 네트워크, volume, 리소스(cpu, ram)가 공유
Pod가 죽어도 rc에서 관리하기 때문에 백업기능
Service를 생성한 후, pod를 연결하면 자동 로드밸런스 기능뿐만 아니라 강제로 트래픽을 포드에 조절할 수 있음.
단점: