모든 리소스는 오브젝트 형태로 관리된다.
쿠버네티스는 리소스를 오브젝트라고 불리는 형태로 관리한다. 오브젝트는 간단히 추상화된 집합 정도로 생각하면 된다. 쿠버네티스의 오브젝트 개념은 생각보다 넓고 세밀한 단위로 사용한다.
kubectl api-resources
쿠버네티스에서 사용할 수 있는 오브젝트 종류를 확인하는 명령어이다.
이 오브젝트들을 전부 다 다루지도 않고 전부 다 외울 필요도 없다. 또, 쿠버네티스 공식 문서에서 대부분의 리소스 오브젝트 사용법이 적혀있다.
kubectl explatin pod
특정 오브젝트의 설명을 확인할 수 있는 명령어이다. pod 오브젝트를 확인해 본다.
쿠버네티스는 명령어보다 YAML 파일을 더 많이 사용한다.
쿠버네티스에서는 kubectl 명령어로 쿠버네티스를 사용할 수 있다. 또, 쿠버네티스는 YAML 파일로 컨테이너 리소스를 생성 및 삭제할 수 있고 컨테이너뿐만 아니라 거의 모든 리소스 오브젝트에 사용될 수 있는 특징을 가지고 있다.
쿠버네티스에서 실제로 서비스를 배포할 때에도 kubectl 명령어가 아니라 여러 개의 YAML 파일을 정의해 쿠버네티스에 적용시키는 방식으로 동작할 것이다.
쿠버네티스는 여러 개의 컴포넌트로 구성돼 있다.
쿠버네티스 노드의 역할은 크게 마스터와 워커로 구성되어 있다. 마스터 노드가 클러스터를 관리하고 워커 노드는 애플리케이션 컨테이너가 생성된다.
마스터 노드에서는 API 서버, 컨트롤러 매니저, 스케줄러, DNS 서버 등이 실행되고, 모든 노드에서는 프록시, 네트워크 플러그인 등이 실행된다.
이런 컴포넌트들은 기본적으로 도커 컨테이너로서 실행되고 있다.
그리고 쿠버네티스 클러스터 구성을 위해 kubelet이라는 에이전트가 모든 노드에서 실행된다.
이 kubelet는 마스터와 워커 노드간 통신을 담당하는 매우 중요한 에이전트라서 정상 실행이 되지 않으면 해당 노드는 쿠버네티스와 제대로 연결되지 않을 수도 있다.
쿠버네티스의 입장에서 보면 도커 데몬도 하나의 컴포넌트이다. 때문에 반드시 도커를 사용해야 하는 것이 아니고, Open COntainer Initiaive라는 컨테이너의 런타임 표준을 구현한 Container Runtime Interface를 갖추고 있다면 어떤 컨테이너를 사용해도 문제가 없다.
이런 것들을 지금 당장 모두 알고 있을 필요는 없고 kubelet라는 에이전트가 모든 노드에서 기본적으로 실행되고 마스터 노드에는 API 서버 등이 컨테이너로 실행된다 정도만 알면 된다고 한다.
📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다.
'DevOps > Kubernetes' 카테고리의 다른 글
[Kubernetes] : 포드 vs 도커 컨테이너 (0) | 2022.03.16 |
---|---|
[Kubernetes] : 포드, Pod 사용하기 (0) | 2022.03.16 |
[Kubernetes] : kops로 AWS에서 쿠버네티스 설치 (0) | 2022.03.14 |
[Kubernetes] : 리눅스 서버에서 도커 엔진만으로 minikube 설치하기 (0) | 2022.03.13 |
[Kubernetes] : 쿠버네티스 버전 선택 및 설치 (0) | 2022.03.13 |
댓글