K8s문서 - 알맞은 솔루션 선정

Jmnote (토론 | 기여)님의 2018년 12월 24일 (월) 16:55 판
쿠버네티스 - 알맞은 솔루션 선정
Picking the Right Solution

1 개요

쿠버네티스는 랩탑부터 클라우드 공급자의 VM들, 베어메탈 서버 랙까지 다양한 플랫폼에서 작동 가능하다. 클러스터 구성을 위해 필요한 노력은 하나의 단일 명령어를 실행시키는 수준에서 직접 자신만의 맞춤형 클러스터를 세밀하게 만드는 수준에 이르기까지 다양하다. 알맞은 솔루션을 선택하기 위해서 이 가이드를 사용하자.

쿠버네티스를 시도해보기를 원한다면, 로컬 Docker 기반의 솔루션을 사용하자.

더 많은 머신과 높은 가용성으로 확장할 준비가 되었다면, 호스트 된 솔루션이 생성하고 유지하기에 가장 쉽다.

턴키 클라우드 솔루션은 클라우드 공급자들의 넓은 범위를 다루고 생성하기 위해서 약간의 명령어가 필요하다. 온-프레미스 턴키 클라우드 솔루션은 프라이빗 네트워크의 보안과 결합된 턴키 클라우드 솔루션의 단순함을 가진다.

호스팅한 자원을 구성하는 방법을 이미 가지고 있다면, 머신 당 단일 명령어로 클러스터를 만들어내기 위해서 kubeadm을 사용하자.

사용자 지정 솔루션은 단계별 지침부터 쿠버네티스 클러스터를 처음부터 설정하기 위한 일반적인 조언까지 다양하다.

2 로컬 머신 솔루션

  • Minikube는 개발과 테스트를 위한 단일 노드 쿠버네티스 클러스터를 로컬에 생성하기 위한 하나의 방법이다. 설치는 완전히 자동화 되어 있고, 클라우드 공급자 계정 정보가 필요하지 않다.
  • microk8s는 개발과 테스트를 위한 쿠버네티스 최신 버전을 단일 명령어로 로컬 머신 상의 설치를 제공한다. 설치는 신속하고 빠르며(~30초) 단일 명령어로 Istio를 포함한 많은 플러그인을 지원한다.
  • IBM Cloud Private-CE (Community Edition)는 개발과 테스트 시나리오를 위해 1개 또는 더 많은 VM에 쿠버네티스를 배포하기 위해서 머신의 VirtualBox를 사용할 수 있다. 이는 전체 멀티 노드 클러스터로 확장할 수 있다.
  • IBM Cloud Private-CE (Community Edition) on Linux Containers는 Terraform/Packer/BASH 기반의 리눅스 호스트 상의 LXD 클러스터에 7개의 노드(부트 1개, 마스터 1개, 관리 1개, 프록시 1개 그리고 워커 3개)를 생성하기 위한 Infrastructure as Code (IaC) 스크립트이다.
  • Kubeadm-dind는 하나의 docker 데몬이 필요한 멀티 노드 쿠버네티스 클러스터이다.(minikube는 단일 노드이다.) 클러스터 생성을 위해서 docker-in-docker 기술을 사용한다.
  • Ubuntu on LXD는 로컬 호스트에서 9개의 인스턴스 배포를 지원한다.

