Bagikan melalui


Manajemen penyimpanan Kube di perangkat Azure Stack Edge Pro GPU Anda

BERLAKU UNTUK: Ya untuk Pro GPU SKUAzure Stack Edge Pro - GPUYa untuk Pro 2 SKUAzure Stack Edge Pro 2Ya untuk Pro R SKUAzure Stack Edge Pro RYa untuk Mini R SKUAzure Stack Edge Mini R

Pada perangkat Azure Stack Edge Pro Anda, kluster Kube dibuat saat Anda mengonfigurasi peran komputasi. Setelah kluster Kube dibuat, Anda dapat menyebarkan aplikasi dalam kontainer pada kluster Kube di pod. Ada beberapa cara berbeda untuk menyediakan penyimpanan pada pod di kluster Kube Anda.

Artikel ini menjelaskan metode untuk memprovisikan penyimpanan pada kluster Kube secara umum dan secara khusus dalam konteks perangkat Azure Stack Edge Pro Anda.

Persyaratan penyimpanan untuk pod Kube

Pod Kube itu stateless tetapi aplikasi yang dijalankannya biasanya stateful. Karena pod dapat berumur pendek, dan mereka memulai ulang, gagal, atau berpindah antar node Kube, persyaratan berikut harus dipenuhi untuk penyimpanan yang berkaitan dengan pod.

Penyimpanan harus:

  • Aktif di luar pod.
  • Independen dari siklus hidup pod.
  • Dapat diakses dari semua node Kube.

Untuk memahami bagaimana penyimpanan dikelola untuk Kube, ada dua sumber daya API yang perlu dipahami:

  • PersistentVolume (PV): Ini adalah sebuah penyimpanan di kluster Kube. Penyimpanan Kube dapat diprovisikan secara statis sebagai PersistentVolume. Penyimpanan ini juga dapat diprovisikan secara dinamis sebagai StorageClass.

  • PersistentVolumeClaim (PVC): Ini adalah permintaan penyimpanan oleh seorang pengguna. PVC mengonsumsi sumber daya PV. PVC dapat meminta ukuran dan mode akses tertentu.

    Karena pengguna membutuhkan PersistentVolumes dengan berbagai properti untuk beragam masalah yang berbeda, maka admin kluster harus dapat menawarkan berbagai PersistentVolumes yang berbeda tidak hanya dari segi ukuran dan mode aksesnya. Untuk keperluan ini, Anda memerlukan sumber daya StorageClass.

Provisi penyimpanan bisa statis atau dinamis. Tiap-tiap jenis provisi dibahas di bagian berikut ini.

Provisi statis

Admin klaster Kubernetes dapat menyediakan penyimpanan secara statis. Untuk melakukannya, mereka dapat menggunakan backend penyimpanan berdasarkan SMB/NFS filesystem atau menggunakan disk iSCSI yang terlampir secara lokal melalui jaringan di lingkungan lokal, atau bahkan menggunakan Azure Files atau Azure Disks di cloud. Jenis penyimpanan ini tidak diprovisikan secara default dan admin kluster harus merencanakan dan mengelola provisi ini.

Berikut adalah diagram yang menggambarkan bagaimana penyimpanan yang diprovisikan secara statis dikonsumsi di Kube:

Provisi statis melalui PersistentVolumes

Lakukan langkah-langkah berikut:

  1. Provisi penyimpanan: Admin kluster memprovisikan penyimpanan. Dalam contoh ini, admin kluster membuat satu atau lebih berbagi SMB yang secara otomatis membuat objek volume persisten di kluster Kube yang berkaitan dengan berbagi tersebut.

  2. Klaim penyimpanan: Anda mengirimkan penyebaran PVC yang meminta penyimpanan. Klaim penyimpanan ini adalah PersistentVolumeClaim (PVC). Jika ukuran dan mode akses PV cocok dengan PVC, maka PVC akan terikat ke PV. PVC dan PV memetakan satu-ke-satu.

  3. Pasang PVC ke kontainer: Setelah PVC terikat ke PV, Anda dapat memasang PVC ini ke satu jalur dalam kontainer Anda. Ketika logika aplikasi dalam kontainer membaca/menulis dari/ke jalur ini, data tersebut ditulis ke dalam penyimpanan SMB.

Provisi dinamis

Berikut adalah diagram yang menggambarkan bagaimana penyimpanan yang diprovisikan secara statis dikonsumsi di Kube:

Provisi dinamis melalui StorageClasses

