Kubernetes 상세 컴포넌트

윤태호·2023년 2월 5일
0

Kubernetes

목록 보기
4/7

Controller

파드를 관리하는 역할을 수행하는 것으로 DaemonSet, Deployment, 레플리카셋, 스테이트풀셋, 잡, 크론잡, 레플리케이션 컨트롤러

  • Deployment: 쿠버네티스에서 상태가 없는 애플리케이션을 배포할 때 사용되는 가장 기본적인 컨트롤러로 레플리카셋의 상위 개념이면서 파드를 배포할 때 사용하는데 파드를 배포할 때 다양한 방법을 지원해서 배포할 때 세밀한 조작이 가능
  • ReplicaSet: 몇 개의 파드를 유지할 지 결정하는 컨트롤러
    5개의 파드를 유지하도록 설정했다면 1개의 파드가 삭제되면 5개의 파드를 유지하기 위해서 다른 파드 1개를 생성
  • Job: 하나 이상의 파드를 지정하고 지정된 수의 파드가 성공적으로 실행되도록 하는 것 노드의 하드웨어 장애나 재부팅 등으로 파드가 비정상적으로 작동하면 다른 노드에서 파드를 시작해 서비스가 지속되도록 합니다.
  • CronJob: Job의 일종으로 특정 시간에 특정 파드를 실행시키는 것 과 같이 지정한 일정에 따라서 잡을 실행시킬 때 사용하는데 주로 애플리케이션 프로그램 이나 데이터베이스에서 중요한 데이터를 백업하는데 사용
  • DaemonSet: 디플로이먼트처럼 파드를 생성하고 관리
    디플로이먼트가 실행해야 할 파드의 개수와 배포 전략을 세분화해서 조작할 수 있는 반면에 특정 노드 또는 모든 노드에 파드를 배포하고 관리하는데 데몬셋은 주로 노드마다 배치해야 하는 성능 수집 및 로그 수집 같은 작업에 사용 taint 와 toleration: 특정 워커 노드에는 특정 성격의 파드만 배포하고자 할 때 사용 GPU가 설치된 워커 노드에는 GPU가 필요한 서비스만 배포하고 싶은 경우

Deployment와 ReplicaSet에 대해 이해하기 쉬운 사진을 첨부합니다.

이미지 출처: https://velog.io/@jean1042/Replication-Controllers-Pod%EB%A5%BC-%ED%95%AD%EC%83%81-%EC%8B%A4%ED%96%89%ED%95%98%EB%8F%84%EB%A1%9D-%EB%B3%B4%EC%9E%A5%ED%95%98%EA%B8%B0

Service

파드는 쿠버네티스 클러스터 안에서 옮겨 다니는 특성이 있는데 파드가 실행 중인 워커 노드에 문제가 생기면 다른 워커 노드에서 파드가 다시 생성될 수 있고 그 때마다 IP가 변경되는 특성이 있는데 이렇게 동적으로 변하는 파드에 고정된 방법으로 접근하기 위해서 사용되는 것이 service, service를 사용하면 파드가 클러스터 내의 어디에 떠 있든지 고정된 주소를 이용해서 접근할 수 있음

  • ClusterIP: 쿠버네티스 클러스터 내의 파드들은 기본적으로 외부에서 접근할 수 있는 IP를 할당받지 않지만 같은 클러스터 내부에서는 파드들이 통신할 방법을 제공하는데 이것이 클러스터IP
  • NodePort: 서비스를 외부로 노출할 때 사용하는 것으로 워커 노드의 IP 와 포트를 이용
  • LoadBalancer: 퍼블릭 클라우드에 존재하는 로드밸런서에 연결하고자 할 때 사용, 사용자는 물리적인 워커 노드의 위치와 상관없이 요청을 하게되면 로드밸런서 트래픽을 보고 적절한 워커 노드의 파드를 결정해서 사용하도록 해줍니다.

profile
성장하는것을 제일 즐깁니다.

0개의 댓글