4. Working with Kubernetes Objects
chapter 4는 쿠버네티스가 뭘 어떻게 실행하는지 살짝 맛만 보여주고 넘어가는 챕터다.
쿠버네티스에 혀끝만 살짝 닿게 만들고 chapter 5에서 다시 이론 수업으로 돌아가버린다.
이 책의 가장 큰 특징이며, 장점이자 단점은, 여러가지를 전부 다 한번씩 맛보여 주고 싶어 한다는 점 같다.
입문서적이라 덜 자세하게 쓰려고 하며,
전문적인 내용을 한번씩 다 보려주려다 보니까.
처음 접하는 사람에게는, 어? 이거 다 이해 안됬고, 뭔소리 하는지 전혀 모르겠는데 여기서 넘어가도 되나? 싶은 생각이 들어 혼란이 오게끔 만든다.
Deployment 1페이지 -> Pods 1페이지 -> ReplicaSet 1페이지 -> Service Resource 순으로 저자가 만들어 놓은 어플리케이션을 돌려보는 과정을 거치지만,
Deployment가 ReplicaSet을 포함하고, ReplicaSet이 Pods를 포함하며,
Service가 외부로 pod의 그룹을 expose하기 때문에
Pods -> ReplicaSet -> Deployment -> Service 순으로 설명하는 다른강의가 훨씬 이해에 도움이 되었다.
Pods은 컨테이너를 감싸는 단위이다.
-> 그냥 컨테이너 자체를 쓰지 왜 멀쩡한 컨테이너를 pods로 감쌌나?
=> Container runtime의 객체와 kubernetes의 객체를 Decoupling 함으로써 Pods라는 걸 하나 구현하는 걸로 Docker, containerd 등의 여러 런타임 중 골라서 쓸 수 있게 된다.
=> 그리고 하나의 Pod안에 여러개의 Container를 담아 volume을 공유하는 등의 용도로도 사용할 수 있다.
=> 같은 pod 안의 컨테이너들은 서로를 localhost로 지목할 수 있으며, 다른 pod의 경우는 podip를 통해 통신이 가능하다.
ReplicaSet은 Pod를 몇개 복제할까? 에 대해서 다루는 오브젝트이다. HDFS등의 분산스토리지를 공부한 적있다면 유사하다고 느낄 수 있으며, 클라우드가 익숙한 사람은 AutoScaler와 비슷한 포지션이라고 생각할 수 도 있다.
=> 다만 ReplicaSet은 Pod의 갯수만을 책임질 뿐, 버전 등은 책임지지 않는다.
쿠버네티스는 컨테이너를 다뤄주는 시스템이기에,
기본적으로 사용자의 의도 (Yaml 파일이나, Kubectl 명령등) 과 일치해 질때 까지 컨테이너를 조정해 나가는 역할을 한다. 그 과정에서, 일시적으로 사용자의 의도 보다 숫자가 많아질 수도 있고, 적어질 수 도 있는 과정이 있음을 알고 미리 대비해야 한다.
Helm에 대해서도 짧게 다룬다.
=> 역시나 그냥 왠지도 모르고 저자의 repository의 yaml 파일을 가져다가 실행해보는 것이 끝이다.
처음에 말한 것처럼 이 챕터는 살짝 맛만 보고 넘어갈 뿐이고 자세한 각 요소드들에 대한 설명들은 이후의 챕터들에 분포해 있다.