Lakukan langkah-langkah berikut:

  1. Tentukan kelas penyimpanan: Admin kluster mendefinisikan kelas penyimpanan menurut lingkungan operasi untuk kluster Kube Anda. Admin kluster juga menyebarkan provisioner, yang merupakan pod atau aplikasi lain yang disebarkan pada kluster Kube. Provisioner memiliki semua rincian untuk memprovisikan berbagi secara dinamis.

  2. Klaim penyimpanan: Anda mengirimkan aplikasi yang akan mengklaim penyimpanan. Setelah PVC dibuat dengan referensi kelas penyimpanan ini, provisioner dipanggil.

  3. Provisi penyimpanan secara dinamis: Provisioner secara dinamis membuat berbagi yang berkaitan dengan penyimpanan disk lokal. Setelah berbagi dibuat, provisioner juga membuat objek PV secara otomatis sesuai dengan berbagi ini.

  4. Pasang PVC ke kontainer: Setelah PVC terikat ke PV, Anda dapat memasang PVC pada kontainer ke jalur dengan cara yang sama seperti provisi statis, dan membaca dari atau menulis ke dalam berbagi.

Provisi penyimpanan di Azure Stack Edge Pro

Pada perangkat Azure Stack Edge Pro, PersistentVolumes yang diprovisikan secara statis dibuat menggunakan kemampuan penyimpanan perangkat. Ketika Anda memprovisikan pembagian dan opsi Menggunakan berbagi dengan komputasi Azure Stack Edge diaktifkan, tindakan ini otomatis membuat sumber daya PV di kluster Kube.

Pembuatan berbagi lokal di portal Microsoft Azure untuk provisi statis

Untuk menggunakan peningkatan cloud, Anda dapat membuat berbagi cloud Azure Stack Edge dengan opsi Menggunakan berbagi dengan komputasi Azure Stack Edge diaktifkan. Satu PV otomatis kembali dibuat untuk berbagi ini. Data aplikasi apa pun yang Anda tulis ke berbagi Azure Stack Edge akan ditingkatkan ke cloud.

Pembuatan berbagi cloud di portal Microsoft Azure untuk provisi statis

Anda dapat membuat berbagi SMB dan NFS untuk memprovisikan PV secara statis pada perangkat Azure Stack Edge Pro. Setelah PV diprovisikan, kirimkan PVC untuk mengklaim penyimpanan ini. Berikut adalah contoh penyebaran PVC yaml yang mengklaim penyimpanan dan menggunakan berbagi yang Anda provisikan.

kind: PersistentVolumeClaim 
apiVersion: v1 
metadata: 
  name: pvc-smb-flexvol 
spec: 
  accessModes: 
  - ReadWriteMany 
  resources: 
    requests: 
      storage: 10Gi 
  volumeName: <nfs-or-smb-share-name-here> 
  storageClassName: ""

Untuk mendapatkan nilai volumeName bidang, pilih titik pemasangan lokal untuk modul komputasi Azure Stack Edge saat Anda memilih berbagi SMB atau NFS setelah pembuatan. Ini sama dengan nama berbagi.

Untuk informasi selengkapnya, lihat Menyebarkan aplikasi stateful melalui provisi statis pada Azure Stack Edge Pro Anda melalui kubectl.

Untuk mengakses penyimpanan yang diprovisikan secara statis yang sama, opsi pemasangan volume yang sesuai untuk pengikatan penyimpanan untuk IoT adalah sebagai berikut. /home/input merupakan jalur tempat volume dapat diakses dalam kontainer.

{
"HostConfig": {
"Mounts": [
{
"Target": "/home/input",
"Source": "<nfs-or-smb-share-name-here>",
"Type": "volume"
},
{
"Target": "/home/output",
"Source": "<nfs-or-smb-share-name-here>",
"Type": "volume"
}]
}
}

Azure Stack Edge Pro juga memiliki StorageClass bawaan yang disebut ase-node-local yang menggunakan penyimpanan disk data yang terlampir pada node Kube. StorageClass ini mendukung provisi dinamis. Anda dapat membuat referensi StorageClass dalam aplikasi pod dan satu PV secara otomatis dibuat untuk Anda. Untuk informasi selengkapnya, lihat Dasbor Kube untuk mengkueri ase-node-local StorageClass.

Kelas penyimpanan bawaan di dasbor Kube

Untuk informasi selengkapnya, lihat Menyebarkan aplikasi stateful melalui provisi dinamis pada Azure Stack Edge Pro Anda melalui kubectl.

Memilih jenis penyimpanan

Anda mungkin perlu memilih jenis penyimpanan Anda tergantung pada beban kerja yang Anda sebarkan.

  • Jika Anda ingin mode akses ReadWriteMany untuk PersistentVolumes Anda, tempat volume dipasang sebagai read-write oleh banyak simpul yang disebarkan, gunakan provisi statis untuk berbagi SMB/NFS.

  • Jika aplikasi yang Anda sebarkan memiliki persyaratan kepatuhan POSIX, misalnya, aplikasi seperti MongoDB, PostgreSQL, MySQL atau Prometheus, gunakan StorageClass bawaan. Mode aksesnya adalah ReadWriteOnce, atau volume tersebut dipasang sebagai read-write oleh satu simpul.

Untuk informasi selengkapnya tentang mode akses, lihat Mode akses volume Kube.

Langkah berikutnya

Untuk memahami bagaimana Anda dapat memprovisikan PersistentVolume secara statis, lihat:

Untuk mempelajari bagaimana Anda dapat memprovisikan StorageClass secara dinamis, lihat: