쿠버네티스 환경 선택

쿠버네티스 환경의 종류

로컬 쿠버네티스 : 이중화 되어있지 않아 개인적인 테스트나 개발 환경으로 적합 쿠버네티스 구축 도구 : 도구를 사용하여 온프레미스/클라우드에 클러스터를 구축 관리형 쿠버네티스 서비스 : 퍼블릭 클라우드의 관리형 서비스로 제공하는 클러스터

로컬 쿠버네티스

미니큐브 : 물리 머신에 로컬 쿠버네티스를 쉽게 구축하고 실행할 수 있는 도구 Docker Desktop for Mac/Windows : 도커에서 만든 도구. 쿠버네티스를 지원하도록 변경되었다. kind : kubernetes in Docker 의 약자. 쿠버네티스 자체 개발을 위한 도구.

쿠버네티스 구축 도구

쿠버네티스 서비스 수준 목표(SLO)

API 응답 시간 단일 객체의 변경 API 요청에 대해 지난 5분 동안 99%가 1초 내에 돌아올 것(일부 제외) non-streaming의 API 요청에 대해 지난 5분 동안 99%가 아래 초 이내로 돌아올 것(일부 제외)

특정 리소스 : 1초
네임스페이스 전체 : 5초
클러스터 전체 : 30초

파드 기동 시간 지난 5분 동안 99%가 5초 이내에 기동할 것(이미지 다운로드 시간이나 초기화 컨테이너 처리 시간은 포함하지 않음)

큐브어드민(kubeadm) 쿠버네티스에서 제공하는 공식 구축 도구

플라넬(Flannel)

기본적으로 도커에서 기동한 컨테이너에 할당된 IP 주소는 호스트 외부에서 볼 수 없는 내부 IP 주소이므로, 각 노드에 배포된 컨테이너 간의 통신은 불가능한 상태
이 문제를 해결하고 멀티 노드 쿠버네티스 클러스터가 되기 위해서는 각 호스트의 내부 내트워크 접속성을 확보해야함
이를 위해 플라넬을 이용하여 구현 가능

랜처(Rancher)

랜처 랩에서 개발하고 있는 오픈 소스 컨테이너 플랫폼 여러 클러스터의 통합 관리

쿠버네티스 클러스터를 다양한 플랫폼에 배포(AWS, OpenStack, VMware) 온프레미스 환경을 포함한 기존 쿠버네티스 클러스터를 랜처로 관리(클러스터 import 기능)

여러 클러스터에 대해 애플리케이션 배포를 가능하게 하는 멀티 클러스터 앱 기능 중앙 집중적 인증, 모니터링과 웹 UI 등의 기능 제공

풍부한 애플리케이션 카탈로그 이스티오(Istio)와의 통합/연계

퍼블릭 클라우드 관리형 쿠버네티스

EKS(Elastic Kubernetes Service)

IAM(Identity and Access Management)과 쿠버네티스 사용자를 연결하여 IAM을 기반으로 권한을 관리할 수 있음
Pod 네트워크와 AWS VPC의 서브넷이 직접 연결되어 가상 머신에서 컨테이너로 직접 통신할 수 있는 네트워크 구성 가능
AWS 서비스와 통합된 기능들이 기대되는 서비스
일반적으로 AWS가 제공하는 AMI(Amazon Machine Image)에서 생성한 EC2 인스턴스를 쿠버네티스 노드로 사용
또한 AWS에서 공개한 Packer 설정과 스크립트를 사용하여 커스터마이즈한 AMI를 생성할 수 있음
위 AMI로 EC2를 생성하여 쿠버네티스 노드로 사용할 수도 있음

쿠버네티스 플레이그라운드

이를 이용하면 웹 화면에서 쿠버네티스를 손쉽게 테스트할 수 있어서 매우 편리하다.
최대 다섯 대의 인스턴스를 기동할 수 있음
kubeadm을 사용하여 구축, 사용 가능
연속 사용 시간이 최대 4시간이라는 제한이 있으니 주의

Last updated