UID란?
클러스터의 각 오브젝트는 해당 유형의 리소스에 대하여 고유한 이름을 가지고 있다. 이름은 namespace 내에서 유일하면 된다. Namespace 는 분리하기 위한 용도와, DNS 이름이 분리되는 용도를 위해 사용한다.
모든 쿠버네티스 오브젝트는 전체 클러스터에 걸쳐 고유한 UID를 가진다.
kubernetes 의 클러스터,노드 개념
위 그림처럼 클러스터는 하나의 master node와 여러 work node 들이 연결되서 하나의 클러스터라는 개념이 만들어진다.
master는 쿠버네티스의 메인 기능들을 담당하는 역할이고
node는 실제 app(pod)들이 구동되기 위해 자원을 제공하는 역할이다. master 와 node는 실제 물리적인 서버 입니다(minikube 같은 경우 하나의 노드에 둘 다 존재함)
클러스터가 만들어 지면 쿠버네티스의 object(Pod,Service) 들을 생성할 수 있다.
또한, 쿠버네티스를 설치할때 master 설치하고 node를 설치해서 master에 연결했을 경우 우리는 쿠버네티스 클러스터를 하나 만들었다고 이야기한다.
네임스페이스란 무엇인가?
쿠버네티스는 클러스터 안에 가상 클러스터를 또 다시 만들 수 있다.
이 클러스터 안의 가상 클러스터를 네임스페이스라고 한다. 처음 클러스터를 구축하면 default,docker,kube-public,kube-system의 default 네임스페이스 4가 이미 만들어져 있다. kubectl get namespace 명령으로 현재 클러스터 안에 존재하는 네임 스페이스의 목록을 확인할 수 있다.
전체 클러스터에서 특정 이름으로 클러스터의 영역을 구분하는 것이다.
리소스 분리
서비스 별
사용자 별
환경: 개발, 스테이징, 프로덕션
네임스페이스 확인하기
kubectl get namespaces
default 네임스페이스에서 생성된 포드 확인하려면
kubectl get pods --namespace default
모든 네임스페이스의 리소스 확인
kubectl get pods --all-namespaces
kubectl get namespace 했을 대 나오는 기본 namespace들
- kube-system: kubernetes 의 핵심 컴포넌트
- kube-public: 모든 사용자가 읽기 권한(슈퍼유저는 어떤 Namespace든 읽고 쓸 수 있다)
- kube-node-lease: 노드의 heartbeat 체크를 위한 lease 리소스가 존재함
- default: 기본 작업 공간
kubectl get pods --namespace kube-system
이런식으로 minikube 의 pod(컴포넌트) 구성이 되어 있는 것을 알 수 있다.
보면 api-server도 있고 controller manager 도 있는 것을 알 수 있다.
Namespace 생성하기
명령형 커맨드
kubectl create namespace developments
yaml 작성
apiVersion:v1
kind:pod
metadata:
name: myweb
namespace: dev
spec:
containers:
- name : myweb
image: nginx
ports :
- containerPort:80
protocol: TCP
실행
kubectl create -f myweb.yaml
파드(Pod)
파드는 컨테이너가 모인 집합체의 단위로, 적어도 하나 이상의 컨테이너로 이루어진다.
여기서 말하는 컨테이너는 도커 컨테이너를 말한다. 쿠버네티스를 도커와 함께 사용한다면 파드는
컨테이너 하나 혹은 컨테이너 집합체가 된다.
'kubernetes' 카테고리의 다른 글
(Kubernetes)API 리소스 (0) | 2022.11.03 |
---|---|
클러스터 구성 (0) | 2022.11.03 |