Menu Close

5.6.4. 노드를 정상적으로 재부팅

노드를 재부팅하기 전에 노드에서 데이터 손실을 방지하기 위해 etcd 데이터를 백업하는 것이 좋습니다.

절차

노드를 정상적으로 다시 시작하려면 다음을 수행합니다.

  1. 노드를 예약 불가능으로 표시합니다.

    $ oc adm cordon <node1>
  2. 노드를 드레이닝하여 실행 중인 모든 Pod를 제거합니다.

    $ oc adm drain <node1> --ignore-daemonsets --delete-emptydir-data

    사용자 정의 PDB(Pod 중단 예산)와 연결된 Pod를 제거할 수 없는 오류가 표시될 수 있습니다.

    오류 예

    error when evicting pods/"rails-postgresql-example-1-72v2w" -n "rails" (will retry after 5s): Cannot evict pod as it would violate the pod's disruption budget.

    이 경우 drain 명령을 다시 실행하여 PDB 검사를 바이패스하는 disable-eviction 플래그를 추가합니다.

    $ oc adm drain <node1> --ignore-daemonsets --delete-emptydir-data --force --disable-eviction
  3. 디버그 모드에서 노드에 액세스합니다.

    $ oc debug node/<node1>
  4. 루트 디렉터리를 호스트로 변경하십시오.

    $ chroot /host
  5. 노드를 재시작합니다.

    $ systemctl reboot

    잠시 후 노드는 NotReady 상태가 됩니다.

  6. 재부팅이 완료되면 다음 명령을 실행하여 노드를 예약 가능으로 표시합니다.

    $ oc adm uncordon <node1>
  7. 노드가 준비되었는지 확인합니다.

    $ oc get node <node1>

    출력 예

    NAME    STATUS  ROLES    AGE     VERSION
    <node1> Ready   worker   6d22h   v1.18.3+b0068a8

추가 정보

etcd 데이터 백업에 대한 자세한 내용은 etcd 데이터 백업을 참조하십시오.