노드
정의
- 쿠버네티스는 컨테이너를 파드내에 배치하고 노드 에서 실행함으로 워크로드를 구동한다.
- 각 노드는 컨트롤 플레인에 의해 관리되며 파드를 실행하는 데 필요한 서비스를 포함한다.
- 노드의 컴포넌트에는 kubelet, 컨테이너 런타임 그리고 kube-proxy가 포함된다.
컨디션
conditions
필드는 모든 Running
노드의 상태를 기술한다.
Ready
- 노드가 상태 양호하며 파드를 수용할 준비가 되어 있는 경우
True
- 노드의 상태가 불량하여 파드를 수용하지 못할 경우
False
- 노드 컨트롤러가 마지막
node-monitor-grace-period
(기본값 40 기간 동안 노드로부터 응답을 받지 못한 경우) Unknown
DiskPressure
- 디스크 사이즈 상에 압박이 있는 경우, 즉 디스크 용량이 넉넉치 않은 경우
True
, 반대의 경우 False
MemoryPressure
- 노드 메모리 상에 압박이 있는 경우, 즉 노드 메모리가 넉넉치 않은 경우
True
, 반대의 경우 False
PIDPressure
- 프로세스 상에 압박이 있는 경우, 즉 노드 상에 많은 프로세스들이 존재하는 경우
True
, 반대의 경우 False
NetworkUnavailable
- 노드에 대해 네트워크가 올바르게 구성되지 않은 경우
True
, 반대의 경우 False
노드 정보 확인
- 명령어 :
kubectl get nodes -o yaml
- 노드 IP 정보와 호스트명 :
status.addresses
에 저장되어 있다.
- 노드 리소스 확인은
status.allocatable
과 status.capacity
에서 확인할 수 있다.
- Capacity : 해당 노드가 소유하고 있는 CPU나 메모리의 실제 용량
- Allocatable : 시스템 리소스로 할당한 만큼 뺀, 실제 파드에 할당 가능한 리소스 용량
- 잔여 리소스 양은 Allocatable에서 현재 리소스 사용량을 빼야 한다.
- 현재 리소스 사용량 확인 :
kubectl describe node
네임스페이스
정의
- 네임스페이스(NameSpace)라고 불리는 가상적인 쿠버네티스 클러스터 분리 기능이 있다.
- 하나의 쿠버네티스 클러스터를 여러 팀에서 사용하거나 서비스 환경/스테이징 환경/개발 환경으로 구분하는 경우 사용할 수 있다.