Kubernetes Basic

김유상·2024년 4월 1일
0
post-thumbnail

reference: https://www.youtube.com/watch?v=HNGEo7Kd3_k&t=909s
https://velog.io/@whattsup_kim/Linux-Kernel-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EB%A5%BC-%EC%9C%84%ED%95%9C-%EB%A6%AC%EB%88%85%EC%8A%A4%EC%9D%98-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EA%B2%A9%EB%A6%AC-%EA%B8%B0%EB%8A%A5-cgroup-namespace-union-mount

컨테이너 개념

컨테이너란?

실행할 소스코드를 이미지로 패키징
HW 및 OS에 독립적인 컨테이너에서 프로세스로 실행

  • cgroup(자원 분배)
  • namespace(격리)

호스트와 컨테이너의 차이

namespace: 1은 루트 네임스페이스
특정 프로세스에 대해 컨테이너 내부 PID와 Host에서 확인하는 PID가 다르게 매핑되므로 관점에 따라 다르게 매핑되는 PID를 이용해 제어할 수 있음

멀티 호스트간 멀티 컨테이너 독립적으로 실행 기술

  • Scheduling
  • Placement
  • Management
  • Network
  • Scale out
  • Volume

쿠버네티스

쿠버네티스 아키텍처

Scheduler

  • 컨테이너를 배치(Placement)
  • 호스트를 그룹으로 묶어서 컨테이너 배치를 지정

Controller

  • Scale out
  • Reconcilation: (desired state == current state) 상태를 유지할 수 있도록 조정

Kubelet

  • 컨테이너를 실행, 삭제, 재실행
  • 네트워크 모듈과 컨테이너를 연결(CNI plugin)

쿠버네티스 자원

Pod

  • Container의 묶음으로 스케줄링 되는 단위
  • Pod 단위로 Network Namespace와 IP를 가짐
  • Pod 안의 컨테이너는 같은 Volume을 볼 수 있음
  • Pod 안에는 Pause라는 Infra contrainer가 기본으로 실행

애플리케이션 배포

  • spec:image: 안에 docker 이미지에 대한 dockerhub 주소를 입력하고 Pod를 생성

Replica Set

  • ReplicaSet = Pod + replicas 수 (Pod 개수)
  • Pod 개수를 관리
  • current state == desired state 일 때까지 Reconcilation
  • Horizontal Pod Autoscaler가 autoscale할 때 ReplicaSet 활용

Deployment

  • Deployment = ReplicaSet + History (Revision)
  • Pod 배포에 대한 버전 관리 가능
  • spec 과 spec.template.spec으로 정의

배포 및 실행

profile
continuous programming

0개의 댓글