Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스레드
- 자료구조
- Thread
- 실전 자바 고급 1편
- 동시성
- 인프런
- filewriter filereader
- 멀티 쓰레드
- 리스트
- 쓰레드
- container
- Java IO
- java network
- 쿠버네티스
- 도커 엔진
- Docker
- LIST
- 컨테이너
- java
- 스레드 제어와 생명 주기
- 시작하세요 도커 & 쿠버네티스
- 알고리즘
- Collection
- 자바 입출력 스트림
- 김영한
- 자바
- 자바 io 보조스트림
- 도커
- java socket
- Kubernetes
Archives
- Today
- Total
쌩로그
[Kubernetes] 쿠버네티스의 특징 본문
반응형
목차
- 포스팅 개요
- 본론
1. 포스팅 개요
이 포스팅은 위키북스 출판사의 '시작하세요! 도커/쿠버네티스'의 제 5장 쿠버네티스 설치
중 쿠버네티스에 대한 특징에 대한 내용이다.
2. 본론
도커 컨테이너와 도커 스웜, 도커 컴포즈는 모두 훌륭한 도구들이지만, 이들을 한군데로 모아 사용할 수 있는 더욱 훌륭한 프로젝트가 있는데 바로 쿠버네티스(Kubernetes)이다.
쿠버네티스
- 그리스어로 조타수라는 뜻이다.
- 오늘날 표준으로 사용되고 있는 컨테이너 오케스트레이션 도구이다.
- 구글에서 2014년에 오픈소스로 공개한 이후로, 많은 회사들이 쿠버네티스를 실제 서비스 운영에 도입해서 사용하고 있다.
- 도커 스웜 모드 처럼 여러 대의 도커 호스트를 하나의 클러스터로 만들어주는 점은 같지만, 세부적인 기능을 더욱 폭넓게 제공하기 때문에 실제 서비스 운영 단계에서 가장 많이 쓰이고 있다.
쿠버네티스의 장점
- 서버 자원 클러스터링, 마이크로서비스 구조의 컨테이너 배포, 서비스 장애 복구 등 컨테이너 기반의 서비스 운여에 필요한 대부분의 오케스트레이션 기능을 폭넓게 지원한다.
- 구글, 레드햇을 비롯한 많은 오픈소스 진영에서 쿠버네티스의 소스코드에 기여하고 있어서 성능과 안정성 면에서 신뢰받고 있다.
- 영속적 볼륨(Persistent Volume), 스케줄링, 장애 복구, 오토 스케일링, 서비스 디스커버리 및 인그레스(Ingress) 등 컨테이너 기반의 클라우드를 운영할 때 필요한 대부분의 기능과 컴포넌트를 사용자가 직접 커스터마이징 할 수 있다.
- CNCF(Cloud Native Computing Foundation) 및 다른 클라우드 운영 도구들과 쉽게 연동되므로 확장성이 높다.
- CNCF(Cloud Native Computing Foundation) 는 마이크로서비스 및 컨테이너 기반의 클라우드와 관련된 오픈소스 프로젝트를 관리함으로 생태계를 확장해 나가기 위한 리눅스 재단(Linux Foundation) 산하의 단체다
- 쿠버네티스는 CNCF에 소속된 오픈소스이며, 도커 컨테이너의 핵심 중 하나인 containerd, 컨테이너의 데이터를 수집하기 위한 프로메테우스(Prometheus) 등이 같이 CNCF에 소속돼 있다.
쿠버네티스의 단점
- 다양한 지식을 필요로 한다.
- 쿠버네티스 자체의 관리가 어려울 수 있다.
- 도커 스웜보다 구조가 훨씬 복잡하고 사용 방법이 다양하기에 배우는 학습 비용이 만만치 않다.
- 일정 규모 이상의 서비스를 제공하는 회사에서는 쿠버네티스를 도입해 더욱 안정적이고 효율적인 서비스를 제공할 수 있지만, 소규모 조직에서는 쿠버네티스를 배우고 관리하는 것 자체가 짐이 될 수 있다. 즉 오버 엔지니어링이 될 수도 있다.
요약하면 러닝 커브, 소규모에서는 굳이라는 의미다.
쿠버네티스 설치
- 리눅스 서버와 같은 환경에서 쿠버네티스를 설치해야한다.
- 도커 엔진과는 달리 쿠버네티스는 사용 환경과 목적에 따라 설치하는 방법이 매우 다양하고 복잡하다.
- 개발 용도로 로컬에서 사용하려면 별도의 어려움 없이 쉽게 설치할 수 있지만, 실제 운영 단계에서는 AWS, GKE(Google Kubernetes Engine) 등의 클라우드 환경에서 수십 개의 서버에 동시에 쿠버네티스를 설치해야할 수도 있다.
- 설치 툴의 종류는 다음과 같이 구분할 수 있다.
- 개발 용도의 쿠버네티스
- Minikube
- Docker Desktop for Mac/Windows에 내장된 쿠버네티스
- 서비스 테스트 또는 운영 용도의 쿠버네티스 설치
- kops
- kubespray
- kubeadm
- EKS, GKE 등의 매니지드(Managed) 서비스
- 개발 용도의 쿠버네티스
개발 용도의 쿠버네티스
- Docker Desktop for Mac, Docker Desktop for Windows를 설치했다면 쿠버네티스를 함께 사용할 수 있어, 별도의 설치 과정이 필요하지 않다.
- Minikube를 사용하면 버추얼 박스 등의 가상화 환경에서 쿠버네티스를 손쉽게 설치할 수 있다.
- 개발 용도의 쿠버네티스는 로컬 노드를 스탠드얼론(standalone) 모드로 사용하기 때문에 쿠버네티스의 기능을 완벽하게 사용하기에는 적합하지 않다.
- 여러 서버의 자원을 클러스터링해 컨테이너를 배치하는 것이 쿠버네티스의 핵심 기능인데, 1개의 노드로는 이러한 핵심 기능을 확인해 볼 수가 없기 때문이다.
- Docker Desktop for Mac, Docker Desktop for Windows 의 쿠버네티스틑 간편하게 설치해 사용할 수 있는 대신, 기본 기능의 테스트 및 로컬 개발 용도로 제한된다는 한계점이 있다.
서비스 테스트 또는 운영 용도의 쿠버네티스
- 실제 서비스 테스트 또는 운영 용도로 쿠버네티스를 사용하려면 어떠한 환경에서 쿠버네티스를 설치할 것인지를 먼저 결정해야 한다.
- 쿠버네티스의 사용 환경은 두 종류로 나뉜다.
- AWS, GKE 등의 클라우드 플랫폼 환경
- 자체적으로 보유한 온프레미스(on-premise) 서버 환경
쿠버네티스 사용 환경에 따른 특징

