본문 바로가기

k8s

5. Node Schedule

728x90

- 모든 Pod는 특정 Node 위에 할당이 되어야함

- 기본적으로는 Pod의 리소스를 토대로 스케줄러가 판단해서 적절한 Node에 배치됨

- 이때 Node에 자원이 많이 남아 있는 곳이 1순위로 선정

- 사용자가 직접 Node를 지정할 수도 있다.

- Memory가 limit을 넘을 경우, Pod는 OOM을 발생시키며 재시작된다.

 

3-1) Pod 

apiVersion: v1
kind: Pod
metadata:
  name: pod-3
spec:
  # 이 Pod(=pod-3)는 반드시 k8s-worker1 노드에 배치해라
  # Kubernetes Scheduler가 아무 노드나 고르는 게 아니라 노드 라벨 중에서
  # kubernetes.io/hostname=k8s-worker1 라벨이 있는 노드만 선택한다.
  nodeSelector:
    # pod-3 → k8s-worker1 노드에만 생성 가능하다!
    kubernetes.io/hostname: k8s-worker1
  containers:
  - name: container
    image: kubetm/init
    
3-2) Pod 

apiVersion: v1
kind: Pod
metadata:
  name: pod-4
spec:
  containers:
  - name: container
    image: kubetm/init
    resources:
      # 이 Pod를 실행하려면 최소 2Gi의 메모리가 필요
      requests:  
        memory: 2Gi
      # 컨테이너가 최대 3Gi까지만 사용 가능
      limits:
        memory: 3Gi
      # pod-4는 최소 2Gi 확보 가능한 노드에 배치
      # 최대 3Gi 까지만 메모리를 사용할 수 있다.
        
3-3) Pod 

apiVersion: v1
kind: Pod
metadata:
  name: pod-5
spec:
  containers:
  - name: container
    image: kubetm/init
    resources:
      requests:
        memory: 0.5Gi
      limits:
        memory: 0.5Gi

'k8s' 카테고리의 다른 글

7. Services - ClusterIP | NodePort | LoadBalancer  (0) 2026.05.11
6. kubectl [create | apply | get | describe | delete | exec]  (0) 2026.05.08
4. Service  (0) 2026.05.07
3. labels  (0) 2026.05.07
1. Pod  (0) 2026.05.06