日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

存儲FAQ-CSI

本文為您介紹存儲常見問題的分析流程,云盤存儲卷與NAS存儲卷常見問題的處理方法。

類型

問題

常見問題分析流程

常見問題分析流程

云盤存儲卷常見問題

云盤創建常見問題

云盤掛載常見問題

云盤卸載常見問題

云盤擴容常見問題

動態擴容云盤失敗,PVC Event提示Waiting for user to (re-)start a pod to finish file system resize of volume on node

云盤使用常見問題

應用在讀寫云盤掛載目錄時提示input/output error

NAS存儲卷常見問題

OSS存儲卷常見問題

OSS掛載問題

OSS使用問題

控制臺檢測失敗問題

存儲組件常見問題

云原生常見問題

Flexvolume遷移CSI常見問題

Flexvolume遷移CSI常見問題

其他存儲問題

常見問題分析流程

通過以下操作查看對應存儲插件的日志文件,明確問題現象。

  1. 執行以下命令,查看PVC或Pod上是否有明顯的Event。

    kubectl get events

    預期輸出:

    LAST SEEN   TYPE      REASON                 OBJECT                                                  MESSAGE
    2m56s       Normal    FailedBinding          persistentvolumeclaim/data-my-release-mariadb-0         no persistent volumes available for this claim and no storage class is set
    41s         Normal    ExternalProvisioning   persistentvolumeclaim/pvc-nas-dynamic-create-subpath8   waiting for a volume to be created, either by external provisioner "nasplugin.csi.alibabacloud.com" or manually created by system administrator
    3m31s       Normal    Provisioning           persistentvolumeclaim/pvc-nas-dynamic-create-subpath8   External provisioner is provisioning volume for claim "default/pvc-nas-dynamic-create-subpath8"
  2. 執行以下命令,查看集群是否部署了Flexvolume或CSI存儲插件。

    • 執行以下命令,查看集群是否部署了Flexvolume存儲插件。

      kubectl get pod -n kube-system |grep flexvolume

      預期輸出:

      NAME                      READY   STATUS             RESTARTS   AGE
      flexvolume-***            4/4     Running            0          23d
    • 執行以下命令,查看集群是否部署了CSI存儲插件。

      kubectl get pod -n kube-system |grep csi

      預期輸出:

      NAME                       READY   STATUS             RESTARTS   AGE
      csi-plugin-***             4/4     Running            0          23d
      csi-provisioner-***        7/7     Running            0          14d
  3. 查看使用的數據卷模板是否和集群存儲插件(Flexvolume或CSI)的模板匹配。

    若在此集群中初次使用數據卷,請檢查您的PV對象及StorageClass對象中定義的Driver名稱屬于CSI還是Flexvolume。Driver名稱必須與當前集群部署的插件類型一致。

  4. 查詢存儲插件是否為最新版本。

    • 執行以下命令,查詢Flexvolume插件的鏡像版本。

      kubectl get ds flexvolume -n kube-system -oyaml | grep image

      預期輸出:

      image: registry.cn-hangzhou.aliyuncs.com/acs/Flexvolume:v1.14.8.109-649dc5a-aliyun

      關于Flexvolume插件信息,請參見Flexvolume(已棄用)

    • 執行以下命令,查詢CSI插件的鏡像版本。

      kubectl get ds csi-plugin -n kube-system -oyaml |grep image

      預期輸出:

      image: registry.cn-hangzhou.aliyuncs.com/acs/csi-plugin:v1.18.8.45-1c5d2cd1-aliyun

      關于CSI插件信息,請參見csi-plugincsi-provisioner

  5. 查看日志。

    • 若云盤PVC處于Pending狀態,無法成功創建PV,則需要查看Provisioner日志。

      • 若集群部署了Flexvolume插件,則執行以下命令查詢alicloud-disk-controller日志。

        podid=`kubectl get pod -nkube-system | grep alicloud-disk-controller | awk '{print $1}'`
        kubectl logs <PodID> -n kube-system
      • 若集群部署了CSI插件,則執行以下命令查詢csi-provisioner日志。

        podid=`kubectl get pod -n kube-system | grep csi-provisioner | awk '{print $1}'`
        kubectl logs <PodID> -n kube-system -c csi-provisioner
        說明

        csi-provisioner的容器組數量為2,上述kubectl get pod -nkube-system | grep csi-provisioner | awk '{print $1}'命令操作會輸出2個podid,請分別執行kubectl logs <PodID> -nkube-system -c csi-provisioner命令。

    • 若Pod啟動時掛載報錯,則需要查看Flexvolume或csi-plugin日志。

      • 若集群部署了Flexvolume插件,則執行以下命令查詢Flexvolume日志。

        kubectl get pod <pod-name> -owide

        登錄Pod所在節點,在/var/log/alicloud/flexvolume_**.log查看Flexvolume日志。

      • 若集群部署了CSI插件,則執行以下命令查詢csi-plugin日志。

        nodeID=`kubectl get pod <pod-name> -owide | awk 'NR>1 {print $7}'`
        podID=`kubectl get pods -nkube-system -owide -lapp=csi-plugin | grep $nodeID|awk '{print $1}'`
        kubectl logs <PodID> -nkube-system
    • 查看Kubelet日志。

      執行以下命令,獲取Pod所在節點。

      kubectl get pod <pod-name> -owide | awk 'NR>1 {print $7}'

      登錄到該節點上查看/var/log/message日志文件。

