Pertimbangan penyimpanan untuk Azure Kubernetes Service (AKS)

Untuk menjalankan beban kerja aplikasi tertentu, organisasi atau perusahaan Anda perlu merancang kemampuan tingkat platform Azure Kubernetes Service (AKS) yang sesuai. Beban kerja ini kemungkinan memiliki persyaratan penyimpanan yang berbeda. Saat memilih solusi penyimpanan yang tepat untuk aplikasi, Anda memiliki beberapa pertimbangan, termasuk performa, ketersediaan, pemulihan, keamanan, dan biaya. Tujuan artikel ini adalah untuk memandu Anda memilih opsi atau kombinasi opsi yang tepat untuk beban kerja Anda.

Kubernetes dapat menjalankan beban kerja stateless dan stateful. Beban kerja stateful sering memerlukan solusi penyimpanan untuk menyimpan status. AKS mendukung beberapa opsi terintegrasi untuk penyimpanan asli, yang mencakup database terkelola, disk (atau blok), dan penyimpanan file dan blob (atau objek). Masing-masing opsi ini menawarkan SKU, ukuran, dan karakteristik performa yang berbeda. Memilih opsi yang tepat memerlukan pertimbangan yang cermat.

Artikel ini menjelaskan faktor dan opsi yang perlu Anda pertimbangkan di Pilih layanan penyimpanan dan pertimbangan Desain yang tepat. Ini memberikan rekomendasi khusus dalam rekomendasi Desain.

Pilih layanan penyimpanan yang tepat

Memilih SKU dan ukuran yang tepat untuk penyebaran awal Anda memerlukan beberapa evaluasi dan, berpotensi, bukti konsep atau lingkungan pengujian. Berikut ini adalah panduan tingkat tinggi untuk membantu Anda memulai penyimpanan untuk AKS:

  • Data terstruktur. Untuk data terstruktur yang dapat disimpan aplikasi Anda dalam database terkelola yang tersedia di platform (misalnya, Azure SQL), sebaiknya gunakan database terkelola.

  • Data tidak terstruktur. Untuk data yang tidak terstruktur—seperti foto, video, dan dokumen teks—gunakan penyimpanan blob. Aplikasi Anda dapat melakukan ini dengan menggunakan blob yang dipasang sebagai file melalui Network File System (NFS) atau diakses sebagai sistem file virtual dengan menggunakan BlobFuse. Atau, aplikasi Anda dapat membaca dari dan menulis ke penyimpanan blob secara langsung.

  • Data aplikasi bersama. Untuk data aplikasi bersama yang memerlukan performa tinggi, gunakan Azure NetApp Files atau tingkat premium Azure Files. Untuk data konfigurasi bersama yang hanya memerlukan performa terbatas, gunakan tingkat standar Azure Files.

  • Bandwidth untuk permintaan aplikasi &penyimpanan. Pastikan simpul Anda memiliki bandwidth jaringan yang memadai untuk menangani permintaan aplikasi dan permintaan penyimpanan. Lalu lintas penyimpanan melewati tumpukan jaringan, apakah protokol untuk transfer adalah Blok Pesan Server (SMB) atau NFS.

  • Latensi rendah, IOPS tinggi. Gunakan disk untuk penyimpanan jika aplikasi Anda membutuhkan latensi rendah secara konsisten untuk aplikasi olahpesan dan operasi I/O tinggi per detik (IOPS) dan throughput tinggi untuk menjalankan database Anda sendiri di Kubernetes. Untuk performa terbaik, pertimbangkan untuk menggunakan Azure Premium SSD, Azure Premium SSD v2, atau Azure Ultra Disk Storage.

Pertimbangan Desain

Pertimbangan berikut adalah untuk merancang penyimpanan untuk AKS. Pertimbangkan di mana penyimpanan diperlukan di lingkungan AKS Anda, dan tentukan solusi terbaik untuk setiap persyaratan.

Disk sistem operasi (OS)

