Memperbaiki masalah dan kesalahan yang diketahui saat mengelola penyimpanan di AKS Arc

Gunakan artikel ini untuk membantu Anda memecahkan masalah dan mengatasi masalah terkait penyimpanan di AKS Arc.

Mengonfigurasi klaim volume persisten menghasilkan kesalahan: "Tidak dapat menginisialisasi agen. Kesalahan: mkdir /var/log/agent: izin ditolak"

Kesalahan izin ditolak ini menunjukkan bahwa kelas penyimpanan default mungkin tidak sesuai untuk beban kerja Anda dan terjadi pada beban kerja Linux yang berjalan di atas Kubernetes versi 1.19.x atau yang lebih baru. Mengikuti praktik terbaik keamanan, banyak beban kerja Linux menentukan pengaturan securityContext fsGroup untuk sebuah pod. Beban kerja gagal dimulai pada AKS di Azure Stack HCI karena kelas penyimpanan default tidak menentukan fstype (=ext4) parameter, sehingga Kubernetes gagal mengubah kepemilikan file dan volume persisten berdasarkan fsGroup yang diminta oleh beban kerja.

Untuk mengatasi masalah ini, tentukan kelas penyimpanan khusus yang dapat Anda gunakan untuk menyediakan PVC.

Pod antarmuka penyimpanan kontainer terjebak dalam status 'ContainerCreating'

Kluster beban kerja Kube baru dibuat dengan Kubernetes versi 1.16.10 lalu diperbarui ke 1.16.15. Setelah pembaruan, pod csi-msk8scsi-node-9x47m macet dalam status ContainerCreating, dan pod kube-proxy-qqnkr macet dalam status Terminating seperti yang ditunjukkan pada output di bawah ini:

Error: kubectl.exe get nodes  
NAME              STATUS     ROLES    AGE     VERSION 
moc-lf22jcmu045   Ready      <none>   5h40m   v1.16.15 
moc-lqjzhhsuo42   Ready      <none>   5h38m   v1.16.15 
moc-lwan4ro72he   NotReady   master   5h44m   v1.16.15

\kubectl.exe get pods -A 

NAMESPACE     NAME                        READY   STATUS              RESTARTS   AGE 
    5h38m 
kube-system   csi-msk8scsi-node-9x47m     0/3     ContainerCreating   0          5h44m 
kube-system   kube-proxy-qqnkr            1/1     Terminating         0          5h44m  

Karena kubelet berakhir dalam keadaan buruk dan tidak dapat lagi berbicara dengan server API, satu-satunya solusi adalah memulai ulang layanan kubelet. Setelah memulai ulang, kluster masuk ke status berjalan.

Penyimpanan disk diisi dari log crash dump

Penyimpanan disk dapat diisi dari log crash dump yang dibuat. Hal ini disebabkan oleh sertifikat klien agen Jenewa yang kedaluwarsa. Gejalanya bisa sebagai berikut:

  • Layanan gagal dimulai.
  • Pod Kubernetes, penyebaran, dll. gagal dimulai karena sumber daya yang tidak mencukupi.

Penting

Masalah ini dapat berdampak pada semua manajemen Mariner baru dan node kluster target yang dibuat setelah 18 April 2023 pada rilis dari April 2022 hingga Maret 2023. Masalah ini diperbaiki dalam rilis 2023-05-09 dan yang lebih baru.

Masalah ini dapat berdampak pada operasi apa pun yang melibatkan alokasi ruang disk atau penulisan file baru, sehingga kesalahan "ruang disk/sumber daya" yang tidak memadai adalah petunjuk yang baik. Untuk memeriksa apakah masalah ini ada pada simpul tertentu, jalankan perintah shell berikut:

clouduser@moc-lwm2oudnskl $ sudo du -h /var/lib/systemd/coredump/

Perintah ini melaporkan ruang penyimpanan yang digunakan oleh file diagnostik.

Akar masalah

Kedaluwarsa sertifikat klien yang digunakan untuk mengautentikasi agen Jenewa ke titik akhir layanan menyebabkan agen mengalami crash, yang mengakibatkan crash dump. Perulangan crash/coba lagi agen adalah sekitar 5 detik saat startup awal, dan tidak ada batas waktu. Ini berarti bahwa file baru (sekitar 330MB) dibuat pada sistem file simpul setiap beberapa detik, yang dapat dengan cepat menggunakan penyimpanan disk.

Mitigasi

Mitigasi yang disukai adalah meningkatkan ke rilis terbaru, versi 1.10.18.10425, yang memiliki sertifikat yang diperbarui. Untuk melakukannya, pertama-tama tingkatkan kluster beban kerja Anda secara manual ke versi minor yang didukung sebelum Anda memperbarui host AKS-HCI Anda.

Untuk informasi selengkapnya tentang rilis AKS Arc, dan semua berita AKS-HCI terbaru, berlangganan halaman rilis AKS.

Jika peningkatan bukan opsi, Anda dapat menonaktifkan layanan mdsd . Untuk setiap simpul Mariner:

  1. Nonaktifkan agen Jenewa dengan perintah shell berikut:

    sudo systemctl disable --now mdsd
    
  2. Verifikasi bahwa agen Jenewa berhasil dinonaktifkan:

    sudo systemctl status mdsd
    
  3. Hapus file akumulasi dengan perintah berikut:

    sudo find /var/lib/systemd/coredump/ -type f -mmin +1 -exec rm -f {} \;
    sudo find /run/systemd/propagate -name 'systemd-coredump@*' -delete
    sudo journalctl --rotate && sudo journalctl --vacuum-size=500M
    
  4. Reboot simpul:

    sudo reboot
    

Pod penyimpanan mengalami crash dan log mengatakan bahwa parameter 'createSubDir' tidak valid

Kesalahan dapat terjadi jika Anda memiliki driver CSI SMB atau NFS yang diinstal dalam penyebaran Anda dan Anda meningkatkan ke build Mei dari versi yang lebih lama. Salah satu parameter, yang disebut createSubDir, tidak lagi diterima. Jika ini berlaku untuk penyebaran Anda, ikuti instruksi di bawah ini untuk mengatasi kegagalan kelas penyimpanan.

Jika Anda mengalami kesalahan ini, pod penyimpanan mengalami crash dan log menunjukkan bahwa createSubDir parameter tidak valid.

Buat ulang kelas penyimpanan.

Saat membuat volume persisten, upaya untuk memasang volume gagal

Setelah menghapus volume persisten atau klaim volume persisten di lingkungan AKS Arc, volume persisten baru dibuat untuk memetakan ke berbagi yang sama. Namun, ketika mencoba memasang volume, pemasangan gagal, dan waktu pod habis dengan kesalahan, NewSmbGlobalMapping failed.

Untuk mengatasi kegagalan memasang volume baru, Anda dapat SSH ke dalam simpul Windows dan menjalankan Remove-SMBGlobalMapping dan memberikan pembagian yang sesuai dengan volume. Setelah menjalankan perintah ini, upaya untuk memasang volume akan berhasil.