Change:
This is a Bug Report <!-- Thanks for filing an issue! Before submitting, please fill in the following information. --<!-- See for guidance on writing an actionable issue description. --<!--Required Information--Problem: Broken layout on "kubeadm " ! Proposed Solution: Check and apply upstream changes. Page to Update: <!--Optional Information (remove the comment tags around information you would like to include)--<!--Kubernetes Version:--<!--Additional Information:--/language ko
/assign
/unassign This issue already has been assigned to .

Discussion:
## 업그레이드할 버전 결정 <del> 1.  최신의 안정 버전인 1.18을 찾는다. </del> <ins> 최신의 안정 버전인 1.18을 찾는다. </ins> <del> {{< tabs name="k8s_install_versions" >}} {{% tab name="Ubuntu, Debian 또는 HypriotOS" %}} </del> <ins> {{< tabs name="k8s_install_versions" >}} {{% tab name="Ubuntu, Debian 또는 HypriotOS" %}} </ins> apt update apt-cache madison kubeadm # 목록에서 최신 버전 1.18을 찾는다 # 1.18.x-00과 같아야 한다. 여기서 x는 최신 패치이다. <del> {{% /tab %}} {{% tab name="CentOS, RHEL 또는 Fedora" %}} </del> <ins> {{% /tab %}} {{% tab name="CentOS, RHEL 또는 Fedora" %}} </ins> yum list --showduplicates kubeadm --disableexcludes=kubernetes # 목록에서 최신 버전 1.18을 찾는다 # 1.18.x-0과 같아야 한다. 여기서 x는 최신 패치이다. <del> {{% /tab %}} {{< /tabs >}} </del> <ins> {{% /tab %}} {{< /tabs >}} </ins> ## 컨트롤 플레인 노드 업그레이드 ### 첫 번째 컨트롤 플레인 노드 업그레이드 <del> 1.  첫 번째 컨트롤 플레인 노드에서 kubeadm을 업그레이드한다. </del> <ins> -  첫 번째 컨트롤 플레인 노드에서 kubeadm을 업그레이드한다. </ins> <del> {{< tabs name="k8s_install_kubeadm_first_cp" >}} {{% tab name="Ubuntu, Debian 또는 HypriotOS" %}} </del> <ins> {{< tabs name="k8s_install_kubeadm_first_cp" >}} {{% tab name="Ubuntu, Debian 또는 HypriotOS" %}} </ins> # 1.18.x-00에서 x를 최신 패치 버전으로 바꾼다. apt-mark unhold kubeadm &&  apt-get update && apt-get install -y kubeadm=1.18.x-00 &&  apt-mark hold kubeadm <ins> - </ins> # apt-get 버전 1.1부터 다음 방법을 사용할 수도 있다 apt-get update &&  apt-get install -y --allow-change-held-packages kubeadm=1.18.x-00 <del> {{% /tab %}} {{% tab name="CentOS, RHEL 또는 Fedora" %}} </del> <ins> {{% /tab %}} {{% tab name="CentOS, RHEL 또는 Fedora" %}} </ins> # 1.18.x-0에서 x를 최신 패치 버전으로 바꾼다. yum install -y kubeadm-1.18.x-0 --disableexcludes=kubernetes <del> {{% /tab %}} {{< /tabs >}} </del> <ins> {{% /tab %}} {{< /tabs >}} </ins> <del> 1.  다운로드하려는 버전이 잘 받아졌는지 확인한다. </del> <ins> -  다운로드하려는 버전이 잘 받아졌는지 확인한다. </ins> ```shell kubeadm version ``` <del> 1.  컨트롤 플레인 노드를 드레인(drain)한다. </del> <ins> -  컨트롤 플레인 노드를 드레인(drain)한다. </ins> ```shell # <cp-node-name>을 컨트롤 플레인 노드 이름으로 바꾼다. kubectl drain <cp-node-name> --ignore-daemonsets ``` <del> 1.  컨트롤 플레인 노드에서 다음을 실행한다. </del> <ins> -  컨트롤 플레인 노드에서 다음을 실행한다. </ins> ```shell sudo kubeadm upgrade plan