Untuk disk sistem operasi (OS), pertimbangkan faktor-faktor berikut:

  • Disk Ephemeral untuk OS. Setiap komputer virtual (VM) di Azure memerlukan disk untuk OS-nya. Karena simpul Kubernetes bersifat ephemeral, AKS default menggunakan disk OS ephemeral pada ukuran VM yang didukung. Untuk informasi selengkapnya tentang disk OS ephemeral, lihat OS Ephemeral.

  • Disk terkelola untuk OS. Jika beban kerja Anda memerlukannya, Anda dapat menggunakan disk terkelola reguler untuk simpul di kluster AKS Anda. Melakukannya mendukung beban kerja yang memerlukan data persisten pada drive OS. Untuk informasi selengkapnya tentang opsi untuk penyimpanan persisten, lihat Opsi penyimpanan untuk aplikasi di Azure Kubernetes Service (AKS).

  • Mengukur disk terkelola. Jika Anda memilih disk terkelola sebagai disk OS, pastikan disk tersebut berukuran tepat untuk mendukung persyaratan OS, sistem Kubernetes, dan beban kerja Anda. Untuk informasi selengkapnya tentang opsi dan perbedaan, lihat Jenis disk terkelola Azure.

Data aplikasi

Beberapa beban kerja memerlukan penyimpanan data yang konsisten untuk penyimpanan data aplikasi. Jika aplikasi Anda memerlukan database, pertimbangkan untuk menjelajahi database terkelola di Azure, yang mencakup opsi berikut:

Solusi penyimpanan di AKS

Jika database terkelola tidak memenuhi kebutuhan aplikasi Anda, pertimbangkan untuk menggunakan opsi penyimpanan lain yang tersedia untuk AKS untuk menyimpan data yang konsisten. Opsi termasuk solusi berbasis disk, disk sementara, solusi berbasis file, penyimpanan blob, dan opsi lain yang tidak tercakup dalam artikel ini.

Solusi berbasis disk

Disk, atau penyimpanan blok, sangat ideal untuk menyimpan data langsung pada perangkat mentah berbasis blok. Penyimpanan berbasis disk sangat ideal untuk menyimpan data untuk database yang dihosting kluster Kubernetes Anda. Di Azure, disk terkelola adalah solusi untuk mendapatkan penyimpanan berbasis blok.

  • Penyimpanan disk statis atau dibuat secara dinamis. Pertimbangkan apakah Anda ingin menggunakan disk statis yang dibuat di luar AKS, atau jika Anda ingin AKS membuat penyimpanan disk secara dinamis karena pod atau pod memerlukannya. Penyimpanan yang dibuat secara dinamis juga dapat dihapus secara dinamis. Untuk informasi selengkapnya, lihat:

  • Redundansi dan performa. Pertimbangkan redundansi dan performa penyimpanan yang diperlukan beban kerja Anda. Untuk informasi selengkapnya, lihat:

  • Disk bersama. Pertimbangkan apakah Anda memerlukan disk bersama. Untuk informasi selengkapnya tentang opsi, lihat Berbagi disk terkelola Azure.

  • Ukuran simpul untuk disk dan throughput. Pertimbangkan ukuran simpul Kubernetes Anda. Ini harus cukup besar untuk mendukung jumlah disk dan persyaratan throughput agregat. Untuk informasi tentang ukuran dan karakteristik, lihat Ukuran untuk komputer virtual di Azure.

  • Ukuran disk dan performa yang diperlukan. Pertimbangkan apakah disk terkelola Anda berukuran tepat untuk persyaratan performa beban kerja Anda. Performa meningkat saat ukuran disk meningkat untuk HDD Standar, SSD Standar, dan SSD Premium v1. Untuk informasi selengkapnya tentang disk terkelola, lihat Jenis disk terkelola Azure.

Solusi disk Ephemeral