快速恢復

眾多Pod掛載不上數據卷場景的問題,可以通過將Pod調度到其他節點快速恢復。具體操作,請參見調度應用至指定節點

csi-plugin組件升級失敗

由于csi-plugin是Daemonset組件,如果當前集群存在NotReady或者其他非Running狀態的節點,就會導致升級失敗。您需要手動處理故障節點,然后重新升級。具體操作,請參見管理CSI組件

CSI組件啟動失敗

問題現象

csi-provisioner、csi-plugin組件啟動失敗,csi-plugin、csi-provisioner的main container日志報錯403 - Forbidden

問題原因

由于節點上metadata server開啟了安全加固,CSI暫不支持安全加固功能,導致無法訪問元信息。

解決方案

提交工單咨詢ECS團隊,關閉節點的元數據安全加固。

集群節點數量不符合要求導致csi-provisioner組件升級失敗

問題現象

  1. csi-provisioner組件前置檢查失敗,報錯集群節點數量不符合要求。

  2. csi-provisioner前置檢查成功,升級成功。但是查看csi-provisioner Pod crash,發現日志中出現類似下方403 Forbidden的日志。

    time="2023-08-05T13:54:00+08:00" level=info msg="Use node id : <?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n         \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n <head>\n  <title>403 - Forbidden</title>\n </head>\n <body>\n  <h1>403 - Forbidden</h1>\n </body>\n</html>\n"

問題原因

現象1原因

csi-provisioner為了保證高可用,它包含主從Pod,并且主從Pod必須在不同的節點上。如果當前集群只有1個節點,會導致該組件升級失敗。

現象2原因

csi-provisioner所在節點開啟了安全加固模式,該模式禁止了節點上metadata server的訪問,導致此報錯信息。

解決方案

現象1解決方案

您需要更新csi-provisioner組件。具體操作,請參見管理CSI組件

現象2解決方案

關閉節點上的安全加固模式,CSI必須要訪問到節點的元數據。

StorageClass屬性變更導致csi-provisioner組件升級失敗

問題現象

csi-provisioner組件前置檢查失敗,報錯StorageClass屬性不符合預期。

問題原因

默認StorageClass的屬性被變更過,您刪除重建過同名的StorageClass。StorageClass屬性都是不可變的,否則會導致該組件升級失敗。

解決方案

您需要刪除集群中默認的StorageClass,包括alicloud-disk-essd,alicloud-disk-available,alicloud-disk-efficiency,alicloud-disk-ssd,alicloud-disk-topology,刪除過程不會對現有應用造成任何影響。刪除后,請嘗試重新安裝csi-provisioner組件。安裝后,系統會自動重新創建StorageClass,無需您額外處理。

重要

如果您需要自定義的StorageClass,請創建新的StorageClass名稱使用,請勿修改默認的StorageClass。

StorageClass變更是否會影響現有存儲?

若存儲的PVC、PV的YAML文件不發生改變,StorageClass的變更不會對現有存儲產生影響。例如,修改 StorageClass中的ALLOWVOLUMEEXPANSION字段時,僅修改PVC的Capacity后才會生效, 如果PVC的YAML文件不變,此字段不會影響現有配置。

csi-provisioner組件日志出現failed to renew lease xxx timed out waiting for the condition報錯

問題現象

通過kubectl logs csi-provisioner-xxxx -nkube-system命令查看CSI日志,發現failed to renew lease xxx timed out waiting for the condition報錯。

問題原因

csi-provisioner是高可用多副本組件,多Pod組件之間需通過K8s Lease選主,選主過程中需要訪問APIServer來獲取指定的Lease,獲取到Lease的組件就稱為leader,為集群提供服務。當前報錯由于csi-provisioner訪問集群內的APIServer失敗導致。

解決方案

請排查集群網絡和APIserver狀態是否正常。如無法解決,請提交工單處理。

存儲組件導致的OOM問題

