본문 바로가기

K8s

쿠버네티스(kubernetes, k8s)

쿠버네티스란? 

컨테이너 기반의 애플리케이션을 개발하고 배포할 수 있도록 설계된 오픈 소스 플랫폼

컨테이너 오케스트레이션 ( 시스템 전체를 통괄하고 여러개의 컨테이너를 관리) 도구

Docker k8s
한대의 물리적 서버 여러 대의 물리적 서버
도커 컴포즈 매니페스트
컨테이너 생성에만 관여 컨테이너 상태를 유지(배포 , 관리)

1) 설치환경

  • 개발용도
    : minikube, Docker for Window 에 내장된 쿠버네티스=> 한대의 컴퓨터에 마스터노드와 워커노드 구축
  • 테스트/ 운영 용도
    : kops, kubespray, kubeadmin, EKS, AKS,GKE 등

2) cluster 

: 애플리케이션 컨테이너를 실행하기 위한 일련의 노드 머신

   마스터 노드와 워커 노드로 구성

마스터 노드 워커노드
전체적인 제어 담당 실제 동작을 담당
-kube-apiserver : 외부와 통신하는 프로세스, kubectl로부터 명령을 전달받아 실행
- kube-controller-manager : 컨트롤러를 통합 관리, 실행
- kube-scheduler : 파드를 워커노드에 할당
- cloud-controller-manager : 클라우드 서비스와 연동해 서비스 생성
- etcd : 클러스터 관련 정보 전반을 관리하는 데이터 베이스

=> control-plane을 통해 워커노드를 관리
- kube-let : 마스터 노드의 kube-scheduler와 연동하며 워커노드에 파드릴 배치하고 실행
실행 중인 파드의 상태를 정기적으로 모니터링하여 kube-scheduler에 통지
- kube-proxy : 네트워크 통신의 라우팅 메커니즘

3) 쿠버네티스 리소스

pod 기본적으로 컨테이너 + 볼륨, 쿠버네티스에서 관리하는 가장 작은 단위
node 컨테이너를 배치하는 서버
replicaset 파드의 수를 관리하는 반장
deployment 파드의 디플로이(배포)를 관리
daemonset 각 노드에 파드를 하나씩 배치
service 여러개의 파드를 이끄는 반장
Ingress 외부에서 내부로 들어오는 네트워크 요청
namespace 리소스를 논리적으로 구분하는 장벽
configMap 컨테이너에서 필요한 환경설정 내용을 컨테이너와 분리해서 제공해 주기 위한 기능
secret 비밀번호, OAuth 토큰, ssh 키 같은 민감한 정보들을 저장하는 용도로 사용
Job 특정 개수만큼의 파드를 정상적으로 실행 / 종료 되는 것을 보장
CronJob Job을 시간 기준으로 관리하도록 생성
Storage 저장소...
Statefulset 파드 집합의 디플로이먼트와 스케일링을 관리하고, 파드들의 순서 및 고유성을 보장

리소스 관련 내용과 실습은 정리 후 차례대로 링크 넣을 예정!

728x90

'K8s' 카테고리의 다른 글

k8s - pod  (0) 2023.10.25
쿠버네티스 실습  (1) 2023.10.12