k8s or kubernetes

jik·2023년 8월 9일
0
post-thumbnail

쿠버네티스가 무엇인가요?

컨테이너 오케스트레이션 플랫폼입니다.
컨테이너들을 빌드하고 배포하고 그런걸 편리하게 해주는것입니다.

kubernetes (이하k8s)는 오픈소스 컨테이너 오케스트레이션 플랫폼입니다.

컨테이너화된 어플리케이션을 배포하고 확장, 관리등을 자동화하기 위한 프레임워크를 제공합니다.

k8s는 master/worker node로 구성된 cluster 아키텍처에서 작동하는데
master node는 전체 클러스터를 감독하고 api서버, etcd(key-value저장소) ,scheduler , controller panel같은요소를 관리합니다.
worker node는 container화된 워커로드를 호스팅하고 컨테이너 런타임과 함께 kubelet이라고 하는 kubernetes agent를 실행합니다.

orchestration :배포, 확장, 종료등 컨테이너의 수명 주기를 관리합니다.

k8s 중심에는 클러스터 관리를 위한 API서버가 있고 개발자와 운영자는 k8s API 를 통해 클러스터와 상호작용합니다.
이를 통해 pod, deploy, service, build와 같은 리소스를 정의하고 수정할 수 있습니다.
API 서버는 이런 요청의 유효성을 검사하고 처리해 원하는 상태를 etcd에 저장합니다.

컨테이너 관리

pod는 k8s에서 배포의 기본 단위이며 하나이상의 컨테이너를 캡슐화하고 격리된 실행 환경을 제공합니다.
k8s는 worker node에서 실행되도록 pod를 예약합니다.
각 worker node에서 실행되는 kubelet은 필요에 따라 컨테이너를 시작/중지해 원하는 pod상태가 유지되도록 합니다.

확장 및 부하 분산

k8s 다양한 워크로드 요구사항을 처리할 수 있는 확장 기능을 제공 합니다.
CPU사용률 또는 사용자 지정 메트릭과 같은 메트릭 기반으로 pod replica를 자동 조정할 수 있습니다.
kube-proxy라고 하는 built-in 로드밸런서는 트래픽이 사용가능한 pod에 분산되도록 고가용성 및 효율적인 리소스 활용에 도움을 줍니다.

서비스 디스커버리

k8s는 클러스터내의 서비스가 dns 이름을 사용해 서로 검색하고 통신할 수 있도록 dns기반 서비스 검색 매커니즘을 제공합니다.

네트워킹

kube-proxy는 (4)와 함께 서비스에 대한 라우팅및 로드밸런싱을 관리함으로써 서비스 네트워킹 역할도 합니다.

Storage

K8s는 PV (Persistent Volumes) 및 PVC (Persistent Volume Claims)와 같은 스토리지를 관리하는 메커니즘을 제공합니다.
예컨데 관리자는 PV라는 기본 스토리지를 제공하면 개발자는 그안에서 일부 필요에 따라 볼륨을 마운트 하여 사용할 수 있습니다.

deployment (rolling), rollback 지원

어플리케이션을 배포하고 업데이트할때 k8s는 Rolling update를 제공합니다.
이는 old pod -> new pod로 점진적 스위치를 함으로써 무중단 업데이트를 가능하게 합니다.
rollback또한 손쉽게 가능합니다.

Configuration

Yaml , Json파일로 어플리케이션과 인프라의 원하는 상태를 정의해 사용할 수 있습니다. (프로비저닝)

0개의 댓글