Information in this document may be out of date

This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: Upgrading Linux nodes

리눅스 노드 업그레이드

이 페이지는 kubeadm으로 생성된 리눅스 노드를 업그레이드하는 방법을 설명한다.

시작하기 전에

쿠버네티스 클러스터가 필요하고, kubectl 커맨드-라인 툴이 클러스터와 통신할 수 있도록 설정되어 있어야 한다. 이 튜토리얼은 컨트롤 플레인 호스트가 아닌 노드가 적어도 2개 포함된 클러스터에서 실행하는 것을 추천한다. 만약, 아직 클러스터를 가지고 있지 않다면, minikube를 사용해서 생성하거나 다음 쿠버네티스 플레이그라운드 중 하나를 사용할 수 있다.

버전 확인을 위해서, 다음 커맨드를 실행 kubectl version.

워커 노드 업그레이드

kubeadm 업그레이드

kubeadm을 업그레이드한다.

# 1.31.x-00 에서 x 에 최신 버전을 넣는다.
apt-mark unhold kubeadm && \
apt-get update && apt-get install -y kubeadm=1.31.x-00 && \
apt-mark hold kubeadm

# 1.31.x-00 에서 x 에 최신 버전을 넣는다.
yum install -y kubeadm-1.31.x-0 --disableexcludes=kubernetes

"kubeadm upgrade" 호출

  • 워커 노드의 경우 로컬 kubelet 구성을 업그레이드한다.

    sudo kubeadm upgrade node
    

노드 드레인

  • 노드를 스케줄 불가능한 것으로 표시하고 워크로드를 축출하여 유지 보수할 노드를 준비한다.

    # <node-to-drain> 에 드레인하려는 노드의 이름을 넣는다.
    kubectl drain <node-to-drain> --ignore-daemonsets
    

kubelet과 kubectl 업그레이드

  • kubelet과 kubectl 업그레이드.

    # 1.31.x-00 에서 x 에 최신 버전을 넣는다.
    apt-mark unhold kubelet kubectl && \
    apt-get update && apt-get install -y kubelet=1.31.x-00 kubectl=1.31.x-00 && \
    apt-mark hold kubelet kubectl
    

    # 1.31.x-00 에서 x 에 최신 버전을 넣는다.
    yum install -y kubelet-1.31.x-0 kubectl-1.31.x-0 --disableexcludes=kubernetes
    

  • kubelet을 재시작한다.

    sudo systemctl daemon-reload
    sudo systemctl restart kubelet
    

노드에 적용된 cordon 해제

  • 스케줄 가능으로 표시하여 노드를 다시 온라인으로 가져온다.

    # <node-to-uncordon> 에 노드의 이름을 넣는다.
    kubectl uncordon <node-to-uncordon>
    

다음 내용

최종 수정 June 20, 2024 at 12:44 PM PST: Sync changest from andygol/k8s-website (36d05bc8a1)