자체 서버 환경에서 쿠버네티스 설치
- 자체 서버 환경(on-premise) 에서 쿠버네티스를 설치해 사용한다면 쿠버네티스를 포함한 모든 인프라를 직접 관리해야 한다.
- 쿠버네티스와 서버 인프라를 세밀한 부분까지 설정해 원하는 대로 구성할 수 있다는 것이 장점이지만, 모든 관리를 직접 도맡아 해야 하므로 운영 및 유지보수가 복잡해질 수도 있다는 단점이 있다.
- 자체 서버 환경에서는
kubespray
,kubeadm
등의 도구를 이용해 쿠버네티스를 설치할 수 있다.
클라우드 플랫폼에서 쿠버네티스 설치
- 클라우드 플랫폼에서 쿠버네티스를 사용한다면 서버 인스턴스만을 사용해 쿠버네티스를 설치할지, 쿠버네티스 자체를 서비스로서 제공하는 매니지드 서비스를 사용할지 선택해야 한다.
- 서버 인스턴스만을 사용해 쿠버네티스를 설치 할 때는 서버. 네트워크 등 인프라에 대한 관리는 AWS. GCP와 같은 클라우드 제공자에게 맡기되, 쿠버네티스의 설치 및 관리를 직접 수행해야 한다.
- 가장 쉽게 생각해 볼 수 있는 예시는 AWS의 EC2 인스턴스를 생성한 다음 그 위에 직접 쿠 버네티스를 설치하는 방법이 될 수 있다.
- 이때 사용할 수 있는 쿠버네티스 설치 도구는
kubespray
,kubeadm
,kops
등이 있다
- 이때 사용할 수 있는 쿠버네티스 설치 도구는
쿠버네티스 자채를 클라우드 서비스로서 사용
- AWS의 EKS(Elastic Kubernetes Service), GCP의 GKE(Google Kubernetes Engine) 등의 매니지드 서비스를 이용 해 쿠버네티스를 사용하면 쿠버네티스의 설치 및 관리까지도 클라우드 제공자가 담당하므로 쿠버네티스 관리 및 유지보수 의 비용이 줄어든다.
- EKS, GKE와 같은 매니지드 서비스를 사용하면 별도로 쿠버네티스를 설치할 필요 없이 실제 서비스 환경을 구성할 수 있다는 장점이 있다.
- 그러나 쿠버네티스를 처음 시작하는 단계에 있다면 곧바로 매니지드 서비스를 이용하기보다는 직접 쿠버네티스를 설치해 전체적인 개념을 파악하는 것이 좋다.
정리
- Docker Desktop for Mac/Windows , Minikube
- 1개의 노드에서 쿠버네티스 설치 및 사용
- 간편하게 로컬에서 쿠버네티스의 기본 기능 테스트 가능
- 쿠버네티스의 일부 기능이 제한될 수 있음
- GKE, EKS 등의 완전 관리형 서비스
- 설치가 필요 없기 때문에 가장 쉽게 사용 가능
- 클라우드 플랫폼에 종속적인 기능도 사용 가능
- 클라우드 사용 비용 및 의존성 증가
- 쿠버네티스의 자세한 구성을 학습하기에는 적합하지 않음
- kubespray, kubeadm
- 온프레미스 환경에서도 쿠버네티스 설치 가능
- 클라우드 인프라에서도 쿠버네티스 설치 가능
- 서버 인프라 및 쿠버네티스 관리가 다소 어려울 수 있음
- kops
- 특정 클라우드 플랫폼에서 쉽게 쿠버네티스 설치 가능
- 서버, 네트워크 등 각종 인프라도 자동으로 프로비저닝
728x90
'Deploy > Kubernetes' 카테고리의 다른 글
[Kubernetes] 쿠버네티스 디플로이먼트(Deployment) (0) | 2025.03.04 |
---|---|
[Kubernetes] 쿠버네티스 레플리카셋(ReplicaSet) (14) | 2025.02.25 |
[Kubernetes] 쿠버네티스 파드(Pod) (4) | 2025.02.25 |
[Kubernetes] 쿠버네티스 설치 (1) | 2025.02.25 |
[Kubernetes] 쿠버네티스 시작 전 알고가기 (1) | 2025.02.25 |
Comments