내 PVC가 보류 상태로 유지되는 이유는 무엇입니까?

Cloud Object Storage 에서 보류 상태로 남아 있는 영구 볼륨 클레임의 문제를 해결합니다.

이 문제점 해결 주제는 버전 3.11을 실행하는 Red Hat OpenShift 클러스터에만 적용됩니다.

PVC를 작성하고 oc get pvc <pvc_name>를 실행할 때 일정 시간 동안 기다린 후에도 PVC가 보류 중 상태입니다.

PVC 작성 및 바인딩 중에 많은 다른 태스크가 IBM Cloud Object Storage 플러그인에 의해 실행됩니다. 각 태스크는 실패할 수 있으며 다른 오류 메시지가 발생할 수 있습니다.

PVC를 설명하고 공통 오류 메시지를 검토하십시오.

  1. PVC의 상태가 보류 중인 이유에 대한 근본 원인을 찾으십시오.
    oc describe pvc <pvc_name> -n <namespace>
    
  2. 공통 오류 메시지 설명 및 해결 방법을 검토하십시오.
블록 스토리지 오류 메시지
오류 메시지 설명 해결 단계
can't get credentials: can't get secret <secret_name>: secrets "<secret_name>" not found IBM Cloud Object Storage 서비스 인증 정보를 보유하는 Kubernetes 시크릿은 PVC 또는 팟(Pod)과 동일한 네임스페이스에 없습니다. Kubernetes 시크릿을 찾을 수 없으므로 PVC 또는 팟(Pod) 작성에 실패함을 참조하십시오.
can't get credentials: Wrong Secret Type.Provided secret of type XXXX.Expected type ibm/ibmc-s3fs IBM Cloud Object Storage 서비스 인스턴스에 대해 작성한 Kubernetes 시크릿에는 type: ibm/ibmc-s3fs가 포함되지 않습니다. typeibm/ibmc-s3fs로 추가하거나 변경하려면 IBM Cloud Object Storage 인증 정보를 보유하는 Kubernetes 시크릿을 편집하십시오.
Bad value for ibm.io/object-store-endpoint XXXX: scheme is missing. Must be of the form http://<hostname> or https://<hostname> Bad value for ibm.io/iam-endpoint XXXX: scheme is missing. Must be of the form http://<hostname> or https://<hostname> s3fs API 또는 IAM API 엔드포인트의 형식은 올바르지 않거나 클러스터 위치를 기반으로 s3fs API 엔드포인트를 검색할 수 없습니다. 올바르지 않은 s3fs API 엔드포인트로 인해 PVC 작성에 실패함을 참조하십시오.
object-path can't be set when auto create is enabled ibm.io/object-path 어노테이션을 사용하여 PVC에 마운트할 버킷의 기존 서브디렉토리를 지정했습니다. 하위 디렉터리를 설정하는 경우, 버킷 자동 생성 기능을 비활성화해야 합니다. PVC에서 ibm.io/auto-create-bucket: "false"를 설정하고 ibm.io/bucket에서 기존 버킷 이름을 제공하십시오.
bucket auto-create must be enabled when bucket auto-delete is enabled PVC에서 PCV 제거 시 자동으로 데이터, 버킷 및 PV를 삭제하도록 ibm.io/auto-delete-bucket: true를 설정합니다. 이 옵션을 사용하려면 동시에 ibm.io/auto-create-buckettrue로 설정하고 ibm.io/bucket""로 설정해야 합니다. PVC에서 ibm.io/auto-create-bucket: true 형식의 이름으로 버킷이 자동 작성되도록 ibm.io/bucket: ""tmp-s3fs-xxxx을 설정하십시오.
bucket can't be set when auto-delete is enabled PVC에서 PCV 제거 시 자동으로 데이터, 버킷 및 PV를 삭제하도록 ibm.io/auto-delete-bucket: true를 설정합니다. 이 옵션을 사용하려면 동시에 ibm.io/auto-create-buckettrue로 설정하고 ibm.io/bucket""로 설정해야 합니다. PVC에서 ibm.io/auto-create-bucket: true 형식의 이름으로 버킷이 자동 작성되도록 ibm.io/bucket: ""tmp-s3fs-xxxx을 설정하십시오.
can't create bucket using API key without service-instance-id IBM Cloud Object Storage 서비스 인스턴스에 액세스하는 데 IAM API 키를 사용할 경우 API 키 및 IBM Cloud Object Storage 서비스 인스턴스 ID를 Kubernetes 시크릿에 저장해야 합니다. 오브젝트 스토리지 서비스 인증 정보의 시크릿 작성을 참조하십시오.
object-path “<subdirectory_name>” not found inside bucket <bucket_name> ibm.io/object-path 어노테이션을 사용하여 PVC에 마운트할 버킷의 기존 서브디렉토리를 지정했습니다. 이 서브디렉토리는 지정한 버킷에서 찾을 수 없습니다. ibm.io/object-path에 지정한 서브디렉토리가 ibm.io/bucket에 지정한 버킷에 존재하는지 확인하십시오.
BucketAlreadyExists: The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again. 동시에 ibm.io/auto-create-bucket: true를 설정하고 버킷 이름을 지정했거나 IBM Cloud Object Storage에 이미 존재하는 버킷 이름을 지정했습니다. 버킷 이름은 IBM Cloud Object Storage의 모든 서비스 인스턴스 및 지역에서 고유해야 합니다. ibm.io/auto-create-bucket: false를 설정하고 IBM Cloud Object Storage에 고유한 버킷 이름을 제공해야 합니다. 사용자에 적합한 버킷 이름을 자동으로 작성하도록 IBM Cloud Object Storage 플러그인을 사용할 경우 ibm.io/auto-create-bucket: trueibm.io/bucket: ""을 설정하십시오. 버킷은 tmp-s3fs-xxxx 형식의 고유한 이름으로 작성됩니다. 자동으로 생성되는 버킷의 이름을 지정하려면 ibm.io/auto-create-bucket: true, ibm.io/auto-delete-bucket: falseibm.io/bucket: "<bucket_name>" 을 설정하십시오.
can't access bucket <bucket_name>: NotFound: Not Found 작성하지 않은 버킷에 액세스하려고 시도했거나 지정한 스토리지 클래스 및 s3fs API 엔드포인트가 버킷 작성 시 사용한 스토리지 클래스 및 s3fs API 엔드포인트와 일치하지 않습니다. 기존 버킷에 액세스할 수 없음을 참조하십시오.
Put https://s3-api.dal-us-geo.objectstorage.service.networklayer.com/<bucket_name>: net/http: invalid header field value "AWS4-HMAC-SHA256 Credential=1234a12a123a123a1a123aa1a123a123 \n/20190412/us-standard/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=12aa1abc123456aabb12aas12aa123456sb123456abc" for key Authorization Kubernetes 시크릿의 값이 base64로 올바르게 인코딩되지 않았습니다. Kubernetes 시크릿의 값을 검토하고 올바른 값으로 base64를 인코딩하십시오. oc create secret 명령을 사용하여 새 시크릿을 작성하고 Kubernetes를 통해 자동으로 값을 base64로 인코딩할 수도 있습니다.
can't access bucket <bucket_name>: Forbidden: Forbidden ibm.io/auto-create-bucket: false 를 지정하고 작성하지 않은 버킷에 액세스하려고 시도했습니다. IBM Cloud Object Storage HMAC 인증 정보의 시크릿 액세스 키 또는 액세스 키 ID가 올바르지 않거나 버킷의 지역 엔드포인트가 변경되었습니다. 작성하지 않은 버킷에는 액세스할 수 없습니다. ibm.io/auto-create-bucket: trueibm.io/bucket: ""을 설정하여 대신 버킷을 자동으로 작성하십시오. 버킷의 소유자인 경우 잘못된 인증 정보 또는 액세스 거부로 인해 PVC 작성에 실패함을 참조하여 인증 정보를 확인하십시오.
can't create bucket <bucket_name>: AccessDenied: Access Denied IBM Cloud Object Storage에서 버킷을 자동으로 작성하도록 ibm.io/auto-create-bucket: true를 지정했으나 Kubernetes 시크릿에서 제공한 인증 정보에는 독자 IAM 서비스 액세스 역할이 지정됩니다. 이 역할이 지정되면 IBM Cloud Object Storage에서 버킷을 작성할 수 없습니다. 잘못된 인증 정보 또는 액세스 거부로 인해 PVC 작성에 실패함을 참조하십시오.
can't create bucket <bucket_name>: AccessForbidden: Access Forbidden ibm.io/auto-create-bucket: true를 지정하고 ibm.io/bucket에서 기존 버킷 이름을 제공했습니다. 또한 Kubernetes 시크릿에서 제공한 인증 정보에는 독자 IAM 서비스 액세스 역할이 지정됩니다. 이 역할이 지정되면 IBM Cloud Object Storage에서 버킷을 작성할 수 없습니다. 기존 버킷을 사용하려면 ibm.io/auto-create-bucket: false를 설정하고 ibm.io/bucket에서 기존 버킷 이름을 제공하십시오. 기존 Kubernetes 시크릿을 사용하여 버킷을 자동으로 작성하려면 ibm.io/bucket: ""을 설정하고 잘못된 인증 정보 또는 액세스 거부로 인해 PVC 작성에 실패함을 따라 Kubernetes 시크릿의 인증 정보를 확인하십시오.
can't create bucket <bucket_name>: SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. For more information, see REST Authentication and SOAP Authentication for details Kubernetes 시크릿에서 제공한 HMAC 인증 정보의 IBM Cloud Object Storage 시크릿 액세스 키가 올바르지 않습니다. 잘못된 인증 정보 또는 액세스 거부로 인해 PVC 작성에 실패함을 참조하십시오.
can't create bucket <bucket_name>: InvalidAccessKeyId: The AWS Access Key ID you provided does not exist in our records Kubernetes 시크릿에서 제공한 HMAC 인증 정보의 IBM Cloud Object Storage 액세스 키 ID 또는 시크릿 액세스 키가 올바르지 않습니다. 잘못된 인증 정보 또는 액세스 거부로 인해 PVC 작성에 실패함을 참조하십시오.
can't create bucket <bucket_name>: CredentialsEndpointError: failed to load credentials
can't access bucket <bucket_name>: CredentialsEndpointError: failed to load credentials
IAM 인증 정보의 IBM Cloud Object Storage API 키 및 IBM Cloud Object Storage 서비스 인스턴스의 GUID가 올바르지 않습니다. 잘못된 인증 정보 또는 액세스 거부로 인해 PVC 작성에 실패함을 참조하십시오.
TokenManagerRetrieveError: error retrieving the token 이 오류는 공용 아웃바운드 액세스 권한이 없는 클러스터에서 IAM 인증 정보로 PVC를 작성할 때 발생합니다. 클러스터에 공용 아웃바운드 액세스 권한이 없는 경우, HMAC 자격 증명을 사용하는 IBM Cloud Object Storage 인스턴스를 생성하십시오.
set-access-policy not supported for classic cluster 이 오류는 클래식 클러스터에 ibm-object-storage-plugin 를 설치하고 ‘ bucketAccessPolicy=true ’ 옵션을 설정했을 때 발생합니다. bucketAccessPolicy=true 옵션은 VPC 클러스터에서만 사용됩니다. 플러그인을 설치 하고 bucketAccessPolicy=false 옵션을 설정하십시오.