Kubernetes에 대한 이해

JBoB·2023년 3월 1일
0
post-custom-banner

🐧Kubernetes이란?

쿠버네티스 는 컨테이너 관리자로 컨테이너 운영을 자동화하기 위한 도구

동일한 기능을 하는 도구에는 메소스, 도커 스웜 등있다.

이런 도구들을 오케스트레이션 도구라 지칭한다.

오케스트레이션 ???

: 여러 개의 컴퓨터 시스템, 애플리케이션 및 또는 서비스를 조율하고 관리하는 것,
: 여래 개의 작업을 함께 연결하여 크기가 큰 프로세스를 실행하는 방식

쿠버네티스 특징 및 기능

  • 상태를 선언하고 선언한 상태를 유지 / 노드가 죽거나 컨테이너 응답이 없을 경우 자동복구
  • 스케줄링: 클러스터의 여러 노드 중 조건에 맞는 노드를 찾아 컨테이너 배치
  • 클러스터: 가상 네트워크를 통해 하나의 서버에 있는것 처럼 통신
  • 스케일링 : 리소스에 따라 자동으로 서비스 조정
  • 서로 다른 서비스를 쉽게 찾고 통신 가능
  • 다양한 배포 방식이 존재
  • 빠른 업데이트

🐤Kubernetes Cluster

Kubernetes의 여러 리소스를 관리하기 위한 집합체

Kubernetes 리소스 중에서 가장 큰 개념은 노드(node)

노드(node)는 클러스터(cluster)의 관리 대상으로 등록된 도커 호스트로, 도커 컨테이너가 배치되는 대상

Master Node

  • 확장성을 고려해 다양한 모듈이 기능별로 쪼개져 있음
  • 마스터가 죽으면 API server를 관리할 수 없어서 보통 3개 정도 사용함
  • 마스터가 죽어도 노드는 살아있음, update를 못할뿐

**Pod**

  • 컨테이너가 모인 집합체, 적어도 하나 이상의 컨테이너로 이뤄져있다.

한개의 Pod 안의 컨테이너는 모두 같은 노드에 배치됩니다. 즉, 팟 하나가 여러 노드에 걸쳐 배치될 수는 없다.

Pod 는 내부적으로 하나의 ip를 사용한다.

이를 다르게 얘기하면 다른 기능을 가진 컨테이너들이 포드로 묶이면 하나의 ip를 할당 받게 되고 같은 ip를 가진 두개의 컨테이너의 포트번호가 각각 다르다면 서로간의 포트번호를 통해 통신이 가능하다.

일반적으로 컨테이너 끼리는 파일공간을 공유하지 않는다. 컨테이너는 host OS인 리눅스 위에서 돌아가는 단위이기 때문이다.

그러나 Pod 로 묶게되면 Volume이라는 공용공간을 사용하는데 컨테이너들끼리의 파일을 불륨에 올려놓고 사용하기 때문에 컨테이너간의 메모가 공유가 가능하다.

NameSpace

Kubernetes는 클러스터(cluster) 안에 가상 클러스터(cluster)를 또 다시 만들 수 있습니다.

클러스터 안의 가상 클러스터를 네임스페이스(namespace)라고 합니다.

클러스터(cluster)를 처음 구축하면 default, docker, kube-public, kube-system의 네임스페이스 4개가 이미 만들어져 있습니다.

$kubectl get namespac 명령으로 현재 클러스터 안에 존재하는 네임스페이스의 목록을 확인할 수 있습니다.

네임스페이스(namespace)를 클러스터(cluster) 안의 가상 클러스터(cluster)라는 개념이 어려울 수 있습니다.

전체 클러스터에서 리소스의 구분 용도 즉, 전체 클러스터에서 특정 이름으로 클러스터의 영역을 구분하는 정도라고 생각하면 됩니다.

참고:

Kubernetes - Kubernetes란? (클러스터,노드,파드(pod), 리플리카셋, 디플로이먼트)

profile
간절하고 치열하게 살자
post-custom-banner

0개의 댓글