Pertimbangkan apakah aplikasi Anda memerlukan penyimpanan sementara yang tidak persisten atau di mana Anda ingin menggunakan drive berkinerja tinggi di VM yang dioptimalkan penyimpanan. Untuk menyambungkan ke volume ephemeral, Anda dapat menggunakan opsi emptyDir di Kubernetes atau driver untuk volume lokal ephemeral CSI. Sebaiknya kosongkanDir untuk data sementara, seperti ruang goresan. Untuk penyimpanan pada seri VM yang dioptimalkan penyimpanan, sebaiknya gunakan CSI dengan volume lokal ephemeral. Untuk informasi selengkapnya tentang driver CSI, lihat Driver Antarmuka Penyimpanan Kontainer (CSI) di Azure Kubernetes Service (AKS).

Solusi berbasis file

Pertimbangkan apakah pod Anda perlu berbagi sistem file. Sistem file bersama sangat ideal untuk data aplikasi dan konfigurasi yang dibaca dan dibagikan oleh beberapa pod di kluster Kubernetes Anda. Penyimpanan file mengekspos sistem file bersama melalui NFS atau SMB/Common Internet File System (CIFS). Azure memiliki dua solusi untuk penyimpanan berbasis file: Azure Files dan Azure NetApp Files.

Azure Files

Untuk Azure Files, pertimbangkan opsi berikut:

  • Berbagi file statis atau dibuat secara dinamis. Pertimbangkan apakah Anda ingin menggunakan berbagi file statis yang dibuat di luar AKS, atau jika Anda ingin AKS membuat berbagi file secara dinamis atas nama Anda. Untuk informasi selengkapnya, lihat:

  • Performa standar atau premium. Evaluasi apakah performa standar cukup atau jika Anda memerlukan performa premium dari Azure Files.

  • SMB/CIFS atau NFS. Untuk akses ke Azure Files, evaluasi apakah beban kerja Anda harus menggunakan API untuk protokol default, SMB/CIFS, atau apakah beban kerja Anda memerlukan dukungan NFS.

  • Model jaringan untuk akses. Pertimbangkan model jaringan yang ingin Anda gunakan untuk mengakses Azure Files: akses melalui alamat IP publik langsung, titik akhir layanan, atau tautan privat.

Azure NetApp Files

Untuk Azure NetApp Files, pertimbangkan opsi berikut:

Penyimpanan Blob

Pertimbangkan jumlah data yang tidak terstruktur yang perlu disimpan aplikasi Anda. Penyimpanan Azure Blob dapat diakses melalui API HTTP atau melalui SDK. Memasang penyimpanan blob sebagai sistem file ke dalam kontainer atau pod sangat ideal untuk beban kerja aplikasi yang memiliki sejumlah besar data yang tidak terstruktur, seperti file log, gambar, dokumen, media streaming, dan data pemulihan bencana.

  • Redundansi data. Pertimbangkan redundansi data mana yang sesuai dengan aplikasi Anda. Untuk informasi lebih lanjut, lihat Redundansi Azure Storage. Redundansi data dipilih pada tingkat akun penyimpanan.

  • Tingkat performa. Pertimbangkan tingkat performa penyimpanan blob mana yang diperlukan aplikasi Anda. Untuk informasi selengkapnya, lihat Tingkat akses hot, cool, dan arsip untuk data blob.

  • Metode autentikasi untuk akses. Pertimbangkan metode autentikasi mana yang harus digunakan aplikasi Anda untuk akses ke penyimpanan blob: kunci penyimpanan, SAS, atau ID Microsoft Entra. Untuk informasi selengkapnya, lihat Mengotorisasi akses ke data di Azure Storage.

  • API untuk mengabstraksi penyimpanan blob. Pertimbangkan API mana yang akan digunakan. Biasanya, aplikasi yang mengakses penyimpanan blob menggunakan API dalam aplikasi melalui salah satu SDK, yang mengabstraksi interaksi dengan penyimpanan blob dari kluster Kubernetes. Untuk informasi selengkapnya tentang pustaka untuk berbagai bahasa pemrograman, lihat Pengenalan penyimpanan Azure Blob.

  • Penyimpanan blob statis atau dibuat secara dinamis. Pertimbangkan apakah Anda ingin menggunakan kontainer penyimpanan blob statis yang dibuat di luar AKS atau jika Anda ingin AKS membuat kontainer penyimpanan blob secara dinamis atas nama Anda. Untuk informasi selengkapnya, lihat:

  • Driver untuk mengakses penyimpanan. Pertimbangkan bagaimana aplikasi Anda harus mengakses penyimpanan blob. Untuk mengaksesnya sebagai sistem file, Anda dapat menggunakan driver CSI blob di Kubernetes. Driver ini memungkinkan akses ke penyimpanan blob melalui protokol NFSv3 atau melalui driver sekering.

