
Ich versuche, das Cinder CSI-Plugin zu konfigurieren (https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/using-cinder-csi-plugin.md) auf meinem Kubernetes-Cluster (installiert auf OpenStack-Instanzen).
Alles funktioniert einwandfrei (PV, PVC und das eigentliche Cinder-Volume werden problemlos erstellt), aber beim csi-attacher
Versuch, mein Cinder-Volume an meinen Knoten anzuhängen, tritt ein Fehler auf:
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
Beachten Sie jedoch, dass die Volume-ID richtig ist:
> cinder list | grep 445d9931-9e32-48b5-b765-209a4526691f
| 445d9931-9e32-48b5-b765-209a4526691f | available | pvc-788eb00a-99bc-11e9-b7dc-fa163eb3415c | 1 | classic | false | |
Mein Knoten ist nichts i-0031336c
anderes als eine tatsächliche UUID:
> nova list | grep worker03-dev
| 9d7cd2bb-a365-4276-86ed-f4884132c361 | worker03-dev | ACTIVE | - | Running | Ext-Net=<redacted> |
Ich weiß nicht, warum, aber irgendetwas (ich bin noch kein großer Experte auf der CSI-Seite) fügt meinen Knoten eine Anmerkung mit der falschen ID hinzu:
> kubectl get node worker03-dev.node.consul -o yaml | grep nodeid
csi.volume.kubernetes.io/nodeid: '{"cinder.csi.openstack.org":"i-0031336c"}'
Wenn die OpenStack-API vom Host abgefragt wird, wird auch die richtige UUID zurückgegeben:
root@worker03-dev ~ # curl -s 169.254.169.254/openstack/latest/meta_data.json | jq '.uuid'
"9d7cd2bb-a365-4276-86ed-f4884132c361"
Habe ich etwas völlig falsch gemacht?
Ich betreibe diese CSI-Container:
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
(Ich habe mit v1.0.1
für alle k8scsi
Container begonnen, aber versucht, einige davon zu aktualisieren, ohne Erfolg)
Antwort1
Das Problem lag nicht bei CSI, sondern bei meiner cloud-init
Konfiguration, die EC2-Metadaten anstelle von OpenStack-Metadaten abrief (meine Konfiguration /etc/cloud/cloud.cfg.d/90_dpkg.cfg
bezog sich auf Ec2
anstelle von OpenStack
) und deshalb nicht die richtige Instanz-ID abrief:
root@worker03-dev ~ # cat /var/lib/cloud/data/instance-id
i-0031336c
Nachdem das Problem behoben war, cloud-init
wurde die richtige Instanz-ID abgerufen:
root@worker03-dev ~ # cat /var/lib/cloud/data/instance-id
9d7cd2bb-a365-4276-86ed-f4884132c361
Jetzt ist meinen Knoten die richtige NodeID zugeordnet.
Ich weiß jedoch nicht, warum mein Cloud-Anbieter (OVH) falsche Informationen für die EC2-Metadaten-URL zurückgibt:
root@worker03-dev ~ # curl http://169.254.169.254/latest/meta-data/instance-id
i-0031336c