[Kubernetes] 쿠버네티스의 특징

연수·2021년 11월 1일
1

kubernetes

목록 보기
3/15

1. 모든 리소스는 오브젝트 형태로 관리된다.

쿠버네티스는 대부분의 리소스를 '오브젝트'라고 불리는 형태로 관리한다.

쿠버네티스에서는 컨테이너의 집합(Pods), 컨테이너의 집합을 관리하는 컨트롤러(Replica Set), 사용자(Service Account), 노드(Node)까지 하나의 오브젝트로 사용할 수 있다.

쿠버네티스에서 사용할 수 잇는 오브젝트에는 어떤 것이 있는지 아래 명령어로 확인이 가능하다.

$ kubectl api-resources

2. 쿠버네티스는 명령어로도 사용할 수 있지만, YAML 파일을 더 많이 사용한다.

kubectl이라는 명령어로 쿠버네티스를 사용할 수 있으며, 대부분의 작업은 kubectl 명령어로 실행할 수 있다.

쿠버네티스는 YAML 파일로 컨테이너 리소스를 생성하거나 삭제할 수 있다. 그러나 쿠버네티스에서 YAML 파일의 용도는 컨테이너 뿐만 아니라 거의 모든 리소스 오브젝트들에 사용될 수 있다.

👉 YAML 파일 활용 용도 예시!

  • 컨테이너 생성/삭제
  • 리소스 오브젝트 정의
  • 컨테이너의 설정값 (ConfigMap), 비밀값 (Secrets) 정의
  • 쿠버네티스에서 서비스 배포

🔥 쿠버네티스를 잘 사용하는 방볍 = YAML 파일을 잘 작성하는 것 🔥

3. 쿠버네티스는 여러 개의 컴포넌트로 구성되어 있다.

쿠버네티스 노드의 역할은 마스터워커로 나뉘어 있다.

마스터 노드

  • 클러스터 관리 역할
  • API 서버(kube-apiserver), 컨트롤러 매니저(kube-controller-manager), 스케줄러(kube-scheduler), DNS 서버(coreDNS) 등이 컨테이너로 실행된다.

워커

  • 애플리케이션 컨테이너가 생성된다.

→ 모든 노드에서 오버레이 네트워크 구성을 위해 프록시(kube-proxy)와 네트워크 플러그인(calico, flannel 등)이 실행된다.

쿠버네티스 클러스터 구성을 위해 kubelet이라는 에이전트가 모든 노드에서 실행된다.

kubelet은

  • 컨테이너 생성, 삭제
  • 마스터와 워커 노드 간의 통신 역할

을 함께 담당한다.

따라서 kubelet이 정상적으로 실행되지 아낳으면 해당 노드는 쿠버네티스와 제대로 연결되지 않을 수도 있다.

쿠버네티스에서 반드시 도커를 사용해야 하는 것은 아니며, OCI(Open Container Initiative)라는 컨테이너의 런타임 표준을 구현한 CRI(Container Runtime Interface)를 갖추고 있다면 어떠한 컨테이너를 써도 문제는 없다.

[출처] 시작하세요! 도커/쿠버네티스 (용찬호 지음)

profile
DCDI

0개의 댓글