에지에서 Kubernetes를 실행하려고 하는데 관리형 솔루션이 요구 사항을 제대로 충족하지 못하는 경우 옵션으로 운영 체제 미설치를 탐색할 수 있습니다. 이 문서는 에지에서 Kubernetes 클러스터를 구성할 경우 사용 사례에 가장 적합한 옵션을 찾는 데 도움이 됩니다.
참고
이 문서는 철저한 비교를 포함하지 않습니다. 오히려 공통 옵션 간의 주요 한정자를 기반으로 의사 결정을 내릴 수 있는 잠재적인 경로를 제시합니다.
에지의 운영 체제 미설치 Kubernetes에 대한 의사 결정 트리
에지에서 운영 체제 미설치 Kubernetes에 대해 아래에 제시된 옵션 중에서 결정할 때 다음 트리를 참조하세요.
이 플로차트의 Visio 파일을 다운로드합니다
MicroK8s: Canonical에서 제공하는 요구 사항을 준수하는 "로옵스(Low Ops)" Kubernetes
K3s: IoT 및 에지 컴퓨팅용으로 빌드된 인증된 Kubernetes 배포
kubeadm: 기본 Kubernetes 클러스터를 만들기 위한 Kubernetes 도구, 표준 컴퓨팅에 적합(Linux/Windows)
참고
로옵스(Low Ops)는 자동 업데이트 또는 간소화된 업그레이드와 같은 일부 운영 작업을 추상화하거나 더 쉽게 만들 때의 작업 비용 감소를 의미합니다.
Canonical의 MicroK8s
MicroK8s는 스냅 지원을 통해 Linux 컴퓨터에 쉽게 설치할 수 있는 단일 스냅 패키지로 제공됩니다. Windows, macOS 및 raspberry PI/ARM에 대체 설치를 사용할 수 있습니다. 설치된 경우 MicroK8s는 MicroK8s 도구를 사용하여 관리할 수 있는 단일 노드 클러스터를 만듭니다. 고유한 kubectl로 패키징되며 특정 추가 기능(예: helm, dns, ingress, metallb 등)을 사용하도록 설정할 수 있습니다. 다중 노드, Windows 노드 및 HA(고가용성) 시나리오도 지원됩니다.
고려 사항:
MicroK8s를 실행하려는 위치에 따라 다양한 리소스 요구 사항이 있습니다. 최소 리소스 요구 사항은 제품 문서를 참조하세요. 예를 들면 다음과 같습니다.
Ubuntu: 4GB RAM, 20GB 디스크 공간
Windows: 4GB RAM, 40GB 디스크 공간
Windows 워크로드는 Calico CNI를 사용하는 MicroK8s 클러스터에서만 지원됩니다.
MicroK8s 다중 노드 클러스터의 각 노드는 단일 컴퓨터의 별도 VM 또는 컨테이너이든, 동일한 네트워크의 다른 컴퓨터이든 관계없이 자체 환경에서 작동해야 합니다.
일부 ARM 하드웨어에서 MicroK8s를 실행할 때 문제가 발생할 수 있습니다. 가능한 해결 방법은 문서를 참조하세요.
Rancher의 K3s
K3s는 Kubernetes의 경량 배포판입니다. K3s는 단일 이진 파일로 배포되며 MicroK8s와 유사한 kubectl 및 ctr과 같은 포함된 도구와 함께 제공됩니다.
고려 사항:
이진 파일은 100MB 미만이지만 시나리오에 따라 최소 리소스 요구 사항이 있습니다. 최소 리소스 요구 사항은 문서를 참조하세요.
SQLite3은 기본 스토리지 시스템이지만 다른 옵션도 지원됩니다.
Windows 노드는 현재 K3s에 대해 지원되지 않습니다.
HA는 외부 데이터베이스 또는 포함된 데이터베이스를 사용하여 달성할 수 있습니다. K3s는 릴리스 v1.19.5+k3s1부터 포함된 etcd에 대한 전체 지원을 추가했습니다.
kubeadm
Kubeadm은 처음부터 Kubernetes를 단순하게 설치하는 것입니다.
고려 사항:
컴퓨터당 2GiB(기비바이트) 이상의 RAM이 필요합니다.
컨트롤 플레인 노드에 2개 이상의 CPU가 필요합니다.
컨트롤 플레인 노드는 deb/rpm 호환 Linux OS를 실행하는 컴퓨터여야 합니다.
Kubernetes 버전 및 버전 기울이기 지원 정책은 kubeadm 및 Kubernetes 전체에 적용됩니다. 해당 정책을 확인하여 지원되는 Kubernetes 및 kubeadm 버전에 대해 알아보세요.
관리/자동화
운영 체제 미설치 클러스터의 프로비저닝 자동화 및 관리에는 Ansible 및 Metal3과 같은 몇 가지 옵션을 살펴볼 수 있습니다.
Ansible은 원격 리소스를 관리하는 쉬운 방법을 제공하므로 원격 노드를 관리하고 Kubernetes 클러스터에 조인하는 주요 후보입니다. Linux 컴퓨터에서 실행되는 Ansible 이진 파일과 원격 컴퓨터의 SSH만 있으면 됩니다. 이 방법은 대상 컴퓨터에서 임의의 스크립트를 실행할 수 있는 유연한 메커니즘을 제공합니다. 즉, 위에서 언급한 모든 도구와 함께 Ansible을 사용할 수 있습니다.
Metal3은 클러스터 API와 유사한 개념을 활용하여 이 문제를 해결하기 위해 다른 접근 방식을 취합니다. 원시 Kubernetes 개체를 사용하여 운영 체제 미설치 클러스터를 프로비저닝하고 관리하려면 임시 클러스터를 인스턴스화해야 합니다. 본 문서 작성 당시 Metal3은 kubeadm을 사용하므로 경량 Kubernetes 배포를 지원하지 않습니다.
클러스터 프로비저닝 이외의 관리를 위해 Azure Arc 지원 클러스터에 대해 알아보고 Azure에서 클러스터를 관리하는 것이 좋습니다.
다음 단계
자세한 내용은 다음 문서를 참조하세요.