This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.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
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 Copied! Toggle word wrap Toggle overflow 작업 노드에 새 컨테이너를 생성할 수 없으며 "can't stat lower layer" 오류가 나타납니다.
can't stat lower layer ... because it does not exist. Going through storage to recreate the missing symlinks.
can't stat lower layer ... because it does not exist. Going through storage to recreate the missing symlinks.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
클러스터 업그레이드 후 또는 재부팅을 시도하는 경우 노드는
NotReady
상태입니다. -
crio
(컨테이너 런타임 구현)가 제대로 작동하지 않습니다. -
컨테이너 런타임 인스턴스(
crio
)가 작동하지 않기 때문에oc debug node/<nodename>
을 사용하여 노드에서 디버그 쉘을 시작할 수 없습니다.
CRI-O 스토리지를 완전히 지우고 오류를 해결하려면 다음 프로세스를 따르십시오.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다.
절차
노드에서
cordon
을 사용합니다. 이는 노드가Ready
상태가 되면 워크로드가 예약되지 않도록 하기 위한 것입니다.SchedulingDisabled
가 상태 섹션에 있으면 예약이 비활성화되어 있음을 알 수 있습니다.oc adm cordon <nodename>
$ oc adm cordon <nodename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드를 cluster-admin으로 드레이닝합니다.
oc adm drain <nodename> --ignore-daemonsets --delete-emptydir-data
$ oc adm drain <nodename> --ignore-daemonsets --delete-emptydir-data
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Pod 또는 Pod 템플릿의
terminationGracePeriodSeconds
속성은 정상 종료 기간을 제어합니다. 이 속성은 기본적으로 30초이지만 필요에 따라 애플리케이션별로 사용자 지정할 수 있습니다. 90초 이상 설정하면 Pod가SIGKILLed
로 표시되고 성공적으로 종료되지 않을 수 있습니다.노드가 반환되면 SSH 또는 콘솔을 통해 노드에 다시 연결합니다. 그런 다음 root 사용자에 연결합니다.
ssh core@node1.example.com sudo -i
$ ssh core@node1.example.com $ sudo -i
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubelet을 수동으로 중지합니다.
systemctl stop kubelet
# systemctl stop kubelet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 컨테이너 및 pod를 중지합니다.
crictl rmp -fa
# crictl rmp -fa
Copy to Clipboard Copied! Toggle word wrap Toggle overflow crio 서비스를 수동으로 중지합니다.
systemctl stop crio
# systemctl stop crio
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이러한 명령을 실행한 후 임시 스토리지를 완전히 초기화할 수 있습니다.
crio wipe -f
# crio wipe -f
Copy to Clipboard Copied! Toggle word wrap Toggle overflow crio 및 kubelet 서비스를 시작합니다.
systemctl start crio systemctl start kubelet
# systemctl start crio # systemctl start kubelet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow crio 및 kubelet 서비스가 시작되고 노드가
Ready
상태에 있으면 정리가 작동했는지 알 수 있습니다.oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS ROLES AGE VERSION ci-ln-tkbxyft-f76d1-nvwhr-master-1 Ready, SchedulingDisabled master 133m v1.22.0-rc.0+75ee307
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 Copied! Toggle word wrap Toggle overflow 노드를 예약 가능으로 표시합니다.
SchedulingDisabled
상태가 더 이상 아닐 때 예약이 활성화되어 있음을 알 수 있습니다.oc adm uncordon <nodename>
$ oc adm uncordon <nodename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS ROLES AGE VERSION ci-ln-tkbxyft-f76d1-nvwhr-master-1 Ready master 133m v1.22.0-rc.0+75ee307
NAME STATUS ROLES AGE VERSION ci-ln-tkbxyft-f76d1-nvwhr-master-1 Ready master 133m v1.22.0-rc.0+75ee307
Copy to Clipboard Copied! Toggle word wrap Toggle overflow