儲存卷掛載不上

檢查Flexvolume是否安裝

在master節點上執行下面命令。

# kubectl get pod -n kube-system | grep flexvolume

flexvolume-4wh8s            1/1       Running   0          8d
flexvolume-65z49            1/1       Running   0          8d
flexvolume-bpc6s            1/1       Running   0          8d
flexvolume-l8pml            1/1       Running   0          8d
flexvolume-mzkpv            1/1       Running   0          8d
flexvolume-wbfhv            1/1       Running   0          8d
flexvolume-xf5cs            1/1       Running   0          8d

查看flexvolume pod狀態是否為Running,且啟動並執行數量與節點數量相同;

如果沒有安裝,請參考安裝外掛程式

如果運行狀態不對,請參考外掛程式作業記錄分析。

檢查動態儲存裝置外掛程式是否安裝

如果使用雲端硬碟的動態儲存裝置功能,需要確認是否安裝動態儲存裝置外掛程式,執行下面命令。

# kubectl get pod -n kube-system | grep alicloud-disk

alicloud-disk-controller-8679c9fc76-lq6zb     1/1 Running   0   7d

如果沒有安裝,請參考安裝外掛程式

如果運行狀態不對,請參考外掛程式作業記錄分析。

如何查看儲存相關日誌

Flexvolume日誌(master1上執行)

執行get命令查看出錯的pod:
# kubectl get pod -n kube-system | grep flexvolume
執行log命令,查看出錯pod的日誌:
# kubectl logs flexvolume-4wh8s -n kube-system
# kubectl describe pod flexvolume-4wh8s -n kube-system

#在pod描述最後若干行是pod運行狀態的描述,可以根據描述分析錯誤;
雲端硬碟、NAS、OSS驅動日誌查看:
# 查看host節點上持久化的日誌;
# 如果某個Pod掛載失敗,查看pod所在的節點地址:

# kubectl describe pod nginx-97dc96f7b-xbx8t | grep Node
Node: cn-hangzhou.i-bp19myla3uvnt6zihejb/192.168.247.85
Node-Selectors:  <none>

# 登陸節點,查看日誌:

# ssh 192.168.247.85
# ls /var/log/alicloud/flexvolume*
flexvolume_disk.log  flexvolume_nas.log  flexvolume_o#ss.log

可以看到雲端硬碟、nas、oss掛載的日誌;

provsioner外掛程式日誌(master1上執行)

執行get命令查看出錯的pod:
# kubectl get pod -n kube-system | grep alicloud-disk
執行log命令,查看出錯pod的日誌:
# kubectl logs alicloud-disk-controller-8679c9fc76-lq6zb -n kube-system
# kubectl describe pod alicloud-disk-controller-8679c9fc76-lq6zb -n kube-system

#在pod描述最後若干行是pod運行狀態的描述,可以根據描述分析錯誤;

Kubelet日誌

# 如果某個Pod掛載失敗,查看pod所在的節點地址:

# kubectl describe pod nginx-97dc96f7b-xbx8t | grep Node
Node: cn-hangzhou.i-bp19myla3uvnt6zihejb/192.168.247.85
Node-Selectors:  <none>

# 登陸節點,查看kubelet日誌:

# ssh 192.168.247.85
# journalctl -u kubelet -r -n 1000 &> kubelet.log

# -n的值表示期望看到的日誌行數;

上述為擷取flexvolume、provsioner、Kubelet錯誤記錄檔的方法,如果無法根據日誌修複狀態,可以附帶日誌資訊聯絡阿里雲支援人員;

雲端硬碟常見問題

雲端硬碟掛載失敗,出現timeout錯誤

如果節點為手動添加,可能是由於sts許可權的問題導致,需要手動設定RAM許可權:通過控制台使用執行個體 RAM 角色

雲端硬碟掛載失敗,出現Size錯誤

建立雲端硬碟對Size有如下要求。

说明
  • 普通雲端硬碟:最小5Gi
  • 高效雲端硬碟:最小20Gi
  • SSD雲端硬碟:最小20Gi

雲端硬碟掛載失敗,出現zone錯誤;

ECS掛載雲端硬碟時,必須在同一個region下面的相同zone內,否則不能掛載成功。

升級系統後,雲端硬碟有時報錯:input/output error

  1. 升級flexvolume到v1.9.7-42e8198或以後版本。
  2. 對於已經出問題的Pod,需要重建。

升級命令:

# kubectl set image daemonset/flexvolume acs-flexvolume=registry.cn-hangzhou.aliyuncs.com/acs/flexvolume:v1.9.7-42e8198 -n kube-system

Flexvolume版本資訊:可登入Container Registry控制台,單擊左側導覽列中的鏡像搜尋,搜尋acs/flexvolume,擷取Flexvolume最新版本資訊。

NAS常見問題

NAS掛載時間太長

如果NAS卷包含的檔案量很大,且在掛載模板中配置了chmod參數,可能導致掛載時間過長的問題;可以去掉chmod參數。

NAS掛載失敗,出現timeouot錯誤

檢查nas掛載點和叢集是否在同一個vpc內,否則無法掛載。

OSS常見問題

oss掛載失敗

檢查使用的ak是否正確。