블록 스토리지가 읽기 전용으로 변경되는 이유는 무엇입니까?

읽기 전용 상태가 된 블록 스토리지 볼륨의 문제 해결.

가상 사설 클라우드 클래식 인프라

다음과 같은 증상이 표시될 수 있습니다.

  • oc get pods -o wide를 실행할 때 동일한 작업자 노드에 있는 여러 팟(Pod)이 계속 ContainerCreating 또는 CrashLoopBackOff 상태에 있습니다. 이러한 모든 팟(Pod)은 동일한 블록 스토리지 인스턴스를 사용합니다.
  • oc describe pod 명령을 실행할 때 이벤트 섹션에 MountVolume.SetUp failed for volume ... read-only 오류가 표시됩니다.

팟(Pod)이 볼륨에 기록하는 동안 네트워크 오류가 발생하면 IBM Cloud 인프라는 볼륨을 읽기 전용 모드로 변경하여 볼륨에 있는 데이터가 손상되지 않도록 보호합니다. 이 볼륨을 사용하는 팟(Pod)은 볼륨에 계속 쓸 수 없으며 실패합니다.

플러그인 버전을 확인하고, 앱을 다시 생성한 다음, 워커 노드를 안전하게 재시작하세요.

  1. 클러스터에 설치한 IBM Cloud Block Storage 플러그인 버전을 확인하십시오.
    helm list --all-namespaces
    
  2. 최신 IBM Cloud Block Storage 플러그인 버전을 사용하는지 확인하십시오. 그렇지 않은 경우에는 플러그인을 업데이트하십시오.
  3. 팟(Pod)에 대해 Kubernetes 배치를 사용한 경우 팟(Pod)을 제거하고 Kubernetes가 이를 다시 작성하도록 하여 실패한 팟(Pod)을 다시 시작하십시오. 배치를 사용하지 않은 경우 oc get pod <pod_name> -o yaml >pod.yaml을 실행하여 팟(Pod)을 작성하는 데 사용된 YAML 파일을 검색하십시오. 그런 다음, 팟(Pod)을 삭제하고 수동으로 다시 작성하십시오.
    oc delete pod <pod_name>
    
  4. 팟(Pod)을 다시 작성하여 문제가 해결되는지 여부를 확인하십시오. 그렇지 않으면, 작업자 노드를 다시 로드하십시오.
    1. 팟(Pod)이 실행되는 작업자 노드를 찾아 작업자 노드에 지정된 사설 IP 주소를 기록해 두십시오.
        oc describe pod <pod_name> | grep Node
        ```
        출력 예:
        ```sh {: screen}
        Node:               10.75.XX.XXX/10.75.XX.XXX
        Node-Selectors:  <none>
        ```
    2. 이전 단계의 사설 IP 주소를 사용하여 작업자 노드의 **ID**를 검색하십시오.
    ```sh {: pre}
        ibmcloud oc worker ls --cluster CLUSTER_NAME_OR_ID
        ```
    3. 안전하게 [작업자 노드를 다시 로드하십시오](/docs/openshift?topic=openshift-kubernetes-service-cli#worker-reload-cli).