이 명령은 클러스터를 업그레이드할 수 있는지를 확인하고, 업그레이드할 수 있는 버전을 가져온다. <del> {{< note >}} 또한 `kubeadm upgrade` 는 이 노드에서 관리하는 인증서를 자동으로 갱신한다. 인증서 갱신을 하지 않으려면 `--certificate-renewal=false` 플래그를 사용할 수 있다. 자세한 내용은 [인증서 관리 가이드](/docs/tasks/administer-cluster/kubeadm/kubeadm-certs)를 참고한다. {{</ note >}} </del> <ins> {{< note >}} 또한 `kubeadm upgrade` 는 이 노드에서 관리하는 인증서를 자동으로 갱신한다. 인증서 갱신을 하지 않으려면 `--certificate-renewal=false` 플래그를 사용할 수 있다. 자세한 내용은 [인증서 관리 가이드](/docs/tasks/administer-cluster/kubeadm/kubeadm-certs)를 참고한다. {{</ note >}} </ins> <del> 1.  업그레이드할 버전을 선택하고, 적절한 명령을 실행한다. 예를 들면 다음과 같다. </del> <ins> -  업그레이드할 버전을 선택하고, 적절한 명령을 실행한다. 예를 들면 다음과 같다. </ins> ```shell # 이 업그레이드를 위해 선택한 패치 버전으로 x를 바꾼다.

[upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so. ``` <del> 1.  CNI 제공자 플러그인을 수동으로 업그레이드한다. </del> <ins> -  CNI 제공자 플러그인을 수동으로 업그레이드한다. </ins> CNI(컨테이너 네트워크 인터페이스) 제공자는 자체 업그레이드 지침을 따를 수 있다. [애드온](/docs/concepts/cluster-administration/addons/) 페이지에서

CNI 제공자가 데몬셋(DaemonSet)으로 실행되는 경우 추가 컨트롤 플레인 노드에는 이 단계가 필요하지 않다. <del> 1.  컨트롤 플레인 노드에 적용된 cordon을 해제한다. </del> <ins> -  컨트롤 플레인 노드에 적용된 cordon을 해제한다. </ins> ```shell # <cp-node-name>을 컨트롤 플레인 노드 이름으로 바꾼다.

### 추가 컨트롤 플레인 노드 업그레이드 <del> 1.  첫 번째 컨트롤 플레인 노드와 동일하지만 다음을 사용한다. </del> <ins> 첫 번째 컨트롤 플레인 노드와 동일하지만 다음을 사용한다. </ins> <del> ``` sudo kubeadm upgrade node ``` </del> <ins> ``` sudo kubeadm upgrade node ``` </ins> <del> 아래 명령 대신 위의 명령을 사용한다. </del> <ins> 아래 명령 대신 위의 명령을 사용한다. </ins> <del> ``` sudo kubeadm upgrade apply ``` </del> <ins> ``` sudo kubeadm upgrade apply ``` </ins> <del> 또한 `sudo kubeadm upgrade plan` 은 필요하지 않다. </del> <ins> 또한 `sudo kubeadm upgrade plan` 은 필요하지 않다. </ins> ### kubelet과 kubectl 업그레이드 <del> 1.  모든 컨트롤 플레인 노드에서 kubelet 및 kubectl을 업그레이드한다. </del> <ins> 모든 컨트롤 플레인 노드에서 kubelet 및 kubectl을 업그레이드한다. </ins> <del> {{< tabs name="k8s_install_kubelet" >}} {{% tab name="Ubuntu, Debian 또는 HypriotOS" %}} </del> <ins> {{< tabs name="k8s_install_kubelet" >}} {{% tab name="Ubuntu, Debian 또는 HypriotOS" %}} </ins> # 1.18.x-00의 x를 최신 패치 버전으로 바꾼다 apt-mark unhold kubelet kubectl &&  apt-get update && apt-get install -y kubelet=1.18.x-00 kubectl=1.18.x-00 &&  apt-mark hold kubelet kubectl <ins> - </ins> # apt-get 버전 1.1부터 다음 방법을 사용할 수도 있다 apt-get update &&  apt-get install -y --allow-change-held-packages kubelet=1.18.x-00 kubectl=1.18.x-00 <del> {{% /tab %}} {{% tab name="CentOS, RHEL 또는 Fedora" %}} </del> <ins> {{% /tab %}} {{% tab name="CentOS, RHEL 또는 Fedora" %}} </ins> # 1.18.x-0에서 x를 최신 패치 버전으로 바꾼다 yum install -y kubelet-1.18.x-0 kubectl-1.18.x-0 --disableexcludes=kubernetes <del> {{% /tab %}} {{< /tabs >}} </del> <ins> {{% /tab %}} {{< /tabs >}} </ins> <del> 1.  kubelet을 다시 시작한다. </del> <ins> kubelet을 다시 시작한다. </ins> <del> ```shell sudo systemctl restart kubelet ``` </del> <ins> ```shell sudo systemctl restart kubelet ``` </ins> ## 워커 노드 업그레이드

### kubeadm 업그레이드 <del> 1.  모든 워커 노드에서 kubeadm을 업그레이드한다. </del> <ins> -  모든 워커 노드에서 kubeadm을 업그레이드한다. </ins> <del> {{< tabs name="k8s_install_kubeadm_worker_nodes" >}} {{% tab name="Ubuntu, Debian 또는 HypriotOS" %}} </del> <ins> {{< tabs name="k8s_install_kubeadm_worker_nodes" >}} {{% tab name="Ubuntu, Debian 또는 HypriotOS" %}} </ins> # 1.18.x-00의 x를 최신 패치 버전으로 바꾼다 apt-mark unhold kubeadm &&  apt-get update && apt-get install -y kubeadm=1.18.x-00 &&  apt-mark hold kubeadm <ins> - </ins> # apt-get 버전 1.1부터 다음 방법을 사용할 수도 있다 apt-get update &&  apt-get install -y --allow-change-held-packages kubeadm=1.18.x-00 <del> {{% /tab %}} {{% tab name="CentOS, RHEL 또는 Fedora" %}} </del> <ins> {{% /tab %}} {{% tab name="CentOS, RHEL 또는 Fedora" %}} </ins> # 1.18.x-0에서 x를 최신 패치 버전으로 바꾼다 yum install -y kubeadm-1.18.x-0 --disableexcludes=kubernetes <del> {{% /tab %}} {{< /tabs >}} </del> <ins> {{% /tab %}} {{< /tabs >}} </ins> ### 노드 드레인 <del> 1.  스케줄 불가능(unschedulable)으로 표시하고 워크로드를 축출하여 유지 보수할 노드를 준비한다. </del> <ins> -  스케줄 불가능(unschedulable)으로 표시하고 워크로드를 축출하여 유지 보수할 노드를 준비한다. </ins> ```shell # <node-to-drain>을 드레이닝하려는 노드 이름으로 바꾼다.