3 호스트 된 솔루션

  • AppsCode.com는 AWS와 Google Cloud Platform을 포함하여 다양한 퍼블릭 클라우드의 관리형 쿠버네티스 클러스터를 제공한다.
  • APPUiO는 쿠버네티스 워크로드를 지원하는 OpenShift 퍼블릭 클라우드 플랫폼을 구동한다. 게다가 APPUiO는 퍼블릭 또는 프라이빗 클라우드에서 구동 중인 프라이빗 OpenShift 클러스터 관리를 제공한다.
  • Giant Swarm은 온-프레미스 또는 퍼블릭 클라우드 데이터센터 내에서 관리형 쿠버네티스 클러스터를 제공한다.
  • IBM Cloud Kubernetes Service는 관리형 쿠버네티스 클러스터를 제공한다. 그와 함께 격리 종류, 운영 도구, 이미지와 컨테이너 통합된 보안 통찰력, Watson, IoT, 데이터와의 통합도 제공한다.
  • Kubermatic는 AWS와 Digital Ocean을 포함한 다양한 퍼블릭 클라우드뿐만 아니라 온-프레미스 상의 OpenStack 통합을 위한 관리형 쿠버네티스 클러스터를 제공한다.
  • Kublr는 AWS, Azure, GCP 및 온-프레미스에서 기업 수준의 안전하고, 확장 가능하며, 신뢰성 높은 쿠버네티스 클러스터를 제공한다. 여기에는 즉시 사용 가능한 백업 및 재해 복구, 중앙 집중식 다중 클러스터 로깅 및 모니터링, 내장 경고 서비스가 포함된다.
  • Madcore.Ai는 AWS에서 쿠버네티스 인프라를 배포하기 위한 devops 중심의 CLI 도구이다. 또한 마스터, 스팟 인스턴스 그룹 노드 오토-스케일링, ingress-ssl-lego, Heapster, Grafana를 지원한다.
  • OpenShift Online은 쿠버네티스 애플리케이션을 위해 호스트 된 무료 접근을 제공한다.
  • Oracle Container Engine for Kubernetes는 컨테이너 애플리케이션을 클라우드에 배포하는 데 사용할 수 있는 완벽하게 관리되고, 확장 가능하며, 가용성이 높은 서비스이다.
  • Platform9는 온-프레미스 또는 모든 퍼블릭 클라우드에서 관리형 쿠버네티스를 제공한다. 또한, 24/7 상태 모니터링 및 알람 및 경고 서비스를 제공한다.(Kube2go는 웹 UI 기반의 쿠버네티스 클러스터 배포 서비스인 Platform9가 Platform9 Sandbox에 통합된 형태로 출시되었다.)
  • Stackpoint.io는 다중 퍼블릭 클라우드에서 쿠버네티스 인프라 자동화 및 관리 기능을 제공한다.
  • SysEleven MetaKube는 자체 오픈스택 퍼블릭 클라우드 기반의 매니지드 쿠버네티스-애즈-어-서비스이며, 수명주기 관리, 관리자 대시보드, 모니터링, 오토스케일링 등을 제공한다.
  • VMware Cloud PKS는 VMware 클라우드 서비스 포트폴리오에서 제공하는 기업용 쿠버네티스-애즈-어-서비스이며, 쉬운 사용법, 기본 보안, 비용 효율성, SaaS기반 쿠버네티스 클러스터를 제공한다.

4 턴키 클라우드 솔루션

다음 솔루션들은 클라우드 IaaS 공급자의 범위에서 몇 안 되는 명령어로 쿠버네티스 클러스터를 생성을 허용한다. 이러한 솔루션은 활발히 개발되었고 활발한 커뮤니티 지원을 한다.

5 온-프레미스 턴키 클라우드 솔루션

다음 솔루션들은 몇 안 되는 명령어를 사용하여 내부의 안전한 클라우드 네트워크에서 쿠버네티스 클러스터를 생성할 수 있다.

6 사용자 지정 솔루션

쿠버네티스는 넓은 범위의 클라우드 공급자와 베어메탈 환경에서, 그리고 많은 기반 운영 체제에서 동작할 수 있다.

필요에 맞는 가이드를 아래에서 찾았다면, 그것을 사용하자. 약간 구식일 수도 있지만, 처음부터 시작하는 것보다 더 쉬울 것이다. 특별한 요구사항이 있기 때문에, 또는 단지 쿠버네티스 클러스터의 아래에 무엇이 있는지를 이해하기 원하기 때문에 처음부터 시작하기를 원한다면, 맨 처음부터 시작하기 가이드를 시도하라.

새로운 플랫폼에서 쿠버네티스 지원하는 것에 관심이 있다면, Writing a Getting Started Guide를 참고하라.

6.1 일반

호스팅한 리소스를 구성하는 방법을 이미 알고 있다면, kubeadm을 사용하면 머신당 단일 명령어로 쉽게 클러스터를 가지고 올 수 있다.

6.2 클라우드

다음 솔루션은 위의 솔루션에서 다루지 않는 클라우드 공급자와 운영체제의 조합이다.

6.3 온-프레미스 VM

6.4 베어 메탈

6.5 연동

다음 솔루션들은 타사 스케줄러, 자원 관리자, 낮은 레벨의 플랫폼의 연동을 제공한다.

  • DCOS
    • Community Edition DCOS는 AWS를 사용한다.
    • Enterprise Edition DCOS는 클라우드 호스팅, 온-프레미스 VM, 베어메탈을 지원한다.

7 솔루션 표

아래는 위에서 나열한 모든 솔루션의 표이다.

