Kubernetes Node Name - 불변(Immutable)

2025. 8. 4. 15:49·Kubernetes
728x90

Kubernetes Node Name - 불변(Immutable)

Kubernetes에서 Node는 클러스터의 리소스를 제공하는 단위이며 각 노드는 고유한 이름으로 식별된다. 이 이름은 단순한 레이블이 아니라 API 서버에서 Node 객체를 참조하고 스케줄링 및 상태 관리를 수행하는 핵심 식별자다.

 

본 글에서는 Kubernetes에서 왜 Node 이름이 불변인지 그 배경과 실제 운영 환경에서의 고려사항을 정리한다.

 

공식 문서

 

Nodes

Kubernetes runs your workload by placing containers into Pods to run on Nodes. A node may be a virtual or physical machine, depending on the cluster. Each node is managed by the control plane and contains the services necessary to run Pods. Typically you h

kubernetes.io

 

Node Name은 왜 불변인가?

1.  클러스터 내 유일성

“Node name uniqueness” 섹션에서 Kubernetes는 Node 이름이 DNS 서브도메인 규칙을 따라야 하며, 동일 시점에 동일 이름의 두 노드는 존재할 수 없다고 명확히 명시한다. 또한, 동일 이름은 같은 객체로 간주되며, 노드를 교체하거나 업데이트할 필요가 있을 경우 기존 Node 객체를 삭제하고 다시 등록해야 한다고 권장하고 있다.

2. kubelet 등록 방식

kubelet은 기본적으로 호스트명을 Node 이름으로 사용하며, --register-node=true 상태에서 자동 등록된다. --hostname-override 플래그로 이름을 지정할 수 있지만, 일단 등록된 이름은 API 서버에서 변경할 수 없다.

 

공식 문서 중

“Two Nodes cannot have the same name at the same time. Kubernetes also assumes that a resource with the same name is the same object. … If the Node needs to be replaced or updated significantly, the existing Node object needs to be removed from API server first and re-added after the update.” 

 

Node 이름의 유일성, 같은 이름이 동일 객체로 간주된다, 그리고 이름 변경을 위해선 삭제 후 재등록이 필요하다.

 

Node 이름 변경 시 장애 사례

 

장애 현상:

운영 중 특정 노드의 호스트명을 변경한 후 해당 노드가 클러스터에서 NotReady 상태로 고정되거나 새로운 노드로도 정상 등록되지 않음. 스케줄러는 이전 Node 이름을 기준으로 계속 파드를 배치하려고 시도하고, 실제 노드는 그 이름으로 존재하지 않아 파드가 Pending 또는 CrashLoopBackOff 상태를 반복함.

 

원인:

kubelet은 기본적으로 노드 호스트명을 Node 이름으로 사용한다. 이미 등록된 Node 이름은 수정이 불가능하므로, 호스트명을 바꾸면 기존 Node와 불일치가 발생한다. API 서버에는 이전 이름의 Node 객체가 남아 있고, 새로운 이름으로 등록을 시도하면 충돌이 발생하거나 인증 오류가 발생할 수 있다.

 

 


정리

  • Node 이름은 고유하고 변경 불가능한 식별자로 취급된다.
  • 한 번 등록된 Node 이름은 API 서버에서 수정할 수 없으며, 이름 변경을 원할 경우 반드시 기존 Node 객체를 삭제하고 새로운 이름으로 재등록해야 한다.
728x90
저작자표시 비영리 (새창열림)

'Kubernetes' 카테고리의 다른 글

[Calico] calico-node Routing 경로 불일치로 인한 pod to pod 통신 실패  (0) 2025.09.19
Istio Mesh Network 그리고 Timeout  (0) 2025.09.02
Kubernetes-AI Karpor (with Ollama)  (3) 2025.03.13
Kubernetes에서 변경 불가능한(Immutable) Pod란  (0) 2025.03.10
kubernetes AI - K8sGPT 활용 (with: Ollama-AI, Google Gemini)  (0) 2025.02.24
'Kubernetes' 카테고리의 다른 글
  • [Calico] calico-node Routing 경로 불일치로 인한 pod to pod 통신 실패
  • Istio Mesh Network 그리고 Timeout
  • Kubernetes-AI Karpor (with Ollama)
  • Kubernetes에서 변경 불가능한(Immutable) Pod란
MAGUJOB
MAGUJOB
Officially Kubestronaut 사파스러운 블로그 느립니다.
  • MAGUJOB
    마구잡
    MAGUJOB
  • 전체
    오늘
    어제
    • 분류 전체보기 (65) N
      • Kubernetes (54) N
        • Kubernetes 버전별 변경 이력 (8)
        • 작은팁-짧은글 (11) N
      • 운영체제 (1)
      • 오픈스택 (1)
      • 책 후기 (2)
      • 운동 (1)
        • 헬스 (0)
        • 클라이밍 (1)
      • 기타팁 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 링크드인
  • 공지사항

  • 인기 글

  • 태그

    CKS
    클라우드
    피카푸캠핑도봉산
    kubernetes
    피카푸클램핑도봉산
    AI
    Calico
    KVM
    글램핑
    쿠버네티스기초
    파드
    티스토리챌린지
    CKA
    gatewayAPI
    virt-manager
    업데이트
    GPU
    v1.35
    k8s
    캠핑
    1.35
    피카푸글램핑
    오블완
    ingressnginx
    IT
    쿠버네티스
    POD
    kube-ai
    버전
    쿠버네티스 생명주기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
MAGUJOB
Kubernetes Node Name - 불변(Immutable)
상단으로

티스토리툴바