DevOps/Kubernetes

[Kubernetes] Objects

최블랙 2022. 1. 11. 19:38

Kubernetes Objects

Pod

출처: https://www.youtube.com/watch?v=-gIyfII5eak&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb&index=7

  • 가장 작은 배포 단위
  • 쿠버네티스는 컨테이너를 직접 관리하지 않고 Pod으로 감싸서 관리함
  • 전체 클러스터에서 Pod 별로 고유한 IP 할당
  • 하나의 Pod 안에 여러 개의 컨테이너가 속할 수 있음

ReplicaSet

출처: https://www.youtube.com/watch?v=-gIyfII5eak&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb&index=7

  • 여러 개의 Pod를 관리
  • 새로운 Pod은 Template을 참고하여 생성
  • 새로운 Pod을 생성하거나 기존의 Pod을 제거하여 원하는 Replica 수를 유지함

Deployment

출처: https://www.youtube.com/watch?v=-gIyfII5eak&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb&index=7

  • 배포 버전 관리
  • 무중단 배포를 위해 내부적으로 ReplicaSet을 이용

Service

ClusterIP

출처: https://www.youtube.com/watch?v=-gIyfII5eak&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb&index=7

  • 클러스터 내부에서 사용하는 프록시 → 클러스터 내부의 Pod들을 로드밸런서하는 서비스
  • Pod은 동적이지만, 서비스는 고유 IP를 가짐
    •  Pod이 업데이트될 때, 자신의 IP를 유지한 상태로 업데이트되는 것이 아니라 현재 Pod을 삭제하고 새로운 Pod을 생성하는 매커니즘이기 때문에 요청받을 고유한 IP가 필요함

NodePort

출처: https://www.youtube.com/watch?v=-gIyfII5eak&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb&index=7

  • 노드(host)에 노출되어 외부에서 접근 가능한 서비스
    • ClusterIP는 내부에서만 통신할 수 있음
  • 모든 노드에 동일한 포트로 생성

LoadBalancer

출처: https://www.youtube.com/watch?v=-gIyfII5eak&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb&index=7

  • 하나의 IP 주소를 외부에 노출
  • 각각의 Node에 트래픽 분산

Ingress

출처: https://www.youtube.com/watch?v=-gIyfII5eak&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb&index=7

  • 도메인 또는 경로별 내부의 ClusterIP를 연결하여 라우팅
    • 특정 도메인에 대해 모두 NodePort나 LB를 만들면 자원이 낭비됨

Reference

https://www.youtube.com/watch?v=-gIyfII5eak&list=PLIUCBpK1dpsNf1m-2kiosmfn2nXfljQgb&index=7