Keterangan
Menggunakan operator trisula dan kubernetes 1.17.6, saya dapat membuat volume persisten, tetapi tidak dapat memasangnya ke dalam pod.
Saat mendapatkan deskripsi pod, kesalahan berikut dikembalikan:
CSINode does not contain driver csi.trident.netapp.io
Lingkungan
Untuk Mereproduksi
Instal operator seperti yang disediakan di sini: https://netapp-trident.readthedocs.io/en/stable-v20.07/kubernetes/deploying/operator-deploy.html
Setelah membuat kelas penyimpanan, dan konsumen, pv terikat, tetapi pod tidak dapat melampirkan volume secara lokal ke pekerja
Perilaku yang diharapkan
Pod diharapkan untuk memasang volume dan berjalan. sebaliknya itu hanya tetap dalam "tertunda"
konteks tambahan
Deskripsi polong:
```kubectl -n test mendeskripsikan po web-0
Peringatan FailedScheduling 11s (x2 over 12s) kesalahan penjadwalan default saat menjalankan plugin filter "VolumeBinding" untuk pod "web-0": pod memiliki PersistentVolumeClaims langsung yang tidak terikat
Penjadwal default 9s Terjadwal Normal Berhasil menetapkan tes/web-0 ke hh1kbw02x
Peringatan GagalLampirkanVolume
Peringatan GagalLampirkanVolume
Logs from trident on this worker:
kubectl -n log trisula trisula-csi-9sgrt -c trisula-main -f kubectl -n log trisula trident-csi-9sgrt -c driver-registrar kubectl get csinode hh1kbw02x -n trident -o yaml Log Kubelet:
time="2020-10-21T17:15:31Z" level=debug msg="n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> nPUT https://10.111.4.90 :34571/trident/v1/node/hh1kbw02xnHeaders: map[Content-Type:[application/json]]nBody: {n "name": "hh1kbw02x",n "ips": [n "10.49.12.102",n "172.17.0.1"n ]n}n--------------------------------- -----------------------------------------------"
time="2020-10-21T17:15:32Z" level=debug msg="n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Logs from registrar sidecar on this worker:
I1021 17:14:18.636803 6672 main.go:110] Versi: v1.3.0-0-g6e9fff3e
I1021 17:14:18.636888 6672 main.go:120] Mencoba membuka koneksi gRPC dengan: "/plugin/csi.sock"
I1021 17:14:18.636908 6672 connection.go:151] Menghubungkan ke unix:///plugin/csi.sock
I1021 17:14:18.637420 6672 main.go:127] Memanggil driver CSI untuk menemukan nama driver
I1021 17:14:18.637435 6672 koneksi.go:180] GRPC panggilan: /csi.v1.Identity/GetPluginInfo
I1021 17:14:18.637442 6672 connection.go:181] Permintaan GRPC: {}
I1021 17:14:18.639851 6672 connection.go:183] Tanggapan GRPC: {"name":"csi.trident.netapp.io","vendor_version":"20.07.1"}
I1021 17:14:18.640235 6672 connection.go:184] Kesalahan GRPC:
I1021 17:14:18.640242 6672 main.go:137] Nama driver CSI: "csi.trident.netapp.io"
I1021 17:14:18.648537 6672 node_register.go:51] Memulai Server Pendaftaran di: /registration/csi.trident.netapp.io-reg.sock
I1021 17:14:18.648666 6672 node_register.go:60] Server Pendaftaran dimulai di: /registration/csi.trident.netapp.io-reg.sock
Description of csi node
apiVersi: storage.k8s.io/v1
jenis: CSINode
metadata:
pembuatanTimestamp: 2020-09-10T07:58:40Z
nama: hh1kbw02x
referensi pemilik:
jenis: Node
nama: hh1kbw02x
uid: d3db28d6-e2be-4ad4-8534-c853b2e025b5
versi sumber daya: "30914526"
selfLink: /apis/storage.k8s.io/v1/csinodes/hh1kbw02x
uid: a764977a-be67-4ee9-8b7e-9aac304e0890
spesifikasi:
driver: null
6 Nov 10:14:18 hh1kbw01x kubelet: I1106 10:14:18.883059 2393reconcioner.go:209] operationExecutor.VerifyControllerAttachedVolume dimulai untuk volume "pvc-3bcc4e38-2e69-4541-9910-711d2c086671" (UniqueName: "kubernetes.io csi/csi.trident.netapp.io^pvc-3bcc4e38-2e69-4541-9910-711d2c086671") pod "web-0" (UID: "a235d5f9-05bf-4c77-8a84-e48f2f657d98")
6 Nov 10:14:18 hh1kbw01x kubelet: E1106 10:14:18.883223 2393 nestedpendingoperations.go:301] Operasi untuk "{v olumeName:kubernetes.io/csi/csi.trident.netapp.io ^pvc-3bcc4e38-2e69- 4541-9910-711d2c086671 podName: nodeName:}" gagal. Tidak ada percobaan ulang yang diizinkan hingga 06-11-2020 10:14:19.383183856 +0100 CET m=+1353591.737508759 (durasiBeforeRetry 500ms). Kesalahan: "Volume belum ditambahkan ke daftar VolumesInUse dalam status volume simpul untuk volume "pvc-3bcc4e38-2e69-4541-9910-711d2c086671" (Nama Unik: "kubernetes.io/csi/csi.trident.netapp.io ^pvc-3bcc4e38-2e69-4541-9910-711d2c086671") pod "web-0" (UID: "a235d5f9-05bf-4c77-8a84-e48f2f657d98") "
6 Nov 10:14:18 hh1kbw01x kubelet: I1106 10:14:18.983580 2393reconcioner.go:209] operationExecutor.VerifyControllerAttachedVolume dimulai untuk volume "pvc-f138b6cc-988b-455c-bb2e-fce022755634" (UniqueName: "kubernetes.io/kubernetes csi/csi.trident.netapp.io^pvc-f138b6cc-988b-455c-bb2e-fce022755634") pod "web-0" (UID: "a235d5f9-05bf-4c77-8a84-e48f2f657d98")
6 Nov 10:14:18 hh1kbw01x kubelet: E1106 10:14:18.983662 2393 nestedpendingoperations.go:301] Operasi untuk "{v olumeName:kubernetes.io/csi/csi.trident.netapp.io ^pvc-f138b6cc-988b- 455c-bb2e-fce022755634 podName: nodeName:}" gagal. Tidak ada percobaan ulang yang diizinkan hingga 06-11-2020 10:14:19.483629729 +0100 CET m=+1353591.837954619 (durationBeforeRetry 500ms). Kesalahan: "Volume belum ditambahkan ke daftar VolumesInUse dalam status volume node untuk volume "pvc-f138b6cc-988b-455c-bb2e-fce022755634" (Nama Unik: "kubernetes.io/csi/csi.trident.netapp.io ^pvc-f138b6cc-988b-455c-bb2e-fce022755634") pod "web-0" (UID: "a235d5f9-05bf-4c77-8a84-e48f2f657d98") "
6 Nov 10:14:19 hh1kbw01x kubelet: I1106 10:14:19.385072 2393 Reconcioner.go:209] operationExecutor.VerifyControllerAttachedVolume dimulai untuk volume "pvc-3bcc4e38-2e69-4541-9910-711d2c086671" (UniqueName: "kubernetes.io/kubernetes" csi/csi.trident.netapp.io^pvc-3bcc4e38-2e69-4541-9910-711d2c086671") pod "web-0" (UID: "a235d5f9-05bf-4c77-8a84-e48f2f657d98")
```
Masalah identik di sini dengan Rancher RKE dan K8S (v1.18.10) dan node yang menjalankan Ubuntu 18.04.4 LTS dengan Docker 19.3.13 sisanya cocok dengan lingkungan yang disebutkan di atas...
sama di sini dengan k8 hulu di ubuntu 18.04
Saya dapat "menyelesaikannya" dengan menerapkan kembali daemonset dan penyebaran trident-csi dan memulai kembali kubelet setelahnya
ya. saya menggunakan tridentctl
sebagai ganti operator.
Jadi saya memperbaikinya, jika saya boleh mengatakannya. Setelah membaca cara kerja penyedia penyimpanan eksternal, dan memahami konsep pendaftaran pengemudi menggunakan wadah sespan, saya meninjau pengaturan kami.
Itu sangat menyesatkan, karena kami mengkonfigurasi kubelet kami untuk memulai dengan file konfigurasi yang berada di bawah /var/lib/kubelet, yang merupakan root-dir default.
Beberapa bulan yang lalu kami memutuskan untuk membagi otak, dan memindahkan pod dan wadah ke lokasi penyimpanan yang terpisah, jadi kami memisahkan manajemen dari operasi
Oleh karena itu kami mengubah root-dir di file konfigurasi untuk menunjuk ke /containers alih-alih /var/lib/kubelet
Penyedia trisula default akan mencari di lokasi default, dan "menyematkan" plugin, jadi katakanlah.
Jadi, Anda perlu memeriksa dua hal:
ps aux | grep kubelet | grep -e 'root-dir
-> ambil folder yang dikonfigurasi (dalam kasus saya itu adalah /container)apiVersion: trident.netapp.io/v1
kind: TridentProvisioner
metadata:
name: trident
namespace: trident
spec:
debug: true
kubeletDir: /container
Semoga berhasil. Saya menutup ini.
Mengamati sesuatu yang serupa ketika pod daemonset trident-csi
tidak dapat berkomunikasi dengan trident-controller
. Dalam hal ini, itu karena kebijakan jaringan yang mencegahnya.
Komentar yang paling membantu
Jadi saya memperbaikinya, jika saya boleh mengatakannya. Setelah membaca cara kerja penyedia penyimpanan eksternal, dan memahami konsep pendaftaran pengemudi menggunakan wadah sespan, saya meninjau pengaturan kami.
Itu sangat menyesatkan, karena kami mengkonfigurasi kubelet kami untuk memulai dengan file konfigurasi yang berada di bawah /var/lib/kubelet, yang merupakan root-dir default.
Beberapa bulan yang lalu kami memutuskan untuk membagi otak, dan memindahkan pod dan wadah ke lokasi penyimpanan yang terpisah, jadi kami memisahkan manajemen dari operasi
Oleh karena itu kami mengubah root-dir di file konfigurasi untuk menunjuk ke /containers alih-alih /var/lib/kubelet
Penyedia trisula default akan mencari di lokasi default, dan "menyematkan" plugin, jadi katakanlah.
Jadi, Anda perlu memeriksa dua hal:
ps aux | grep kubelet | grep -e 'root-dir
-> ambil folder yang dikonfigurasi (dalam kasus saya itu adalah /container)apiVersion: trident.netapp.io/v1 kind: TridentProvisioner metadata: name: trident namespace: trident spec: debug: true kubeletDir: /container
Semoga berhasil. Saya menutup ini.