K8s(Kubernetes)를 설치하기 위한 도구나 배포판에는 다양한 솔루션이 있다.
주로 로컬 환경, 소규모 환경이나 중규모 환경에 적합한 배포판 위주로 설명해본다.
표준 배포 도구인 kubeadm보다 더 작은 규모에 사용되는 배포판들은 기능 상 제한이 있으므로 선택할 때 다양한 측면에서 기능 제한을 확인할 필요가 있다.
- 로컬 단일 노드, 노드 규모를 늘릴 수 있음
- docker container를 기반으로 K8s 클러스터 구축
- CNI 구현체(플러그인): Kindnet이 기본
- Ingress controller: 사용자가 별도 설치 필요
- 호스트 경로(HostPath)를 이용한 로컬 스토리지 사용 가능
- Persistent Volume을 이용한 로컬 스토리지 사용 가능(영속성 보장), 네트웍 스토리지도 사용 가능
- addon을 기본으로 제공하지 않음 (수동 설치 필요)
- 로컬 단일 노드, 노드 규모를 늘릴 수 있음
- VM 또는 docker container를 기반으로 K8s 클러스터 구축
- CNI 구현체: Flannel이 기본
- Ingress controller: Nginx가 기본
- 호스트 경로(HostPath)를 이용한 로컬 스토리지 사용 가능
- Persistent Volume을 이용한 로컬 스토리지 사용 가능(영속성 보장), 네트웍 스토리지도 사용 가능
- 다양한 addons
- CNI 구현체: Flannel이 기본
- Ingress Controller: Traefik이 기본
- 소규모 프로덕션 환경에 적합
- 시스템 자원이 제한된 환경(엣지, IoT)에 적합
- addon이 따로 있는 건 아니어서 필요한 건 helm chart로 설치해야 함
- 대신 Traefik이나 CoreDNS, Local Storage Provider 정도는 기본 제공되고 있음
- dashboard가 기본 제공되지 않음
- CNI 구현체: Calico 사용 가능
- Ingress Controller: Traefik이 기본
- 설치가 쉬움
- 다양한 addons
- K8s의 공식 도구
- CNI 구현체: 직접 선택해서 설치해야 함
- Ingress controller: Nginx, Traefik, HAproxy 중 선택
- CSI 구현체: 직접 선택해서 설치해야 함
- addon