해당 내용은 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의를 공부한 내용입니다. 내용을 그대로 번역하기보다는, 제가 이해하기 쉬운 대로 수정한 부분들이 있습니다.
⚠️ 영어 독해가 많이 부족합니다. 틀린 내용이 있으면 알려주시면 감사하겠습니다.
이번 강의에서는 쿠버네테스 클러스터를 호스팅하는 인프라에 대해 알아보겠습니다.
지난 강의에서 쿠버네테스 클러스터 배포를 위한 다양한 옵션에 대해 얘기했습니다. 여기서 좀 더 자세히 살펴보겠습니다.
쿠버네테스는 다양한 시스템에 다양한 방식으로 배포될 수 있습니다. 노트북에서 시작해서 회사의 물리적 또는 가상 서버 클라우드에서도 가능합니다. 여러분의 요구 사항과 클라우드 생태계 그리고 배포하고자 하는 앱의 종류에 따라 이 솔루션 중 하나를 선택할 수 있습니다.
노트북이나 로컬 기기로 시작하는 방법은 여러 가지가 있습니다. 먼저, 지원되는 Linux 컴퓨터에선 수동으로 바이너리를 설치해 로컬 클러스터를 설정하는 것부터 시작할 수 있습니다. 하지만 그건 너무 지루합니다. 모든 걸 자동화하는 솔루션에 의존하면 몇 분 만에 클러스터를 셋업할 수 있습니다. 그 솔루션은 잠시 후에 살펴보겠습니다.
반면에, Windows에선 쿠버네티스를 처음엔 설정할 수 없습니다. Windows 바이너리가 없으니까요. Hyper-V나 VMware Workstation, Workshop Box 같은 가상 소프트웨어에 의지해야 합니다. Linux VM을 생성하고, 거기에서 쿠버네티스를 실행할 수 있습니다. Windows VM에서 Docker 컨테이너로서의 도커로 쿠버네티스 구성 요소를 실행하는 솔루션도 있습니다. 이때에도 Docker 이미지는 Linux 기반으로 Hyper-V가 Linux Docker 컨테이너를 실행하기 위해 만든 작은 Linux OS에서 실행된다는 것을 기억하세요.
로컬 컴퓨터에서 쿠버네티스를 쉽게 시작할 수 있는 솔루션은 어떤 게 있을까요? Minikube는 단일 노드 클러스터를 쉽게 배포합니다. Oracle Workshop Box 같은 가상화 소프트웨어에 의존해 쿠버네티스 클러스터 구성 요소를 작동하는 워크숍 기기를 만듭니다. kubeadm 툴은 하나의 노드 또는 다중 노드 클러스터를 아주 빨리 배포하는 데 사용됩니다. 하지만 이걸 위해서는 필요한 호스트를 지원되는 구성과 함께 직접 프로비저닝해야 합니다.
처음 두 개와 kubeadm의 차이점은 처음 두 개는 VM이 자체 구성을 지원한다는 겁니다. 반면에 kubeadm은 이미 VM이 프로비전된 것을 기대합니다. kubeadm은 동시에 다중 노드 클러스터도 배포할 수 있습니다. 처음 두 개는 안 그렇죠.
쿠버네티스 클러스터를 노트북에 로컬로 배포하는 건 보통 학습, 테스트 개발 목적으로 합니다. 생산 목적으로 쿠버네티스 클러스터를 시작할 방법은 많습니다. 사설 또는 공용 클라우드 환경을 사용하면 됩니다.
이는 턴키 솔루션이나 Hosted or Managed 솔루션으로 분류됩니다. 턴키 솔루션은 요구되는 VM을 프로비전하는 곳입니다. 툴이나 스크립트를 이용해 쿠버네티스 클러스터를 구성합니다. 가장 중요한 것은 VM을 관리하고 패치하고 업그레이드하는 것을 책임져야 한다는 점입니다.
하지만 클러스터 관리와 유지 관리는 이런 툴과 스크립트를 사용하면 대부분 쉬워집니다. 예를 들어 KOPs 도구를 이용해 AWS에서 쿠버네티스 클러스터를 배포하는 것입니다. 호스트형 솔루션은 서비스 솔루션으로 쿠버네티스와 비슷합니다. 클러스터와 요구되는 VM을 공급자가 배포하고 공급자가 쿠버네티스를 구성하는 것입니다. VM은 공급자에 의해 유지됩니다. 예를 들어, 구글 컨테이너 엔진은 쿠버네티스 클러스터를 몇 분 만에 배포하게 해줍니다. 여러분 혼자 어떤 구성도 실행할 필요 없이 말입니다.
Turnkey Solution
턴키 솔루션에 대해 살펴보겠습니다. OpnShift는 레드 햇의 온프레미스 쿠버네티스 플랫폼입니다. 오픈시프트는 오픈 소스 컨테이너 애플리케이션 플랫폼으로, 쿠버네테스 위에 만들어져 있습니다. 추가적인 툴의 집합과 훌륭한 GUI를 제공해 쿠버네티스의 구성과 CICD 파이프라인을 쉽게 통합할 수 있게 해줍니다. 초급코스에 오픈시프트가 있으니 관심 있으면 한 번 보시기 바랍니다.
Cloud Foundry 컨테이너 런타임은 Cloud Foundry의 OpenSource 프로젝트입니다. Vosch라는 오픈 소스 툴로 고가용성 쿠버네티스 클러스터를 배포 및 관리합니다. 쿠버네티스를 위한 현존하는 VMware 환경을 활용하고 싶다면, VMware 클라우드 PKS 솔루션을 사용하시기 바랍니다. Vagrant는 유용한 스크립트 세트를 제공해 서로 다른 클라우드 서비스 공급자에 쿠버네티스 클러스터를 배포합니다. 이 모든 솔루션은 여러분 회사 내에서 쿠버네티스 클러스터를 배포하고 관리하는 걸 쉽게 해줍니다. 구성이 갖춰진 가상 컴퓨터가 몇 대 있을 것입니다. 이들은 쿠버네티스 인증을 받은 솔루션 중 몇 가지입니다. 더 많은 솔루션들은 쿠버네티스 문서 페이지에서 확인해 보세요.
Hosted Solutions
호스트 솔루션들을 살펴보겠습니다. 구글 컨테이너 엔진은 구글 클라우드 플랫폼의 서비스 제공자로서 아주 인기 있는 쿠버네티스 플랫폼입니다. OpenShift online은 Red Hat이 제공하는 제품으로 온라인에서 완전히 작동하는 쿠버네티스 클러스터에 접속할 수 있습니다. Azure는 Azure 쿠버네티스 서비스를 갖고 있습니다. 마지막으로 쿠버네티스를 위한 아마존 엘라스틱 컨테이너 서비스는 아마존 호스트 쿠버네티스가 제공하는 서비스입니다. 이 솔루션은 일부에 불과합니다. 더 많은 솔루션들이 있습니다.
Our Choice
우리는 지금 쿠버네티스를 학습하는 것이 목적이고 누군가는 공용 클라우드 계정에 액세스할 수 없다는 걸 고려했을 때, 우리는 가상 컴퓨터 로컬 설정을 선호합니다. 우린 로컬 시스템에 로컬 쿠버네테스 클러스터를 처음부터 배포하기로 선택했습니다. VirtualBox에 VM 여러 대를 생성함으로써요.
Our Design
이제 우리 설계는 3개의 노드로, 마스터에서 워커노드까지 VM에 프로비전된 Virtual Box에 배포될 것입니다.
'MLOps > Doker & Kubernetes' 카테고리의 다른 글
Udemy CKA 강의 정리 237: ETCD in HA (0) | 2023.01.27 |
---|---|
Udemy CKA 강의 정리 236: Configure High Availability (0) | 2023.01.27 |
Udemy CKA 강의 정리 234: Design a Kubernetes Cluster (0) | 2023.01.27 |
Udemy CKA 강의 정리 233: Download Presentation Deck (0) | 2023.01.27 |
Udemy CKA 강의 정리 230: Ingress - Annotations and rewrite-target (0) | 2023.01.27 |
댓글