POD - 1
이 블로그 포스트는 인프런 의 대세는 쿠버네티스 [초급~중급] 강의를 내가 이해하기 편하도록
정리한 자료이다.
대세는 쿠버네티스 [초급~중급] - 인프런 | 강의
쿠버네티스는 앞으로 어플리케이션 배포/운영에 주류가 될 기술 입니다. 이 강좌를 통해 여러분도 대세에 쉽게 편승할 수 있게 됩니다., - 강의 소개 | 인프런...
www.inflearn.com
POD 는 1개이상의 컨테이너를 갖고있는 쿠버네티스의 Object 이다.
위 그림은 2개의 conatiner를 소유하고 있는 POD이다.
Container 들은 각각의 내부 Port 를 갖고 있다.
(Container1 : 8000, Container2 : 8080)
Conatiner1 -> Container2 로 통신하기 위해서는 localhost:8080 으로 통신이 가능하다.
한개의 POD 내의 container 는 서로 다른 port 를 사용하여야 한다.
POD의 IP는 20.111.156.75 이며,
해당 POD의 IP는 POD에 문제가 생겨서 재생성 될 경우 IP가 새로 할당되며 외부에서 접속할 경우에는 POD IP로 접속은 불가능하다.
Label
Lable은 POD 외의 다른 object 에도 사용이 가능하지만, 주로 POD에 가장 많이 사용된다.
Lable은 POD 및 Object 관리를 쉽게 하기 위해 사용하는 기능이다.
(사용 목적에 따라 구분을 하는 용도로 많이 사용됨.)
label 은 Key:Value 의 쌍으로 구성된다.
(type:web 과 같은구성)
label 을 사용하는 경우는 위 그림과 같다.
고객사나 개발자가 web 서버만 접속하고 싶다고 할 경우 service1 을 생성하여 selector 에 type:web label 을 붙여서 생성하여 service1 로 접속하라고 전달하면 service1은 type:web 의 label pod 만 접속이 가능하다.
고객사나 개발자가 운영 서버만 접속하려 할 경우에는 service2 를 생성하여 selector 에 lo:prd label을 븉여서 생성하여 service2로 접속하라고 전달하면 된다.
Node Schedule
POD 생성시 어떤 Node 에 POD를 생성할지 결정하는 기능이다.
POD 생성시 Node의 라벨을 이용하여 직접 노드를 선택하여 생성할 수 있다.
POD 생성시 라벨을 이용하여 Node를 선택하지 않으면 Node Schedule 기능이 어느 Node 에 생성하는 것이 효율적인지를 판단하여 해당 Node 에 Pod를 생성한다.
위 예제 같은 경우 Node1 에는 이미 Pod 가 2개 생성되어 있고, Node2 에는 아무것도 없으므로 Node2 에 Pod를 생성하는 것이 효율적이라 판단하여 Node2 에 Pod 를 생성하게 된다.
이 외에도 각 Node 별 자원 여유량과 생성될 Pod의 자원요청량을 비교하여 여유로운쪽에 POD를 생성한다.
만약 모든 Node 가 여유가 없을경우,
CPU 초과시에는 생성될 POD가 요청한 cpu 요청량을 낮추고,
메모리 초과시에는 POD를 종료시킨다.