IaaS 공급자 구성 관리 OS 네트워킹 문서 지원 레벨
any any multi-support any CNI docs Project (SIG-cluster-lifecycle)
Google Kubernetes Engine GCE docs Commercial
Red Hat OpenShift Ansible & CoreOS RHEL & CoreOS multi-support docs Commercial
Stackpoint.io multi-support multi-support docs Commercial
AppsCode.com Saltstack Debian multi-support docs Commercial
Madcore.Ai Jenkins DSL Ubuntu flannel docs Community (@madcore-ai)
Platform9 multi-support multi-support docs Commercial
Kublr custom multi-support multi-support docs Commercial
Kubermatic multi-support multi-support docs Commercial
IBM Cloud Kubernetes Service Ubuntu IBM Cloud Networking + Calico docs Commercial
Giant Swarm CoreOS flannel and/or Calico docs Commercial
GCE Saltstack Debian GCE docs Project
Azure Kubernetes Service Ubuntu Azure docs Commercial
Azure (IaaS) Ubuntu Azure docs Community (Microsoft)
Bare-metal custom Fedora none docs Project
Bare-metal custom Fedora flannel docs Community (@aveshagarwal)
libvirt custom Fedora flannel docs Community (@aveshagarwal)
KVM custom Fedora flannel docs Community (@aveshagarwal)
DCOS Marathon CoreOS/Alpine custom docs Community (Kubernetes-Mesos Authors)
AWS CoreOS CoreOS flannel docs Community
GCE CoreOS CoreOS flannel docs Community (@pires)
Vagrant CoreOS CoreOS flannel docs Community (@pires, @AntonioMeireles)
CloudStack Ansible CoreOS flannel docs Community (@sebgoa)
VMware vSphere any multi-support multi-support docs Community
Bare-metal custom CentOS flannel docs Community (@coolsvap)
lxd Juju Ubuntu flannel/canal docs Commercial and Community
AWS Juju Ubuntu flannel/calico/canal docs Commercial and Community
Azure Juju Ubuntu flannel/calico/canal docs Commercial and Community
GCE Juju Ubuntu flannel/calico/canal docs Commercial and Community
Oracle Cloud Juju Ubuntu flannel/calico/canal docs Commercial and Community
Rackspace custom CoreOS flannel/calico/canal docs Commercial
VMware vSphere Juju Ubuntu flannel/calico/canal docs Commercial and Community
Bare Metal Juju Ubuntu flannel/calico/canal docs Commercial and Community
AWS Saltstack Debian AWS docs Community (@justinsb)
AWS kops Debian AWS docs Community (@justinsb)
Bare-metal custom Ubuntu flannel docs Community (@resouer, @WIZARD-CXY)
oVirt docs Community (@simon3z)
any any any any docs Community (@erictune)
any any any any docs Commercial and Community
any RKE multi-support flannel or canal docs Commercial and Community
any Gardener Cluster-Operator multi-support multi-support docs Project/Community and Commercial
Alibaba Cloud Container Service For Kubernetes ROS CentOS flannel/Terway docs Commercial
Agile Stacks Terraform CoreOS multi-support docs Commercial
IBM Cloud Kubernetes Service Ubuntu calico docs Commercial
Digital Rebar kubeadm any metal docs Community (@digitalrebar)
VMware Cloud PKS Photon OS Canal docs Commercial

7.1 컬럼 정의

  • IaaS 공급자는 쿠버네티스가 구동되는 가상 또는 물리적 머신(노드)를 제공하는 제품 또는 조직이다.
  • OS는 노드의 기본 운영 체제이다.
  • 구성 관리는 노드에서 쿠버네티스를 설치하고 유지 관리하는 데 도움이 되는 구성 관리 시스템이다.
  • 네트워킹네트워킹 모델을 구현하는 것이다. 네트워크 유형이 _none_인 노드는 단일 노드 이상을 지원하지 않거나, 단일 물리 노드에서 여러 VM 노드를 지원할 수 있다.
  • 적합성은 명시된 구성으로 생성된 클러스터가 쿠버네티스 v1.0.0의 API 및 기본 기능을 지원하는지의 프로젝트 적합성 테스트 통과 여부를 나타낸다.
  • 지원 레벨
    • 프로젝트: 쿠버네티스 커미터는 현재 구성을 정기적으로 사용하므로, 일반적으로 최신 쿠버네티스 릴리즈와 함께 동작한다.
    • 상업용: 자체 지원 계약을 가진 상업용 제품.
    • 커뮤니티: 커뮤니티 기여를 바탕으로 활발하게 지원. 쿠버네티스 최신 릴리즈에는 작동하지 않을 수도 있다.
    • 비활성: 현재 유지되지 않는다. 쿠버네티스 최초 사용자에게 권장하지 않으며, 삭제될 수도 있다.
  • Note는 사용된 쿠버네티스 버전 같은 기타 관련 정보가 있다.

8 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}