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

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

절차

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

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

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

    $ oc adm drain <node1> --ignore-daemonsets --delete-local-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 데이터 백업을 참조하십시오.