정환타 개발노트

Kubernetes(k8s)에 대하여 본문

DevOps

Kubernetes(k8s)에 대하여

JungHwanTa 2020. 4. 8. 00:33

쿠버네티스(Kubernetes) 소개 및 사용 이유

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다. 

쉽게 말해 '컨테이너'를 쉽고 빠르게 배포/확장하고 관리를 자동화 해주는 서비스이다.

 

실제 배포 환경에서는 어플리케이션을 실행하는 컨테이너를 관리하고 가동 중지 시간이 없는지 확인해야 하는데, 예를들어 컨테이너가 다운되면 다른 컨테이너를 실행시켜줘야 한다. 이러한 작업들을 자동화 하는 것이 쿠버네티스의 기능 중 하나이다.

 

또한 쿠버네티스는 다음과 같은 기능을 제공한다.

1. 서비스 디커버리와 로드밸런싱 

쿠버네티스는 DNS를 사용하거나 자체 IP를 통해 컨테이너를 노출 할 수 있다. 또한 트래픽이 많은 상황에서 네트워크 트래픽을 로드밸런싱하여 서버를 안정화 시킬 수 있다.

 

2. 스토리지 오케스트레이션

쿠버네티스를 사용하여 로컬 저장소, 클라우드 저장소와 같은 저장소 시스템을 자동으로 탑재해줄 수 있다.

3. 자동화된 롤아웃과 롤백

쿠버네티스를 사용하여 컨테이너의 현재 상태를 원하는 설정에 따라 조절할 수 있다. 또한 쿠버네티스를 자동화하여 배포용 새 컨터네이너를 생성하고 기존의 컨테이너의 리소스를 새 컨테이너로 유지한 채로 변경하여 적용할 수 있다.

4. 자동화된 빈 패킹(bin packing)

컨테이너 작업을 사용할 수 있도록 쿠버네티스는 클러스터 노드를 제공한다. 컨테이너에 필요한 리소스(CPU, RAM 등)를 쿠버네티스에 지시하면 노드에 맞추어 리소스를 가장 잘 활용하도록 설정해줄 수 있다.

5. 자동화된 복구

쿠버네티스는 실패한 컨테이너를 재시작 하고, 컨테이너를 교체해주며 사용자 정의 값에 부합하지 않은 컨테이너를 제거해주며 서비스 준비시까지 이러한 작업을 클라이언트에게 제공하지 않는다.

6. 시크릿과 구성 관리

쿠버네티스를 사용하여 암호, SSH ket, OAuth token과 같은 중요한 정보를 저장하고 관리할 수 있다. 스택 구성에 이러한 정보를 노출하지 않고 쿠버네티스는 스스로 정보 및 어플리케이션 구성을 배포하고 업데이트 할 수 있다.

 

Comments