Developers Haven

(DH)블로그는 개발자들이 기술 정보를 찾아볼 수 있는 안식처가 되고 싶음을 희망하여 시작하게 되었습니다. 공부한 내용과 성장 과정을 기록해두었으니 편히 둘러보시길 바랍니다.

Welcome to DH's Blog

[기술공부]/Kubernetes

[k8s] 쿠버네티스 오브젝트란?

DH’s Blog 2024. 4. 13. 20:34
반응형

지금까지 쿠버네티스에 대한 개념과 전체적인 아키텍처에 대해서 알아보는 시간을 가졌다. 쿠버네티스에 대한 얘기에서 '오브젝트(object)'가 빠질 수 없는데 이번 시간에는 오브젝트가 무엇을 의미하는지에 대해서 알아보도록 하자.

 

 

[지난 시간 내용 - 쿠버네티스의 아키텍처]

2024.04.13 - [[기술공부]/Kubernetes] - [k8s] 쿠버네티스란? with 쿠버네티스 아키텍처 - (1)

 

[k8s] 쿠버네티스란? with 쿠버네티스 아키텍처 - (1)

지금까지 가상화 배포에서 컨테이너 배포로 바뀌게 된 배경과, 쿠버네티스가 등장하게 된 배경에 대해 알아보았다. 이번 시간에는 쿠버네티스의 개념과 아키텍처에 대해 알아보도록 하자. [지

developers-haven.tistory.com

 

 

 


< k8s 오브젝트 >

 

k8s는 클러스터 상태를 계속 체크하면서 선언된 상태가 되도록 조치를 취해주게 된다. 이때, 다양한 오브젝트(object)를 이용하여 클러스터 상태를 나타내게 된다. 쉽게 생각하면 시스템에서 배포하고 관리되는 기본 단위오브젝트라고 이해하면 된다.

 

 


 

 

< 대표적인 k8s 오프젝트 6가지 >

 

(1) Pod

  • k8s에서 실행되는 가장 작은 배포 단위
  • pod 안에는 1개 이상의 컨테이너 생성 가능 (1 Pod = N Containers)
  • pod는 스토리지, 네트워크 속성을 가지며 pod 내의 컨테이너는 해당 pod의 스토리지와 네트워크 공유
  • Why? 여러 컨테이너를 pod 단위로 묶어서 배포할까?
    • pod 내의 컨테이너들은 동일 IP를 기준으로 서로 다른 port를 가지고 있는데 → 컨테이너 끼리 데이터를 교환할 때 IP 호출 없이 localhost를 통해서 통신 가능 (컨테이너들간의 통신이 쉽고 효율적)

 

 

(2) Deployment

  • 여러 개의 pod를 생성하고 관리하는 역할 → pod 배포 자동화를 위한 오브젝트 (with ReplicaSet & 배포 전략)
  • ReplicaSet : 지정된 수만큼 pod 복제본을 유지하도록 보장
  • 배포 전략 : k8s 서비스의 무중단 업데이트를 위한 배포 전략
Deployment 대표적인 배포 전략 3가지

1. Recreate 전략
: 새로운 App을 배포하기 위해 이전 pod를 모두 삭제하고 새로운 pod를 생성하는 방식

2. Rolling update 전략
: 이전 pod를 일정 갯수만큼 점진적으로 새로운 pod로 교체하는 방식

3. Blue-Green 전략
: 현재 환경(Blue)과 동일한 새로운 환경(Green)을 구성하여 Green 환경에서 App 배포 후 테스트되면 트래픽을 Blue → Green 환경으로 전환하는 방식 (만약 문제가 발생하면 롤백 가능)

 

 

 

(3) Service

  • pod는 클러스터 내부에서만 접근이 가능하기 때문에 → 클러스터 외부에서 pod에 요청이 불가능하다
  • 이때 Service 오브젝트를 통해 클러스터 외부로부터 요청을 받을 수 있게 IP를 노출하게 된다 → 쉽게 이해하자면 pod를 통해 실행되고 있는 App을 네트워크에 노출시켜주는 가상의 컴포넌트

 

 

(4) Volume

  • pod 내의 컨테이너에 데이터를 저장하거나 공유하기 위한 저장 공간 → pod가 접근하여 read/write 할 수 있는 곳
  • pod는 일시적으로 뜨고 사라지기 때문에 → pod가 종료되어도 데이터를 보존하기 위해 볼륨 사용
대표적인 Volume 방식
1. emptyDir : pod의 라이프사이클 동안만 존재하는 임시 볼륨으로 pod가 종료되면 함께 사라짐
2. hostPath : pod가 올라간 Node의 path에 마운트하여 사용하는 방식

 

 

 

(5) Namespace

  • k8s 클러스터 내에 생성된 가상 클러스터로, 리소스들을 그룹화하여 사용할 수 있게 해주는 역할
  • 팀/환경/서비스 단위 처럼 목적에 맞게 네임스페이스 구성 가능

 

 

(6) Secret

  • 암호화 데이터를 저장하는데 사용되며 비밀번호, ssh key 같은 민감 정보를 저장

 

 

 

 


 

실제 쿠버네티스에는 이 외에도 더 다양한 오브젝트들이 있다. 이번 시간에는 가장 기본적인 오브젝트가 무엇이고, 어떤 기능을 하는지에 대해서 배워보고자 했다. 앞으로 계속 쿠버네티스를 공부하면서 이러한 오브젝트들에 대해 더 깊은 내용을 하나씩 배워볼 예정이다.

 

 

 

참고 페이지
https://www.msaschool.io/operation/operation/operation-two/
반응형