OpenStack 上的 Kubernetes CSI 在節點上新增了錯誤的 nodeid 註釋

OpenStack 上的 Kubernetes CSI 在節點上新增了錯誤的 nodeid 註釋

我正在嘗試配置 Cinder CSI 插件(https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/using-cinder-csi-plugin.md)在我的 Kubernetes 叢集(安裝在 OpenStack 實例上)上。

一切正常(PV、PVC 和實際 Cinder 磁碟區創建得很好),但是當csi-attacher嘗試將我的 Cinder 磁碟區附加到我的節點時,它失敗並顯示:

Error processing "csi-0c1aee9c7e99bc90a586541a4bb7974e38978dc3a2c441a1ad1413d7435d886c": failed to attach: rpc error: code = Unknown desc = failed to attach 445d9931-9e32-48b5-b765-209a4526691f volume to i-0031336c compute: Resource not found

請注意,磁碟區 ID 是正確的:

> cinder list | grep 445d9931-9e32-48b5-b765-209a4526691f
| 445d9931-9e32-48b5-b765-209a4526691f | available | pvc-788eb00a-99bc-11e9-b7dc-fa163eb3415c | 1    | classic     | false    |                                      |

我的節點不是i-0031336c一個實際的 UUID:

> nova list | grep worker03-dev
| 9d7cd2bb-a365-4276-86ed-f4884132c361 | worker03-dev     | ACTIVE | -          | Running     | Ext-Net=<redacted>    |

我不知道為什麼,但有件事(我在 CSI 方面還不是很專家)正在為我的節點添加帶有錯誤 ID 的註解:

> kubectl get node worker03-dev.node.consul -o yaml | grep nodeid
    csi.volume.kubernetes.io/nodeid: '{"cinder.csi.openstack.org":"i-0031336c"}'

當從主機查詢 OpenStack API 時,它也會傳回正確的 UUID:

root@worker03-dev ~ # curl -s 169.254.169.254/openstack/latest/meta_data.json | jq '.uuid'
"9d7cd2bb-a365-4276-86ed-f4884132c361"

我有什麼完全錯誤的嗎?

我運行這些 CSI 容器:

image: quay.io/k8scsi/csi-attacher:v1.1.1
image: quay.io/k8scsi/csi-provisioner:v1.0.1
image: quay.io/k8scsi/csi-snapshotter:v1.0.1
image: quay.io/k8scsi/csi-node-driver-registrar:v1.1.0
image: docker.io/k8scloudprovider/cinder-csi-plugin:latest

(我v1.0.1從所有k8scsi容器開始,但嘗試升級其中一些容器但沒有成功)

答案1

問題不在於 CSI,而是我的cloud-init配置,該配置正在獲取 EC2 元資料而不是 OpenStack 元資料(我/etc/cloud/cloud.cfg.d/90_dpkg.cfg指的是Ec2而不是OpenStack),因此沒有檢索到正確的執行個體 ID:

root@worker03-dev ~ # cat /var/lib/cloud/data/instance-id 
i-0031336c

修復問題後,cloud-init正在檢索正確的實例 ID:

root@worker03-dev ~ # cat /var/lib/cloud/data/instance-id 
9d7cd2bb-a365-4276-86ed-f4884132c361

現在正確的 NodeID 已附加到我的節點。

但我不知道為什麼我的雲端提供者 (OVH) 返回 EC2 元資料 URL 的錯誤訊息:

root@worker03-dev ~ # curl http://169.254.169.254/latest/meta-data/instance-id
i-0031336c

相關內容