7.3.4. CRI-O 스토리지 정리


다음 문제가 발생하는 경우 CRI-O 임시 스토리지를 수동으로 삭제할 수 있습니다.

  • 노드는 모든 Pod에서 실행할 수 없으며 다음과 같은 오류가 나타납니다.

    Failed to create pod sandbox: rpc error: code = Unknown desc = failed to mount container XXX: error recreating the missing symlinks: error reading name of symlink for XXX: open /var/lib/containers/storage/overlay/XXX/link: no such file or directory
    Copy to Clipboard Toggle word wrap
  • 작업 노드에 새 컨테이너를 생성할 수 없으며 "can't stat lower layer" 오류가 나타납니다.

    can't stat lower layer ...  because it does not exist.  Going through storage to recreate the missing symlinks.
    Copy to Clipboard Toggle word wrap
  • 클러스터 업그레이드 후 또는 재부팅을 시도하는 경우 노드는 NotReady 상태입니다.
  • crio(컨테이너 런타임 구현)가 제대로 작동하지 않습니다.
  • 컨테이너 런타임 인스턴스(crio)가 작동하지 않기 때문에 oc debug node/<nodename>을 사용하여 노드에서 디버그 쉘을 시작할 수 없습니다.

CRI-O 스토리지를 완전히 지우고 오류를 해결하려면 다음 프로세스를 따르십시오.

사전 요구 사항

  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

절차

  1. 노드에서 cordon을 사용합니다. 이는 노드가 Ready 상태가 되면 워크로드가 예약되지 않도록 하기 위한 것입니다. SchedulingDisabled가 상태 섹션에 있으면 예약이 비활성화되어 있음을 알 수 있습니다.

    $ oc adm cordon <nodename>
    Copy to Clipboard Toggle word wrap
  2. 노드를 cluster-admin으로 드레이닝합니다.

    $ oc adm drain <nodename> --ignore-daemonsets --delete-local-data
    Copy to Clipboard Toggle word wrap
    참고

    Pod 또는 Pod 템플릿의 terminationGracePeriodSeconds 속성은 정상 종료 기간을 제어합니다. 이 속성은 기본적으로 30초이지만 필요에 따라 애플리케이션별로 사용자 지정할 수 있습니다. 90초 이상 설정하면 Pod가 SIGKILLed 로 표시되고 성공적으로 종료되지 않을 수 있습니다.

  3. 노드가 반환되면 SSH 또는 콘솔을 통해 노드에 다시 연결합니다. 그런 다음 root 사용자에 연결합니다.

    $ ssh core@node1.example.com
    $ sudo -i
    Copy to Clipboard Toggle word wrap
  4. kubelet을 수동으로 중지합니다.

    # systemctl stop kubelet
    Copy to Clipboard Toggle word wrap
  5. 컨테이너 및 pod를 중지합니다.

    # crictl rmp -fa
    Copy to Clipboard Toggle word wrap
  6. crio 서비스를 수동으로 중지합니다.

    # systemctl stop crio
    Copy to Clipboard Toggle word wrap
  7. 이러한 명령을 실행한 후 임시 스토리지를 완전히 초기화할 수 있습니다.

    # crio wipe -f
    Copy to Clipboard Toggle word wrap
  8. crio 및 kubelet 서비스를 시작합니다.

    # systemctl start crio
    # systemctl start kubelet
    Copy to Clipboard Toggle word wrap
  9. crio 및 kubelet 서비스가 시작되고 노드가 Ready 상태에 있으면 정리가 작동했는지 알 수 있습니다.

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME				    STATUS	                ROLES    AGE    VERSION
    ci-ln-tkbxyft-f76d1-nvwhr-master-1  Ready, SchedulingDisabled   master	 133m   v1.22.0-rc.0+75ee307
    Copy to Clipboard Toggle word wrap

  10. 노드를 예약 가능으로 표시합니다. SchedulingDisabled 상태가 더 이상 아닐 때 예약이 활성화되어 있음을 알 수 있습니다.

    $ oc adm uncordon <nodename>
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME				     STATUS	      ROLES    AGE    VERSION
    ci-ln-tkbxyft-f76d1-nvwhr-master-1   Ready            master   133m   v1.22.0-rc.0+75ee307
    Copy to Clipboard Toggle word wrap

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat