본문으로 바로가기

[k8s] kubernetes 구조

category Cloud/Kubernetes (k8s) 2021. 7. 5. 15:27
반응형

1. 컨트롤러와 오브젝트

 

쿠버네티스는 크게와 오브젝트를 관리하는 컨트롤러와 오브젝트로 나뉜다.

사용자는 자원의 원하는 상태를 정의하고

- 컨트롤러 : 사용자가 바라는 상태가 일치하도록 오브젝트를 생성/삭제

- 오브젝트 : Pod, Service, namespace, volume등이 있음

 

 

2. 네임스페이스

- 클러스터 하나를 여러 개의 논리적인 단위로 나눠서 사용함

- 네임스페이스 별로 별도의 쿼터를 설정해서 특정 네임스페이스의 사용량을 제한할 수 있음

 

k8s에서는 기본으로 몇 개의 네임스페이스가 자동 생성됨.

이중에서 default, kube-system, kube—public, kube-node—lease 등은 쿠버네티스가 기본으로 생성

docker는 도커로 설치한 쿠버네티스이므로 도커에서 만든 네임스페이스

 

• default: 기본 네임스페이스입니다. 쿠버네티스에서 명령을 실행할 때 별도의 네임스페이 스를 지정하지 않는다면 항상 default 네임스페이스에 명령을 적용합니다.

• kube-system:쿠버네티스 시스템에서 관리하는 네임스페이스입니다. 이 네임스페이스에 는쿠버네티스관리용 파드나 설정이 있습니다.

• kube-public:클러스터 안 모든 사용자가 읽을 수 있는 네임스페이스입니다. 보통 클러스 터 사용량 같은 정보를 이 네임스페이스에서 관리합니다. 클러스터를 사용하는 모두가 볼 수 있기 때문입니다.

• kube-node-lease:각 노드의 임대 오 브 젝 트 舞 et들을 관리하는 네임스페이스입니다. 쿠버네티스 1.13 이후 알파 기능으로 추가되었습니다.

 

 

3. 템플릿

- k8s는 YAML 형태의 템플릿을 사용

apiVersion:v1

kind: Pod

metadata:

spec:

 

• apiVersion: 사용하려는 쿠버네티스 API 버전을 명시합니다.

kubectl api-versions 명령으로 현재 클러스터에서 사용 가능한 API 버 전을 확인할 수 있습니다.

 

• kind:어떤 종류의 오브젝트 혹은 컨트롤러에 작업인지 명시합니다.

Pod라고 설정하면 파드에 관한 템플릿입니다. Pod. Deployment, Ingress 등의 다양한 오브젝트나 컨 트롤러를 설정할 수 있습니다

 

• metadata: 메타데이터를 설정, 오브젝트의 이름이나 레이블을 설정

 

• spec: 파드가 어떤 컨테이너를 갖고 실행하며, 실행할 때 어떻게 동작하는지 명시

728x90