왜 쿠버네티스인가?
많은 서비스를 운영하는 대기업이나
대규모 서비스를 운영하는 대기업
에서 kubernetes 에서 적극적으로 활용할 수 있다.
- Auto-Scaling : 가상화 기술을 통해 트래픽이 많은 서버에 자연스럽게 더 많은 자원을 이용해 준다.
- Self-Healing : 서버 장애에 대비하여 가상화 백업 서버를 이용하여 한 서버에 장애가 발생할 경우 알아서 서비스에 자원을 이용한다.
- Deployment : 쿠버네티스 클러스터를 구동시키면, 컨테이너화된 애플리케이션을 배포하게 되는데, 그러기 위해 디플로이먼트를 만들고 이 디플로이먼트에 애플리케이션을 어떻게 배포하고 업데이트 하는지를 알려주면 이를 자동으로 수행해 준다.
- Automated Rollbacks : 디플로이먼트된 애플리케이션이 업데이트 되고, 그 애플리케이션을 롤백하고 싶다면.. 쿠버네티스는 기본적으로 모든 롤아웃 기록을 가지고 있어 언제든 롤백이 가능하다.
- Load Balancing : 쿠버네티스는 각 Pod 내의 컨테이너별로 세세히 관리하기 때문에, 부하를 최대한 분산시키며 서비스를 안정적으로 운영할 수 있게 해준다.
VM 과는 무슨 차이가 있는가?
좌측은 VM, 우측은 Docker Container 이다.
VM 은 OS 위에, Hypervisor 위에, Guest OS 를 다시 올리게 된다.
하지만 Docker 는 OS 위에, Docker Engine 을 통해 바로 애플리케이션을 이용할 수 있다.
이에 따라 Docker 는 VM 에 비해 엄청나게 월등한 성능을 발휘하며, 띄어난 유연성과 확장성을 지니고 있다.
개발 환경에 구애받지 않고 각 서비스당 컨테이너를 따로 두어서 애플리케이션에 최적화된 각각의 환경을 구성할수도 있다.
- Pod 내의 컨테이너는 IP와 Port를 공유한다.
즉 두개 이상의 컨테이너가 하나의 파드를 통해 배포되었을 때 localhost로 통신이 가능하게 된다. - Pod 내에 배포된 컨테이너 간에는 디스크 볼륨을 공유할 수 있다.
- Pod 는 Pod 단위로 얼마든지 확장이 가능하다.
반응형