Kubernetes

김지우·2022년 12월 16일
0

8주차

목록 보기
1/6
post-thumbnail

1️⃣ Kubernetes(쿠버네티스)

Kubernetes:
컨테이너화된 애플리케이션의 자동 디플로이, 스케일링 등을 제공하는 관리시스템으로, 오픈 소스 기반 시스템입니다.

Kubernetes(쿠버네티스)는 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼입니다.

1주일에 수십억 개의 컨테이너를 생성하는 구글이 내부 배포시스템으로 사용하던 borg를 기반으로 2014년 프로젝트를 시작했으며, 여러 커뮤니티의 아이디어와 좋은 사례를 모아 빠르게 발전하고 있습니다.

단순한 컨테이너 플랫폼이 아닌 마이크로서비스, 클라우드 플랫폼을 지향하고 컨테이너로 이루어진 것들을 손쉽게 담고 관리할 수 있는 그릇 역할을 합니다.

2️⃣ Kubernetes 특징

  • 구글과 대형 회사들의 개발 참여
    쿠버네티스는 전 세계적 스케일의 경험과 기술이 고스란히 녹아들어 있습니다.

    서비스메시(Istio, linkerd), CI(Tekton, Spinnaker), 컨테이너 서버리스(Knative), 머신러닝(kubeflow)등등 다양한 기능들이 모두 쿠버네티스의 환경에서 돌아갑니다.

  • 다양한 배포 방식

    쿠버네티스는 Deployment, StatefulSets, DaemonSet, Job, CronJob등 다양한 배포 방식을 지원합니다.

  • 클라우드 지원

    쿠버네티스는 서버 부하에 따라 자동으로 서버를 늘리는 기능인 AutoScaling이 있으며, IP를 할당받아 LoadBalancer로 사용할 수 있습니다.

    또한, Cloud Controller를 이용하여 클라우드 연동을 손쉽게 확장할 수 있습니다. AWS, 구글 클라우드, 마이크로소프트에서는 물론 수십 개의 클라우드 업체에서 모듈을 제공하여 관리자는 동일한 설정 파일을 서로 다른 클라우드에서 동일하게 사용할 수 있는 장점이 있습니다.

  • CRD(Custom Resource Definitaion)
    CRD를 이용하여 다른 도구, 방식을 익힐 필요 없이 다양한 기능을 손쉽게 확장할 수 있습니다.

💡예시) 쿠버네티스는 기본적으로 SSL 인증서 관리 기능을 제공하지 않지만, cert-manager를 설치하고 Certificate 리소스를 이용하면 익숙한 쿠버네티스 명령어로 인증서를 관리할 수 있습니다.

<출처> : 쿠버네티스 시작하기 - Kubernetes란 무엇인가?


3️⃣ Kubernetes 사용 이유

쿠버네티스를 이용하여 컨테이너화된 애플리케이션 환경(Containerized Application)을 탄력적으로 실행할 수 있게 됩니다.

프로덕션 환경에서는 애플리케이션을 실행하는 컨테이너를 관리하고 가동 중지 시간이 없는지 확인해야 합니다.

즉, 컨테이너가 다운된다면 다른 컨테이너를 다시 시작하여 가동 중지 시간을 최소화하여야 합니다.

이러한 문제를 시스템에 의해 관리되도록 하는 것이 쿠버네티스의 사용 이유 입니다.
<출처> : https://kubernetes.io


4️⃣ kubernetes 기능

  • 서비스 디스커버리와 로드 밸런싱
    DNS 이름을 사용하거나 자체 IP 주소를 사용하여 컨테이너를 노출합니다.

  • 스토리지 오케스트레이션
    로컬 저장소, 공용 클라우드 공급자 등과 같이 원하는 저장소 시스템을 자동으로 적용 해줍니다.

  • 자동화된 롤아웃과 롤백
    원하는 상태를 서술하고 현재 상태를 원하는 상태로 설정한 속도에 따라 변경이 가능합니다.

  • 자동화된 빈 패킹
    각 컨테이너가 필요로 하는 CPU와 메모리(RAM)를 제공합니다.

  • 자동화된 복구(self-healing)
    가동 실패한 컨테이너를 다시 시작하고, 컨테이너를 교체합니다.

  • 시크릿과 구성 관리
    Password, OAuth 토큰 및 SSH 키와 같은 중요한 정보를 저장하고 관리합니다.

<출처> : kubernetes-deployment

profile
백엔드 성장 기록

0개의 댓글