### kubelet과 kubectl 업그레이드 <del> 1.  모든 워커 노드에서 kubelet 및 kubectl을 업그레이드한다. </del> <ins> -  모든 워커 노드에서 kubelet 및 kubectl을 업그레이드한다. </ins> <del> {{< tabs name="k8s_kubelet_and_kubectl" >}} {{% tab name="Ubuntu, Debian 또는 HypriotOS" %}} </del> <ins> {{< tabs name="k8s_kubelet_and_kubectl" >}} {{% tab name="Ubuntu, Debian 또는 HypriotOS" %}} </ins> # 1.18.x-00의 x를 최신 패치 버전으로 바꾼다 apt-mark unhold kubelet kubectl &&  apt-get update && apt-get install -y kubelet=1.18.x-00 kubectl=1.18.x-00 &&  apt-mark hold kubelet kubectl <ins> - </ins> # apt-get 버전 1.1부터 다음 방법을 사용할 수도 있다 apt-get update &&  apt-get install -y --allow-change-held-packages kubelet=1.18.x-00 kubectl=1.18.x-00 <del> {{% /tab %}} {{% tab name="CentOS, RHEL 또는 Fedora" %}} </del> <ins> {{% /tab %}} {{% tab name="CentOS, RHEL 또는 Fedora" %}} </ins> # 1.18.x-0에서 x를 최신 패치 버전으로 바꾼다 yum install -y kubelet-1.18.x-0 kubectl-1.18.x-0 --disableexcludes=kubernetes <del> {{% /tab %}} {{< /tabs >}} </del> <ins> {{% /tab %}} {{< /tabs >}} </ins> <del> 1.  kubelet을 다시 시작한다. </del> <ins> -  kubelet을 다시 시작한다. </ins> ```shell sudo systemctl restart kubelet

### 노드에 적용된 cordon 해제 <del> 1.  스케줄 가능(schedulable)으로 표시하여 노드를 다시 온라인 상태로 만든다. </del> <ins> -  스케줄 가능(schedulable)으로 표시하여 노드를 다시 온라인 상태로 만든다. </ins> ```shell # <node-to-drain>을 노드의 이름으로 바꾼다.