Solusi penyimpanan lainnya

Pertimbangkan jenis penyimpanan lain jika aplikasi Anda memerlukan sesuatu yang tidak dijelaskan dalam artikel ini. Ada beberapa solusi penyimpanan khusus di Azure yang dapat diintegrasikan dengan Kubernetes. Artikel ini tidak membahasnya, tetapi daftar berikut mengidentifikasi kemungkinan solusi:

  • Azure HPC cache. HPC Cache mempercepat akses ke data Anda untuk tugas komputasi berperforma tinggi (HPC). Dengan penembolokan file di Azure, Azure HPC Cache membawa skalabilitas komputasi cloud ke alur kerja Anda yang sudah ada. Untuk informasi selengkapnya, lihat Mengintegrasikan Azure HPC Cache dengan Azure Kubernetes Service.

  • Azure Data Lake Storage Gen2. Data Lake Storage Gen2 adalah jenis penyimpanan blob khusus yang dioptimalkan untuk beban kerja big data seperti Hadoop dan Spark. Untuk informasi selengkapnya, lihat Pengenalan Azure Data Lake Storage Gen2.

Rekomendasi desain

Bagian ini memberikan rekomendasi yang didasarkan pada apa yang telah terbukti efektif bagi pelanggan Azure.

  • Gunakan Azure Private Link. Untuk keamanan, sebaiknya gunakan Azure Private Link untuk semua solusi penyimpanan yang mendukungnya. Azure Private Link memungkinkan akses ke Azure Services, seperti Azure Storage dan SQL Database, dan layanan yang dihosting Azure melalui titik akhir privat di jaringan virtual Anda. Untuk informasi selengkapnya, lihat Apa itu Azure Private Link?

  • Gunakan disk ephemeral untuk OS. Untuk disk OS, sebaiknya gunakan disk ephemeral. Untuk mendapatkan manfaat dari fitur ini, pilih ukuran VM yang memiliki disk sementara berukuran memadai. Untuk informasi selengkapnya, lihat Disk OS Ephemeral untuk Azure VM.

  • Gunakan database terkelola. Untuk data aplikasi, sebaiknya gunakan database terkelola. Untuk daftar opsi database, lihat Jenis Database di Azure.

Bagian berikut menjelaskan lebih banyak rekomendasi untuk disk Azure, Azure Files, dan penyimpanan blob.

Disk Azure

Untuk disk Azure, kami merekomendasikan opsi desain berikut:

  • Gunakan disk Premium atau Ultra. Dalam kebanyakan kasus, kami merekomendasikan disk Premium atau Ultra untuk memastikan performa yang memadai. Untuk informasi selengkapnya, lihat Azure Disk Storage.

  • Ukuran simpul untuk disk dan throughput. Sebaiknya pastikan ukuran simpul Kubernetes Anda cukup besar untuk mendukung jumlah disk dan jumlah throughput agregat. Untuk informasi tentang ukuran dan karakteristik, lihat Ukuran untuk komputer virtual di Azure.

  • Buat rekam jepret volume persisten. Sebaiknya ambil rekam jepret volume persisten, baik untuk menyediakan volume baru yang telah diisi sebelumnya dengan data rekam jepret atau untuk memulihkan volume yang ada ke status sebelumnya dengan menggunakan kemampuan rekam jepret driver Azure Disks CSI. Untuk informasi selengkapnya, lihat Rekam jepret volume.

  • Hindari striping disk di seluruh disk. Kami menyarankan agar Anda menghindari striping di beberapa disk di Kubernetes.

  • Gunakan PV/PVC. Sebaiknya gunakan PV dan PVC di Kubernetes untuk membuat disk secara dinamis jika diperlukan. Untuk informasi selengkapnya tentang penyimpanan persisten, lihat Opsi penyimpanan untuk aplikasi di Azure Kubernetes Service (AKS).

