보통 로컬에서 테스트하기 위한 로컬 쿠버네티스 배포판과, 실제 운영 환경에서 사용하기 위한 운영용 쿠버네티스 배포판이 존재합니다.
쿠버네티스의 다양한 배포판( Kubernetes Distributions)
가장 유명한 것은 docker + kubernetes인데 이는 Docker for Desktop입니다. 여기에 kubernetes를 생성할 수 있는 탭이 있는데, 이를 실행하게 되면, 로컬에 싱글노드의 쿠버네티스 클러스터가 만들어지게 됩니다.
이것과 비슷하게 minikube이라는 배포판이 있습니다. 이는 여러 driver를 제공하게 됩니다. 이 driver를 사용하면 kubernetes노드를 어떤 환경으로 구성할지 선택할 수 있습니다. 우리는 가상머신 (VMware)등을 사용할 수도 있지만 docker driver를 사용하여 컨테이너를 기반으로 쿠버네티스 클러스터 노드역할을 수행하게 해서, 싱글노드로 구성할 수 있게 해주는 배포판이라고 보시면 될 것 같습니다.
이 외에도 싱글노드 클로스터 시스템을 만드는 방법에는 K3S, MicroK8s이 있습니다
그리고 클라우드사에서 제공하는 매니지드 쿠버네티스 시스템인 AKS, GKE, EKS등이 있습니다.
로컬 쿠버네티스 배포판
위의 그래프와 같은 서비스를 사용하면 단일 노드에 빠르게 쿠버네티스 구성 및 테스트가 가능해 지게 됩니다. 쿠버네티스는 앞서 얘기했던 것 처럼 멀티 노드로 구성되는 클러스터 시스템에서 사용하는 오케스트레이션 시스템이기 때문에, 기본적으로 멀티 노드 환경에서 운영되어야 합니다. 다만 간단한 테스트 목적에서 멀티 노드 환경을 구축하기란 어렵기 때문에, 간단한 테스팅을 위해서 로컬에 싱글 노드 클러스트 구성으로 진행합니다.
하지만 일부 기능은 제한되기도 합니다. 기본적으로 쿠버네티스 클러스터 상에서 클라우드 프로바이더 컨트롤러라는 것을 통해서 클라우드에 대한 지원도 하게 됩니다. 클라우드 플랫폼에서만 사용가능한 ALB, NLB, EBS in AWS등과 같은 리소스를 사용할 수 있습니다.
뿐만 아니라 멀티 클러스터에서만 의미있는 DaemonSet, 특정 노드에만 워크로드가 띄워질 수 있도록 조절할 수 있는 옵션인 Affinity / Taint / Toleration등이 있습니다.
운영용 쿠버네티스 배포판
운영용 쿠버네티스 배포판을 구축하기 위해, 첫번째로 온프레미스 자체 서버 환경을 활용할 수도 있을것입니다. 두번째로는 AWS EC2와 같은 클라우드 환경에서 컴퓨팅 리소스를 받아서 그 위에서 쿠버네티스 클러스터를 직접 구축하는 방법입니다. 그리고 세번째는 클라우드 프로바이더에서 제공하는 매니지드 클러스터를 그냥 이용하는 방법이 있을 것입니다.
자체 서버 환경을 사용하면 클라우드 의존성은 늘어나지만 관리에 대한 부담과 각각의 컴포넌트에 대한 부담도 배가 됩니다. 그래서 첫번째, 두번째 옵션은 어렵습니다. 그래서 이에 사용될 수 있는 kops / kubespray / kubeadm등을 이용해서 보다 손 쉽게 클러스터를 구축할 수 있습니다.
실습 쿠버네티스 버전 및 배포판
'DevOps > AWS Architecture' 카테고리의 다른 글
[ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: API 리소스 (0) | 2022.09.06 |
---|---|
[ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: 쿠버네티스 클러스터 구성요소 (0) | 2022.09.05 |
[ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: 쿠버네티스 소개 (0) | 2022.09.05 |
[ Docker && Kubernetes ] - 도커 컨테이너 다루기:도커 컴포즈를 이용하여 Grafana_MySQL 구성 (0) | 2022.09.04 |
[ Docker && Kubernetes ] - 도커 컨테이너 다루기:명시적으로 여러 컨테이너 관리하기 (0) | 2022.09.04 |