csi-provisioner是中心化的存儲組件,Sidecar主要是緩存Pod、PV、PVC等信息,隨著集群規模增加,會造成內存OOM。當發生OOM時,您需要根據集群規模自行調整Limit大小,具體操作如下。

  1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇運維管理 > 組件管理

  3. 組件管理頁面,找到并選中csi-provisioner組件,單擊組件右下方的圖標圖標,然后選擇查看YAML

  4. 根據集群規模修改組件的YAML文件,自行調整Limit大小。

    修改limit大小

創建或掛載存儲卷時,PVC提示no volume plugin matched

問題現象

創建或掛載存儲卷時,PVC提示Unable to attach or mount volumes: unmounted volumes=[xxx], unattached volumes=[xxx]: failed to get Plugin from volumeSpec for volume "xxx" err=no volume plugin matched

問題原因

存儲組件與YAML模板不匹配,創建或掛載存儲卷時,無法找到相應的存儲組件。

解決方案

檢查集群中存儲組件是否存在。

  • 未安裝存儲組件,請在集群中安裝存儲組件。具體操作,請參見管理組件

  • 已安裝存儲組件,請確定存儲組件與PV和PVC的YAML模板是否匹配,且滿足如下條件。

    • CSI存儲組件使用CSI相關文檔進行部署。更多信息,請參見存儲CSI

    • Flexvolume存儲組件使用Flexvolume相關文檔進行部署。更多信息,請參見存儲Flexvolume

      重要

      Flexvolume已經處于已廢棄的狀態。如果您的ACK集群是早期的版本(版本小于1.18),建議您將Flexvolume插件遷移為CSI插件。關于遷移的具體操作,請參見Flexvolume遷移至CSI

csi-plugin的Pod監控上出現大量流量

問題現象

在集群Pod監控上,csi-plugin的Pod出現大量流量。

問題原因

csi-plugin負責當前節點上NAS存儲卷的掛載。由于NAS走的是網絡流量,當節點存在NAS掛載點(即存在使用NAS的Pod)時,Pod發起的NAS請求流量就會經過csi-plugin的Namespace,從而被集群監控記錄。造成csi-plugin出現大量網絡流量。

解決方案

此種情況無需解決。因為流量只是被記錄,并不會翻倍,也不會額外占用網絡帶寬,所以可以忽略。

Pod的Event提示0/x nodes are available: x pod has unbound immediate PersistentVolumeClaims

問題現象

Pod的Event提示0/x nodes are available: x pod has unbound immediate PersistentVolumeClaims. preemption: 0/x nodes are available: x Preemption is not helpful for scheduling

問題原因

由于自定義StorageClass未創建,導致Pod引用的自定義StorageClass未找到。

解決方案

當前Pod使用動態卷時,為找到引用的自定義StorageClass,您需要檢查當前Pod引用的StorageClass是否存在,若不存在,需重新創建StorageClass。

PV為Released狀態,無法通過重建PVC綁定

問題現象

PVC誤刪除后,PV為Released狀態無法通過重建PVC綁定。

問題原因

如果PVC的reclaimPolicyRetain,當PVC被誤刪除時,PV會變為Released狀態。

解決方案

您需要刪除當前PV中的pv.spec.claimRef字段,然后重新使用靜態卷方式進行綁定。即可將PV變為Bound狀態。

PV為Lost狀態,無法通過重建PVC綁定

問題現象

PVC和PV創建后,PV處于Lost狀態,且無法與PVC綁定。

問題原因

PV中claimRef引用的PVC名稱不存在,導致PV狀態為Lost。

解決方案

您需要刪除當前PV中的pv.spec.claimRef字段,然后重新使用靜態卷方式進行綁定。即可將PV變為Bound狀態。

Flexvolume遷移CSI常見問題

容器服務ACK早期的存儲插件為Flexvolume,隨著Kubernetes版本的迭代,Flexvolume已經處于已廢棄的狀態。您的ACK集群如果是早期的版本(版本小于1.18),建議您將Flexvolume插件遷移為CSI插件。關于遷移的具體操作,請參見Flexvolume遷移至CSI

其他存儲類問題

當您遇到mountOption拼寫有誤、PVC引用的StorageClass未創建、未創建掛載點域名等存儲類問題時,建議您優先使用CNFS作為容器存儲卷,可以避免此類問題。關于CNFS更多內容,請參見容器網絡文件系統CNFS概述

容器多個應用是否可以使用同一個存儲卷?

如何更改云盤默認創建的StorageClass的配置?

默認創建的StorageClass不支持更改。

csi-provisioner組件安裝后,集群內會默認創建alicloud-disk-topology-alltype等StorageClass,請勿修改這些默認生成的存儲類。關于云盤StorageClass的更多信息,請參見存儲類(StorageClass)。如果您需要調整StorageClass的配置,例如存儲卷類型、性能、回收策略等,您可以創建新的StorageClass(StorageClass數量不受限制)。具體操作,請參見創建StorageClass