Azure Files

Untuk Azure Files, kami merekomendasikan opsi desain berikut:

  • Pilih Premium. Jika performa sangat penting, sebaiknya gunakan tingkat Premium.

  • Buat akun penyimpanan khusus. Sebaiknya sediakan akun penyimpanan khusus untuk berbagi file Anda.

  • Pilih berbagi file yang dibuat secara statis atau dinamis. Kami merekomendasikan pertimbangan yang cermat apakah Anda ingin AKS membuat berbagi file atau jika Anda ingin membuatnya secara statis di luar Kubernetes. Penyimpanan yang dibuat secara dinamis juga dapat dihapus secara dinamis. Untuk informasi selengkapnya tentang mengizinkan AKS membuat berbagi file secara dinamis, lihat Membuat dan menggunakan volume persisten secara dinamis dengan Azure Files.

Azure NetApp Files

Untuk Azure NetApp Files, kami merekomendasikan opsi desain berikut:

  • Pilih tingkat performa berdasarkan persyaratan aplikasi. Azure NetApp Files menawarkan 3 tingkat performa yang menawarkan berbagai kelas performa. Untuk informasi selengkapnya, lihat Pertimbangan performa untuk Azure NetApp Files.

  • Buat kumpulan kapasitas di wilayah Azure yang sama dengan kluster AKS. Untuk informasi selengkapnya, lihat Membuat kumpulan kapasitas untuk Azure NetApp Files.

  • Gunakan jenis QoS Otomatis untuk kumpulan kapasitas.

  • Rencanakan jaringan Anda. Ada dua opsi untuk desain jaringan:

    1. Jika Anda menggunakan VNet yang sama untuk AKS dan Azure NetApp Files, buat subnet khusus untuk Azure NetApp Files dan delegasikan subnet ke Microsoft.NetApp/Volumes.
    2. Jika Anda menggunakan VNet yang berbeda, buat peering VNet di antaranya.

Penyimpanan Blob

Untuk penyimpanan blob, kami merekomendasikan opsi desain berikut:

  • Gunakan SDK untuk berinteraksi dengan penyimpanan. Sebaiknya gunakan SDK tingkat aplikasi untuk berinteraksi dengan penyimpanan blob.

  • Gunakan CSI dengan NFS untuk berinteraksi dengan penyimpanan. Jika Anda tidak dapat menggunakan SDK tingkat aplikasi untuk berinteraksi dengan penyimpanan blob, sebaiknya gunakan opsi NFS v3 di driver CSI blob. Untuk informasi selengkapnya, lihat Menggunakan driver Antarmuka Penyimpanan Kontainer (CSI) penyimpanan Azure Blob.

  • Gunakan ID Microsoft Entra untuk akses. Sebaiknya gunakan ID Microsoft Entra untuk mengotorisasi akses ke penyimpanan blob. Hindari menggunakan kunci akun penyimpanan bersama. Untuk informasi selengkapnya, lihat Mengotorisasi akses ke blob menggunakan ID Microsoft Entra.

  • Sesuaikan tingkat tingkatan. Sebaiknya gunakan kebijakan manajemen siklus hidup untuk memindahkan data yang jarang diakses ke tingkat akses yang lebih dingin. Untuk informasi selengkapnya, lihat Tingkat akses hot, cool, dan arsip untuk data blob.

Langkah berikutnya

Pelajari cara mencakup alokasi biaya ke penyebaran, layanan, label, pod, atau namespace layanan di AKS dengan menggunakan Kubecost.