쿠버네티스

심우열·2023년 11월 14일
0

쿠버네티스

목록 보기
1/2

1. 워크로드

1. POD

  • 컨테이너 하나 이상의 집합
  • 최소 관리 단위

2. 워크로드 리소스

  • 파드를 관리하는 상위 개체

1. 레플리카 셋 (지속성)

  • POD의 복제본 개수를 관리해주는 역할, 관리자가 지정한 개수
  • POD의 복제본이 여러개 있으면 하나가 고장나도 다른 POD에서 작업 수행 가능
    -> 가용성 보장

2. deployment (지속성)

  • 레플리카 셋의 상위 개체
  • 배포 및 업데이트 정책 관리
  • POD의 여러 복제본이 있을때, POD 내부의 기능에 업데이트가 필요할 경우 이를 관리해주는 역할

3. 데몬 셋 (지속성)

  • POD의 복제본 개수를 관리해주는 역할, POD를 노드당 하나씩만 실행되도록 제한

4. 스테이트풀 셋 (지속성)

  • POD의 복제본 개수를 관리해주는 역할, POD의 상태 등을 유지

5. 잡 (일회성)

  • 일회성 어플리케이션 관리
  • 완료 횟수를 보장, 즉 에러가 뜨지 않고 잘 동작된 횟수를 체크

6. 크론 잡 (일회성)

  • 일회성 어플리케이션 관리
  • 잡을 지정된 시간에 주기적으로 동작 할 수 있게 해줌

2. NameSpaces

  • kubectl get ns

1. Default

  • 오브젝트를 생성할때 네임스페이스를 지정해주지 않으면 자동으로 지정되는 네임스페이스

2. kube-node-lease

  • 쿠버네티스의 가용성을 체크하기 위한 네임스페이스
  • 시스템 상태 체크

3. kube-public

  • 누구에게나 공개되어있는 네임스페이스
  • 읽기전용

4. kube-system

  • 쿠버네티스 클러스터를 구성하기 위해서 필요한 각종 오브젝트들이 있는 네임스페이스

3. 쿠버네티스 네트워크

1. 기본설정

  • 파드에 기본적으로 IP 주소가 할당됨
    -> 내부용 가상 IP 주소가 할당되고 가변적인 주소
  • 이러한 문제점들을 해결하기 위해서 쿠버네티스에서는 서비스라는 오브젝트를 사용
    -> 내부용/외부용 IP 주소까지 할당 가능, 고정적인 IP 주소를 제공
    -> 여러 파드들에 대한 단일 진입점을 제공(부하분산 기능 포함)

2. 서비스란?

  • 파드에 대한 네트워크 구성
  • 파드의 label 과 일치하는 selector를 설정 필요
  • 포트 번호를 여러개 사용 가능하게 해줌
  • 포트 연결 시 별칭으로 연결 가능
  • 연결 시 파드와 동일한 네임스페이스에 생성되어야 함

엔드포인트란?

  • 서비스를 통해서 실제 접근하는 대상의 주소를 등록(파드)

3. 서비스의 종류

1. Cluster IP - 내부용 서비스

  • 내부용 IP 만 할당하는 서비스
  • 내부의 파드간에 네트워크 연결시 사용 됨
  • 동일 클러스터의 여러 Pod에 단일 네트워크 진입점을 제공

2. Node Port - 외부용 서비스

  • 노드의 포트 번호로 포트포워딩 설정
  • 외부에서 Node의 Ip 와 Port 번호를 통해 내부의 Pod에 접근 가능

3. Load Balancer - 외부용 서비스

  • 외부의 로드 밸런서 서비스 또는 장치를 통해서 외부 접근 허락

4. External name

  • 파드가 외부로 나갈 때 사용

4. 볼륨

1. 목적

  1. 데이터 공유 (파드 내부의 컨테이너끼리)
  2. 영구 저장

2. 종류

1. emptyDir

  • 임시로 데이터를 저장하는 빈 볼륨

2. gitRepo

  • 내부적으로 emptyDir 기능을 이용하여, 초기에 Git 레포지토리의 내용을 채워서 제공하는 볼륨, 현재는 사용 안함

3. hostPath

  • 쿠버네티스 클러스터 노드(호스트)의 파일 시스템을 제공하는 볼륨
  • 특정 노드의 특정디렉토리 경로로 제공하기 때문에 다른 노드의 pod에서 같은 경로가 없다면 접근 불가능

4. Network Storage Volume

  • hostPath 방식의 문제를 해결하기 위해 공동의 nfs에 클라이언트로 등록되어 서로간에 접근이 가능하도록 함
  • nfs, cephfs, cinder, glusterfs, ...

5. Cloud Storage Volume

6. 정적/동적 프로비저닝 볼륨

7. 특수 유형 볼륨

profile
Dev Ops, "Git, Linux, Docker, Kubernetes, ansible, " .

0개의 댓글