Praktik terbaik arsitektur untuk Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) adalah layanan Kubernetes terkelola yang dapat Anda gunakan untuk menyebarkan dan mengelola aplikasi dalam kontainer. Mirip dengan layanan terkelola lainnya, AKS membongkar sebagian besar overhead operasional ke Azure sambil menyediakan fitur ketersediaan tinggi, skalabilitas, dan portabilitas ke beban kerja.

Artikel ini mengasumsikan bahwa, sebagai arsitek, Anda meninjau pohon keputusan komputasi dan memilih AKS sebagai komputasi untuk beban kerja Anda. Panduan dalam artikel ini memberikan rekomendasi arsitektural yang dipetakan ke prinsip-prinsip yang menjadi pilar Azure Framework Well-Architected.

Cakupan teknologi

Tinjauan ini berfokus pada keputusan yang saling terkait untuk sumber daya Azure berikut:

  • AKS

Saat Anda membahas praktik terbaik pilar Well-Architected Framework untuk AKS, penting untuk membedakan antara kluster dan beban kerja. Praktik terbaik kluster adalah tanggung jawab bersama antara admin kluster dan penyedia sumber daya mereka, sementara praktik terbaik beban kerja adalah domain pengembang. Artikel ini memiliki pertimbangan dan rekomendasi untuk setiap peran ini.

Note

Pilar berikut mencakup daftar periksa desain dan daftar rekomendasi yang menunjukkan apakah setiap pilihan berlaku untuk arsitektur kluster , arsitektur beban kerja , atau keduanya.

Reliability

Tujuan pilar Keandalan adalah untuk memberikan fungsionalitas berkelanjutan dengan membangun ketahanan yang cukup dan kemampuan untuk memulihkan dengan cepat dari kegagalan.

prinsip desain Keandalan menyediakan strategi desain tingkat tinggi yang diterapkan untuk komponen individu, alur sistem, dan sistem secara keseluruhan.

Daftar periksa desain beban kerja

Mulai strategi desain Anda berdasarkan daftar periksa tinjauan desain untuk Keandalan. Tentukan relevansinya dengan kebutuhan bisnis Anda sambil mengingat fitur AKS dan dependensinya. Perluas strategi untuk menyertakan lebih banyak pendekatan sesuai kebutuhan.

  • (Kluster) Membangun redundansi untuk meningkatkan ketahanan. Gunakan zona ketersediaan untuk kluster AKS Anda sebagai bagian dari strategi ketahanan Anda untuk meningkatkan ketersediaan saat Anda menyebarkan ke satu wilayah. Banyak wilayah Azure menyediakan zona ketersediaan. Zona-zona cukup dekat untuk mempertahankan koneksi latensi rendah di antara mereka, tetapi cukup jauh untuk mengurangi kemungkinan gangguan lokal akan memengaruhi lebih dari satu zona.

    Untuk beban kerja penting, sebarkan beberapa kluster di berbagai wilayah Azure. Dengan mendistribusikan kluster AKS secara geografis, Anda dapat mencapai ketahanan yang lebih tinggi dan meminimalkan efek kegagalan regional. Strategi multiregion membantu memaksimalkan ketersediaan dan memberikan kelangsungan bisnis. Beban kerja yang menghadap internet harus menggunakan Azure Front Door atau Azure Traffic Manager untuk merutekan lalu lintas secara global di seluruh kluster AKS. Untuk informasi selengkapnya, lihat Strategi multiregion.

    Rencanakan ruang alamat IP untuk memastikan bahwa kluster Anda dapat menskalakan dan menangani lalu lintas failover dengan andal dalam topologi beberapa kluster.

  • (Kluster dan beban kerja) Memantau keandalan dan indikator kesehatan keseluruhan kluster dan beban kerja. Kumpulkan log dan metrik untuk memantau kesehatan beban kerja, mengidentifikasi tren performa dan keandalan, dan memecahkan masalah. Tinjau praktik terbaik untuk memantau Kubernetes dengan Azure Monitor dan panduan Well-Architected pemodelan kesehatan untuk beban kerja, yang dapat membantu merancang solusi keandalan dan pemantauan kesehatan untuk solusi AKS Anda.

    Pastikan bahwa beban kerja dibangun untuk mendukung penskalaan horizontal dan melaporkan kesiapan dan kesehatan aplikasi.

  • (Kluster dan beban kerja) Menempatkan pod aplikasi ke dalam pool node pengguna. Dengan mengisolasi pod sistem dari beban kerja aplikasi, Anda turut memastikan bahwa layanan penting AKS tidak terpengaruh oleh permintaan sumber daya atau potensi masalah yang disebabkan oleh beban kerja yang menjalankan pool node pengguna.

    Pastikan beban kerja Anda berjalan pada kumpulan simpul pengguna dan pilih ukuran SKU yang tepat. Minimal, sertakan dua simpul untuk kumpulan simpul pengguna dan tiga simpul untuk kumpulan simpul sistem.

  • (Kluster dan beban kerja) Faktorkan perjanjian tingkat layanan (SLA) waktu aktif AKS ke dalam target ketersediaan dan pemulihan Anda. Untuk menentukan target keandalan dan pemulihan untuk kluster dan beban kerja Anda, ikuti panduan dalam Rekomendasi untuk menentukan target keandalan. Kemudian rumuskan desain yang memenuhi target tersebut.

  • (Kluster dan beban kerja) Lindungi layanan kluster AKS menggunakan Azure Backup dengan menyimpan titik pemulihan di vault Backup dan melakukan pemulihan selama skenario bencana apa pun. Untuk mencadangkan dan memulihkan aplikasi dan data kontainer yang berjalan di kluster AKS, ikuti panduan dalam gambaran umum pencadangan AKS untuk mengonfigurasi perlindungan.

Rekomendasi konfigurasi

Recommendation Benefit
(Kluster dan beban kerja) Mengontrol penjadwalan pod dengan menggunakan selektor simpul dan afinitas simpul.

Di AKS, penjadwal Kubernetes dapat secara logis mengisolasi beban kerja oleh perangkat keras dalam simpul. Tidak seperti toleransi, pod yang tidak memiliki pemilih simpul yang cocok dapat dijadwalkan pada simpul berlabel, tetapi prioritas diberikan kepada pod yang menentukan pemilih simpul yang cocok.
Afinitas node menghasilkan lebih banyak fleksibilitas, yang memungkinkan Anda untuk menentukan apa yang terjadi jika pod tidak dapat dicocokkan dengan node.
(Kluster) Pilih plugin jaringan yang sesuai berdasarkan persyaratan jaringan dan ukuran kluster.

Plugin jaringan yang berbeda menyediakan berbagai tingkat fungsionalitas. Azure Container Networking Interface (Azure CNI) diperlukan untuk skenario tertentu, seperti kumpulan simpul berbasis Windows, beberapa persyaratan jaringan, dan kebijakan jaringan Kubernetes.

Untuk manajemen alamat IP yang ditingkatkan, pertimbangkan Azure CNI dengan alokasi blok statis yang meningkatkan perencanaan jaringan dan mengurangi kelelahan alamat IP sambil mempertahankan integrasi keamanan jaringan dengan aturan firewall dan kebijakan jaringan.

Untuk informasi lebih lanjut, lihat Kubenet versus Azure CNI.
Plugin jaringan yang tepat dapat membantu memastikan kompatibilitas dan performa yang lebih baik. Alokasi blok statis memungkinkan rentang IP yang konsisten untuk konfigurasi kebijakan keamanan dan perencanaan kapasitas yang lebih baik.
(Kluster dan beban kerja) Gunakan SLA waktu aktif AKS untuk kluster tingkat produksi. Beban kerja dapat mendukung target ketersediaan yang lebih tinggi karena jaminan ketersediaan yang lebih tinggi dari titik akhir server API Kubernetes untuk kluster AKS.
(Kluster) Gunakan zona ketersediaan untuk memaksimalkan ketahanan dalam wilayah Azure dengan mendistribusikan simpul agen AKS di seluruh pusat data yang terpisah secara fisik.

Jika ada persyaratan kolokalitas, gunakan penyebaran AKS berbasis skala mesin virtual reguler ke dalam satu zona atau gunakan kelompok penempatan kedekatan proximity placement groups untuk meminimalkan latensi internode.
Dengan menyebarkan kumpulan simpul di beberapa zona, simpul dalam satu kumpulan simpul terus berjalan meskipun zona lain tidak berfungsi.
(Kluster dan beban kerja) Tentukan permintaan dan batasan sumber daya pod dalam manifes penyebaran aplikasi. Berlakukan batas tersebut dengan menggunakan Azure Policy. Batas CPU kontainer dan sumber daya memori diperlukan untuk mencegah kelelahan sumber daya di kluster Kubernetes Anda.
(Kluster dan beban kerja) Jaga agar kumpulan simpul sistem terisolasi dari beban kerja aplikasi.

Kumpulan simpul sistem memerlukan SKU komputer virtual (VM) minimal 2 vCPU dan memori 4 GB. Kami menyarankan agar Anda menggunakan 4 vCPU atau lebih. Untuk informasi selengkapnya, lihat sistem dan kumpulan simpul pengguna.
Kumpulan simpul sistem menghosting pod sistem penting yang penting untuk sarana kontrol kluster Anda. Dengan mengisolasi pod sistem ini dari beban kerja aplikasi, Anda membantu memastikan bahwa layanan penting tidak terpengaruh oleh tuntutan sumber daya atau potensi masalah yang disebabkan oleh beban kerja.
(Kluster dan beban kerja) Pisahkan aplikasi ke kumpulan node khusus berdasarkan persyaratan tertentu dan dengan sengaja lakukan segmentasi tersebut.

Hindari sejumlah besar kumpulan simpul untuk mengurangi overhead manajemen. Misalnya, Anda dapat mengumpulkan beberapa SKU Virtual Machines dalam satu kumpulan simpul selama memenuhi persyaratan yang sama.
Aplikasi dapat berbagi konfigurasi yang sama dan memerlukan VM berkemampuan GPU, CPU atau VM yang dioptimalkan memori, atau kemampuan untuk menskalakan ke nol. Dengan mendedikasikan kumpulan simpul ke aplikasi tertentu, Anda dapat membantu memastikan bahwa setiap aplikasi mendapatkan sumber daya yang dibutuhkan tanpa penyediaan berlebihan atau sumber daya yang kurang digunakan.
(Kluster) Gunakan gateway NAT untuk kluster yang menjalankan beban kerja yang membuat banyak koneksi keluar bersamaan. Azure NAT Gateway mendukung lalu lintas keluar yang andal dalam skala besar dan membantu Anda menghindari masalah keandalan dengan menerapkan batasan Azure Load Balancer ke lalu lintas keluar bersamaan yang tinggi.
(Kluster dan beban kerja) Gunakan Azure Backup untuk melindungi kluster AKS dan memulihkan ke wilayah alternatif selama bencana. Azure Backup mendukung operasi pencadangan dan pemulihan aplikasi kontainer dan data yang berjalan untuk status kluster dan data aplikasi.

Anda dapat menggunakan cadangan dalam skenario bencana regional dan memulihkan cadangan.
Azure Backup dengan Azure Kubernetes Service (AKS) menawarkan solusi yang dikelola sepenuhnya, dapat diskalakan, aman, dan hemat biaya. Meningkatkan keandalan beban kerja tanpa kompleksitas menyiapkan dan memelihara infrastruktur cadangan.

Keamanan

Tujuan pilar Keamanan adalah untuk memberikan jaminan kerahasiaan, integritas, dan ketersediaan terhadap beban kerja.

Prinsip desain Security menyediakan strategi desain tingkat tinggi untuk mencapai tujuan tersebut dengan menerapkan pendekatan pada desain teknis AKS.

Daftar periksa desain beban kerja

Mulailah strategi desain Anda berdasarkan daftar periksa tinjauan desain untuk Keamanan dan identifikasi kerentanan serta pengendalian untuk meningkatkan tata kelola keamanan. Biasakan diri Anda dengan konsep keamanan AKS dan evaluasi rekomendasi pengerasan keamanan berdasarkan tolok ukur CIS Kubernetes . Perluas strategi untuk menyertakan lebih banyak pendekatan sesuai kebutuhan.

  • (Kluster) Integrasikan dengan ID Microsoft Entra untuk manajemen identitas dan akses. Memusatkan manajemen identitas untuk kluster Anda dengan menggunakan ID Microsoft Entra. Setiap perubahan di akun pengguna atau status grup secara otomatis diperbarui pada akses ke kluster AKS. Menetapkan identitas sebagai perimeter keamanan utama. Pengembang dan pemilik aplikasi klaster Kubernetes Anda membutuhkan akses ke sumber daya yang berbeda.

    Gunakan kontrol akses berbasis peran Kubernetes (RBAC) dengan ID Microsoft Entra untuk akses hak istimewa paling sedikit. Lindungi konfigurasi dan rahasia dengan meminimalkan alokasi hak istimewa administrator.

  • (Kluster) Integrasikan dengan alat pemantauan keamanan dan alat manajemen informasi dan peristiwa keamanan. Gunakan Microsoft Defender for Containers dengan Microsoft Sentinel untuk mendeteksi dan merespons ancaman dengan cepat di seluruh kluster Anda dan beban kerja yang berjalan di dalamnya. Aktifkan konektor AKS untuk Microsoft Azure Sentinel untuk mengalirkan log diagnostik AKS Anda ke Microsoft Azure Sentinel.

  • (Kluster dan beban kerja) Menerapkan segmentasi dan kontrol jaringan. Untuk mencegah eksfiltrasi data, pastikan bahwa hanya lalu lintas yang diizinkan dan aman yang diperbolehkan, dan mengendalikan dampak pelanggaran keamanan.

    Pertimbangkan untuk menggunakan kluster AKS privat untuk membantu memastikan bahwa lalu lintas manajemen kluster ke server API Anda tetap berada di jaringan privat Anda. Atau gunakan daftar izin server API untuk kluster publik.

  • (Beban Kerja) Gunakan firewall aplikasi web (WAF) untuk memindai lalu lintas masuk untuk potensi serangan. WAF dapat mendeteksi dan mengurangi ancaman secara real time untuk membantu memblokir lalu lintas berbahaya sebelum mencapai aplikasi Anda. Ini memberikan perlindungan yang kuat terhadap serangan berbasis web umum, seperti injeksi SQL, pembuatan skrip lintas situs, dan kerentanan Proyek Keamanan Aplikasi Web Terbuka lainnya. Beberapa load balancer, seperti Azure Application Gateway atau Azure Front Door memiliki WAF terintegrasi.

  • (Beban Kerja) Pertahankan rantai pasokan perangkat lunak yang diperkeras. Pastikan bahwa rangkaian alur integrasi dan pengiriman berkelanjutan Anda diperkuat dengan pemindaian yang mengenali kontainer.

  • (Kluster dan beban kerja) Menerapkan perlindungan ekstra untuk beban kerja aman khusus. Jika kluster Anda perlu menjalankan beban kerja sensitif, Anda mungkin perlu menyebarkan kluster privat. Berikut adalah beberapa contoh:

  • (Kluster) Manfaatkan keamanan yang ditingkatkan dari ekstensi kluster yang dikelola di sarana kontrol.Extension Manager berjalan di sarana kontrol yang dikelola Azure, mengurangi permukaan serangan untuk simpul pekerja dan menyederhanakan persyaratan jaringan kluster sambil mempertahankan fungsionalitas ekstensi. Manajemen ekstensi terpusat ini menghilangkan kebutuhan untuk mengamankan dan memelihara komponen ekstensi pada simpul pekerja pelanggan.

Rekomendasi konfigurasi

Recommendation Benefit
(Kluster) Gunakan identitas terkelola pada kluster. Anda dapat menghindari overhead yang terkait dengan mengelola dan memperbarui prinsipal layanan.
(Beban Kerja) Gunakan ID Beban Kerja Microsoft Entra dengan AKS untuk mengakses sumber daya yang dilindungi Microsoft Entra, seperti Azure Key Vault dan Microsoft Graph, dari beban kerja Anda. Gunakan ID Beban Kerja AKS untuk melindungi akses ke sumber daya Azure dengan menggunakan Microsoft Entra ID RBAC tanpa harus mengelola kredensial langsung dalam kode Anda.
(Kluster) Gunakan ID Microsoft Entra untuk mengautentikasi ke Azure Container Registry dari AKS. Dengan menggunakan MICROSOFT Entra ID, AKS dapat mengautentikasi dengan Container Registry tanpa menggunakan rahasia imagePullSecrets.
(Kluster) Amankan lalu lintas jaringan ke server API Anda dengan menggunakan kluster AKS privat jika persyaratan beban kerja memerlukan tingkat segmentasi yang lebih tinggi. Secara default, lalu lintas jaringan antara kumpulan simpul Anda dan server API melakukan perjalanan jaringan backbone Microsoft. Dengan menggunakan kluster privat, Anda dapat membantu memastikan bahwa lalu lintas jaringan ke server API Anda tetap berada di jaringan privat saja.
(Kluster) Untuk kluster AKS publik, gunakan rentang alamat IP resmi server API. Sertakan sumber seperti alamat IP publik dari agen pembuatan dalam penyebaran, pengelolaan operasi, dan jalur keluar kelompok node, seperti Azure Firewall. Saat Anda menggunakan kluster publik, Anda dapat secara signifikan mengurangi permukaan serangan kluster AKS Anda dengan membatasi lalu lintas yang dapat mencapai server API kluster Anda.
(Kluster) Lindungi server API dengan menggunakan Microsoft Entra ID RBAC.

Nonaktifkan akun lokal untuk menerapkan semua akses kluster dengan menggunakan identitas berbasis ID Microsoft Entra.
Mengamankan akses ke server API Kubernetes adalah salah satu hal terpenting yang dapat Anda lakukan untuk mengamankan kluster Anda. Integrasikan RBAC Kubernetes dengan MICROSOFT Entra ID untuk mengontrol akses ke server API.
(Kluster) Gunakan kebijakan jaringan Azure atau Calico. Dengan menggunakan kebijakan, Anda dapat mengamankan dan mengontrol lalu lintas jaringan antar pod dalam kluster. Calico menyediakan serangkaian kemampuan yang lebih kaya, termasuk pengurutan dan prioritas kebijakan, aturan penolakan, dan aturan pencocokan yang lebih fleksibel.
(Kluster) Mengamankan kluster dan pod dengan menggunakan Azure Policy. Azure Policy dapat membantu menerapkan penegakan dan perlindungan dalam skala besar pada kluster Anda secara terpusat dan konsisten. Ini juga dapat mengontrol fungsi apa yang diberikan kepada pod dan mendeteksi apakah ada yang melanggar kebijakan perusahaan.
(Kluster) Mengamankan akses kontainer ke sumber daya. Batasi akses ke tindakan yang dapat dilakukan kontainer. Berikan jumlah izin paling sedikit, dan hindari penggunaan root atau eskalasi istimewa.

Untuk kontainer berbasis Linux, lihat akses kontainer keamanan ke sumber daya menggunakan fitur keamanan Linux bawaan.
Dengan membatasi izin dan menghindari penggunaan akar atau eskalasi istimewa, Anda membantu mengurangi risiko pelanggaran keamanan. Anda dapat membantu memastikan bahwa, jika terjadi pelanggaran pada kontainer, kemungkinan kerusakan dapat dikurangi.
(Kluster) Kontrol lalu lintas keluar kluster dengan memastikan bahwa lalu lintas keluar kluster Anda melewati titik keamanan jaringan seperti Azure Firewall atau proksi HTTP. Dengan merutekan lalu lintas keluar melalui Azure Firewall atau proksi HTTP, Anda dapat membantu memberlakukan kebijakan keamanan yang mencegah akses dan eksfiltrasi data yang tidak sah. Pendekatan ini juga menyederhanakan administrasi kebijakan keamanan dan memudahkan penegakan aturan yang konsisten di seluruh kluster AKS Anda.
(Kluster) Konfigurasikan dukungan proksi HTTP untuk kluster AKS yang ada di lingkungan yang bergantung pada proksi.

Aktifkan konfigurasi proksi HTTP untuk simpul AKS dan pod untuk diintegrasikan dengan arsitektur keamanan jaringan perusahaan dan persyaratan kepatuhan yang ada.
Penting untuk layanan keuangan dan industri lain yang diatur yang mengharuskan semua lalu lintas internet mengalir melalui proksi HTTP perusahaan untuk pemindaian keamanan dan pemantauan kepatuhan. Memungkinkan integrasi yang mulus dengan infrastruktur keamanan jaringan perusahaan yang ada.
(Kluster) Terapkan dukungan otoritas sertifikat kustom untuk membangun hubungan kepercayaan antara kluster AKS dan infrastruktur PKI perusahaan.

Konfigurasikan CA kustom untuk mengaktifkan kepercayaan bagi registri privat, proksi, dan firewall dalam kerangka kerja manajemen sertifikat organisasi yang ada.
Penting untuk perusahaan dengan infrastruktur otoritas sertifikat internal. Memungkinkan kluster AKS mempercayai registri privat organisasi dan layanan internal sambil mempertahankan kebijakan keamanan perusahaan dan persyaratan kepatuhan.
(Kluster) Gunakan ID Beban Kerja sumber terbuka Microsoft Entra dan Driver CSI Secrets Store dengan Key Vault. Fitur-fitur ini membantu Anda melindungi dan memutar rahasia, sertifikat, dan string koneksi di Key Vault dengan menggunakan enkripsi yang kuat. Mereka menyediakan log audit akses dan menjaga rahasia inti agar tidak masuk ke alur penyebaran.
(Kluster) Gunakan Microsoft Defender untuk Kontainer. Pertahanan Microsoft untuk Kontainer membantu Anda memantau dan memelihara keamanan kluster, kontainer, dan aplikasinya.

Pengoptimalan Biaya

Pengoptimalan Biaya berfokus pada mendeteksi pola pengeluaran, memprioritaskan investasi di area penting, dan mengoptimalkan area lainnya untuk mematuhi anggaran organisasi sambil memenuhi persyaratan bisnis.

Prinsip desain Cost Optimization menyediakan strategi desain tingkat tinggi untuk mencapai tujuan tersebut dan membuat tradeoff seperlunya dalam desain teknis yang terkait dengan AKS dan lingkungannya.

Daftar periksa desain beban kerja

Mulai strategi desain Anda berdasarkan daftar ulasan desain Pengoptimalan Biaya untuk investasi. Sesuaikan desain sehingga beban kerja selaras dengan anggaran yang dialokasikan untuk beban kerja. Desain Anda harus menggunakan kemampuan Azure yang tepat, memantau investasi, dan menemukan peluang untuk dioptimalkan dari waktu ke waktu.

  • (Kluster) Sertakan tingkat harga untuk AKS dalam model biaya Anda. Untuk memperkirakan biaya, gunakan kalkulator harga Azure dan uji konfigurasi dan paket pembayaran yang berbeda di kalkulator.

  • (Kluster) Dapatkan tarif terbaik untuk beban kerja Anda. Gunakan SKU VM yang sesuai untuk setiap kumpulan simpul karena secara langsung memengaruhi biaya untuk menjalankan beban kerja Anda. Memilih VM berkinerja tinggi tanpa pemanfaatan yang tepat dapat menyebabkan pengeluaran yang boros. Memilih VM yang kurang kuat dapat menyebabkan masalah performa dan peningkatan waktu henti.

    Jika Anda merencanakan kapasitas dengan benar dan beban kerja Anda dapat diprediksi dan akan ada untuk jangka waktu yang lama, daftar untuk Reservasi Azure atau rencana penghematan untuk mengurangi biaya sumber daya Anda.

    Pilih Azure Spot Virtual Machines untuk menggunakan kapasitas Azure yang tidak digunakan dengan diskon yang signifikan. Diskon ini dapat mencapai hingga 90% harga prabayar. Jika Azure membutuhkan kapasitas kembali, infrastruktur Azure akan mengeluarkan simpul Spot.

    Jika Anda menjalankan AKS di tempat atau di tepi, Anda juga dapat menggunakan Azure Hybrid Benefit untuk mengurangi biaya saat menjalankan aplikasi dalam bentuk kontainer dalam skenario tersebut.

  • (Kluster dan beban kerja) Mengoptimalkan biaya komponen beban kerja. Pilih wilayah yang paling hemat biaya untuk beban kerja Anda. Evaluasi persyaratan biaya, latensi, dan kepatuhan untuk memastikan bahwa Anda menjalankan beban kerja Anda secara hemat biaya dan tidak memengaruhi pelanggan Anda atau membuat biaya jaringan tambahan. Wilayah tempat Anda menyebarkan beban kerja di Azure dapat secara signifikan memengaruhi biaya. Karena banyak faktor, biaya sumber daya bervariasi untuk setiap wilayah di Azure.

    Pertahankan gambar yang kecil dan teroptimalkan untuk membantu mengurangi biaya karena node baru perlu mengunduh gambar tersebut. Kegagalan permintaan pengguna atau timeout saat aplikasi dimulai dapat menyebabkan penyediaan berlebihan. Buat gambar dengan cara yang memungkinkan kontainer untuk memulai sesegera mungkin untuk membantu menghindari kegagalan dan batas waktu.

    Tinjau rekomendasi Pengoptimalan Biaya dalam praktik terbaik untuk memantau Kubernetes dengan Azure Monitor untuk menentukan strategi pemantauan terbaik untuk beban kerja Anda. Analisis metrik performa, dimulai dengan CPU, memori, penyimpanan, dan jaringan, untuk mengidentifikasi peluang pengoptimalan biaya berdasarkan kluster, simpul, dan namespace.

  • (Kluster dan beban kerja) Mengoptimalkan biaya penskalakan beban kerja. Pertimbangkan konfigurasi skala vertikal dan horizontal alternatif untuk mengurangi biaya penskalan sambil tetap memenuhi semua persyaratan beban kerja. Gunakan autoscaler untuk mengatur skala saat beban kerja kurang aktif.

  • (Kluster dan beban kerja) Mengumpulkan dan menganalisis data biaya. Fondasi mengaktifkan pengoptimalan biaya adalah penyebaran kluster penghematan biaya. Kembangkan pola pikir efisiensi biaya yang mencakup kolaborasi antara tim keuangan, operasi, dan teknik untuk mendorong keselarasan pada tujuan penghematan biaya dan membawa transparansi pada biaya cloud.

Rekomendasi konfigurasi

Recommendation Benefit
(Kluster dan beban kerja) Selaraskan pemilihan SKU AKS dan ukuran disk terkelola dengan kebutuhan beban kerja. Mencocokkan pilihan Anda dengan tuntutan beban kerja membantu memastikan bahwa Anda tidak membayar sumber daya yang tidak dibutuhkan.
(Kluster) Pilih jenis instans VM yang tepat untuk kumpulan simpul AKS Anda.

Untuk menentukan jenis instans VM yang tepat, pertimbangkan karakteristik beban kerja, persyaratan sumber daya, dan kebutuhan ketersediaan.
Memilih jenis instans VM yang tepat sangat penting karena secara langsung memengaruhi biaya untuk menjalankan aplikasi di AKS. Memilih instans berkinerja tinggi tanpa pemanfaatan yang tepat dapat menyebabkan pengeluaran yang boros. Memilih instans yang kurang kuat dapat menyebabkan masalah performa dan mengalami peningkatan downtime.
(Kluster) Pilih VM berdasarkan arsitektur Azure Resource Manager yang lebih hemat daya. AKS mendukung membuat kumpulan simpul Arm64 dan campuran simpul arsitektur Intel dan Resource Manager dalam kluster. Arsitektur Arm64 memberikan rasio harga-ke-performa yang lebih baik karena pemanfaatan dayanya yang lebih rendah dan performa komputasi yang efisien. Kemampuan ini dapat membawa performa yang lebih baik dengan biaya yang lebih rendah.
(Kluster) Aktifkan autoscaler kluster untuk secara otomatis mengurangi jumlah simpul agen sebagai respons terhadap kapasitas sumber daya yang berlebih. Menurunkan skala jumlah simpul di kluster AKS secara otomatis memungkinkan Anda menjalankan kluster yang efisien ketika permintaan rendah dan meningkatkan skala ketika permintaan meningkat.
(Kluster) Aktifkan simpul provisi otomatis untuk mengotomatiskan pemilihan SKU VM. Provisi otomatis Node menyederhanakan proses pemilihan SKU dan menentukan, berdasarkan persyaratan sumber daya pod yang tertunda, konfigurasi VM optimal untuk beban kerja yang efisien dan hemat biaya.
(Beban Kerja) Gunakan HorizontalPodAutoscaler untuk menyesuaikan jumlah pod dalam penyebaran tergantung pada pemanfaatan CPU atau metrik lainnya. Secara otomatis mengurangi jumlah pod ketika permintaan rendah dan ekspansi ketika permintaan meningkat akan menghasilkan operasi beban kerja yang lebih hemat biaya.
(Beban Kerja) Gunakan VerticalPodAutoscaler (pratinjau) untuk menyesuaikan pod Anda dan mengatur permintaan dan batasan secara dinamis berdasarkan penggunaan historis. Dengan mengatur permintaan dan batasan sumber daya pada kontainer untuk setiap beban kerja, VerticalPodAutoscaler membebaskan CPU dan memori untuk pod lain dan membantu memastikan pemanfaatan kluster AKS Anda yang efektif.
(Kluster) Konfigurasikan add-on analisis biaya AKS . Ekstensi kluster analisis biaya memungkinkan Anda untuk mendapatkan wawasan terperinci tentang biaya yang terkait dengan berbagai sumber daya Kubernetes di kluster atau namespace Layanan Anda.

Keunggulan Operasi

Kesempurnaan Operasional terutama berfokus pada prosedur untuk praktik pengembangan, observabilitas, dan manajemen rilis.

Prinsip desain Operational Excellence menyediakan strategi desain tingkat tinggi untuk mencapai tujuan tersebut untuk persyaratan operasional beban kerja.

Daftar periksa desain beban kerja

Mulailah strategi desain Anda berdasarkan daftar periksa tinjauan desain untuk Keunggulan Operasional dalam menentukan proses pengamatan, pengujian, dan penyebaran. Lihat panduan praktik terbaik AKS dan panduan operasi Day-2 untuk mempelajari pertimbangan utama yang perlu dipahami dan diterapkan.

  • (Kluster) Menerapkan pendekatan penyebaran infrastruktur sebagai kode (IaC). Gunakan pendekatan penyebaran berbasis templat deklaratif dengan menggunakan Bicep, Terraform, atau alat serupa. Pastikan bahwa semua penyebaran dapat diulang, dapat dilacak, dan disimpan dalam repositori kode sumber. Untuk informasi selengkapnya, lihat mulai cepat dalam dokumentasi produk AKS.

  • (Kluster dan beban kerja) Mengotomatiskan penyebaran infrastruktur dan beban kerja. Gunakan solusi perangkat lunak standar untuk mengelola, mengintegrasikan, dan mengotomatiskan penyebaran kluster dan beban kerja Anda. Integrasikan alur penyebaran dengan sistem kontrol sumber Anda dan masukkan pengujian otomatis.

    Bangun proses otomatis untuk membantu memastikan bahwa kluster Anda diinisialisasi dengan konfigurasi dan penerapan yang diperlukan untuk seluruh kluster. Proses ini biasanya dilakukan dengan menggunakan GitOps.

    Gunakan proses penyebaran yang dapat diulang dan otomatis untuk beban kerja Anda dalam siklus hidup pengembangan perangkat lunak Anda.

  • (Kluster dan beban kerja) Menerapkan strategi pemantauan. Kumpulkan log dan metrik untuk memantau kesehatan beban kerja, mengidentifikasi tren performa dan keandalan, dan memecahkan masalah. Tinjau praktik terbaik untuk memantau Kubernetes dengan Azure Monitor dan Rekomendasi Well-Architected untuk merancang dan membuat sistem pemantauan untuk menentukan strategi pemantauan terbaik untuk beban kerja Anda.

    Aktifkan pengaturan diagnostik untuk memastikan bahwa bidang kontrol atau interaksi server API inti dicatat.

    Beban kerja harus dirancang untuk memancarkan telemetri yang dapat dikumpulkan, yang juga harus mencakup status keaktifan dan kesiapan.

  • (Kluster dan beban kerja) Menerapkan pengujian dalam strategi produksi. Pengujian dalam produksi menggunakan penyebaran nyata untuk memvalidasi dan mengukur perilaku dan performa aplikasi di lingkungan produksi. Gunakan praktik rekayasa chaos yang menargetkan Kubernetes untuk mengidentifikasi masalah keandalan aplikasi atau platform.

    Azure Chaos Studio dapat membantu mensimulasikan kesalahan dan memicu situasi pemulihan bencana.

  • (Kluster dan beban kerja) Menerapkan tata kelola beban kerja. Azure Policy membantu memastikan kepatuhan yang konsisten dengan standar organisasi, mengotomatiskan penegakan kebijakan, dan memberikan visibilitas dan kontrol terpusat atas sumber daya kluster Anda.

    Tinjau bagian Kebijakan Azure untuk mempelajari selengkapnya tentang kebijakan bawaan yang tersedia untuk AKS.

  • (Kluster dan beban kerja) Gunakan penyebaran biru-hijau tingkat stempel untuk beban kerja misi-kritis. Pendekatan penyebaran biru-hijau tingkat stempel dapat meningkatkan kepercayaan diri dalam merilis perubahan dan memungkinkan peningkatan tanpa waktu henti karena kompatibilitas dengan dependensi hilir seperti platform Azure, penyedia sumber daya, dan modul IaC dapat divalidasi.

    Pengontrol Kubernetes dan ingress mendukung banyak pola penyebaran tingkat lanjut untuk dimasukkan dalam proses rekayasa rilis Anda. Pertimbangkan pola seperti penyebaran biru-hijau atau rilis kenari.

  • (Kluster dan beban kerja) Membuat beban kerja lebih berkelanjutan. Menjadikan beban kerja lebih berkelanjutan dan efisien dalam penggunaan cloud memerlukan upaya gabungan dalam pengoptimalan biaya, mengurangi emisi karbon, dan mengoptimalkan konsumsi energi. Mengoptimalkan biaya aplikasi adalah langkah awal dalam membuat beban kerja lebih berkelanjutan.

    Lihat prinsip rekayasa perangkat lunak berkelanjutan di AKS untuk mempelajari cara membangun beban kerja AKS yang berkelanjutan dan efisien.

Rekomendasi konfigurasi

Recommendation Benefit
(Kluster) Operasikan standar konfigurasi kluster dan pod dengan menggunakan kebijakan Azure untuk AKS. Kebijakan Azure untuk AKS dapat membantu Anda menerapkan penegakan dan perlindungan dalam skala besar pada kluster Anda secara terpusat dan konsisten. Gunakan kebijakan untuk menentukan izin yang diberikan kepada unit pod dan memastikan keberpatuhan terhadap kebijakan perusahaan.
(Kluster) Konfigurasikan alokasi blok statis Azure CNI untuk alokasi subnet pod yang dapat diprediksi dan manajemen alamat IP yang ditingkatkan di kluster AKS.

Terapkan alokasi blok statis untuk menyediakan penetapan alamat IP yang dapat diprediksi untuk pod Kubernetes dalam rentang subnet yang ditentukan, memungkinkan integrasi dengan kebijakan keamanan jaringan yang ada.
Penting untuk tim pengembangan yang menjalankan beberapa kluster AKS yang memerlukan alokasi alamat IP yang dapat diprediksi untuk diintegrasikan dengan kebijakan keamanan jaringan dan aturan firewall yang ada. Meningkatkan keunggulan operasional melalui pengalamatan jaringan yang dapat diprediksi dan manajemen IP yang disederhanakan.
(Beban Kerja) Gunakan Kubernetes Event Driven Autoscaler (KEDA). KEDA memungkinkan aplikasi Anda untuk menskalakan berdasarkan peristiwa, seperti jumlah peristiwa yang sedang diproses. Anda dapat memilih dari katalog beragam penskala KEDA yang berjumlah lebih dari 50.
(Kluster) Gunakan Operator Toolchain KAITO AI untuk penyebaran dan manajemen beban kerja penyajian model AI secara efisien. KAITO menyederhanakan penyebaran dan penskalaan model AI pada Kubernetes sambil menyediakan infrastruktur yang dioptimalkan untuk beban kerja inferensi pembelajaran mesin. Tim ilmu data dapat menyebarkan dan menskalakan model bahasa besar atau model AI lainnya pada AKS menggunakan KAITO, yang secara otomatis menangani sumber daya GPU, model yang melayani infrastruktur, dan kebijakan penskalaan tanpa konfigurasi Kubernetes manual, mengurangi kompleksitas operasional.
(Kluster) Aktifkan AKS Otomatis untuk pengalaman Kubernetes yang dikelola sepenuhnya dengan manajemen kluster otomatis. AKS Otomatis mengurangi overhead operasional untuk manajemen kluster Kubernetes dengan mengotomatiskan tugas rutin sekaligus memastikan konfigurasi dan postur keamanan yang optimal. Tim pengembangan dapat menyebarkan aplikasi ke AKS tanpa mengelola konfigurasi, pembaruan, atau pengoptimalan kluster, memungkinkan mereka untuk fokus pada pengembangan aplikasi sambil memastikan infrastruktur Kubernetes mereka mengikuti praktik terbaik secara otomatis.

Efisiensi Performa

Efisiensi Performa adalah tentang mempertahankan pengalaman pengguna bahkan ketika ada peningkatan beban dengan mengelola kapasitas. Strategi ini mencakup penskalaan sumber daya, mengidentifikasi dan mengoptimalkan potensi hambatan, dan mengoptimalkan performa puncak.

Prinsip desain Efisiensi Performa menyediakan strategi desain tingkat tinggi untuk mencapai tujuan kapasitas tersebut terhadap penggunaan yang diharapkan.

Daftar periksa desain beban kerja

Mulai strategi desain Anda berdasarkan daftar periksa tinjauan desain untuk Efisiensi Performa agar dapat menentukan patokan berdasarkan indikator kinerja utama untuk AKS.

  • (Kluster dan beban kerja) Melakukan perencanaan kapasitas. Lakukan dan ulangi latihan perencanaan kapasitas terperinci yang mencakup SKU, pengaturan skala otomatis, alamat IP, dan pertimbangan kegagalan.

    Setelah Anda meresmikan rencana kapasitas Anda, sering perbarui rencana dengan terus mengamati pemanfaatan sumber daya kluster.

  • (Kluster) Tentukan strategi penskalakan. Mengonfigurasi penskalaan untuk memastikan bahwa sumber daya disesuaikan secara efisien untuk memenuhi tuntutan beban kerja tanpa penggunaan atau limbah yang berlebihan. Gunakan fitur AKS seperti autoscaling kluster dan HorizontalPodAutoscaler untuk memenuhi kebutuhan beban kerja Anda secara dinamis dengan lebih sedikit ketegangan pada operasi. Optimalkan beban kerja Anda untuk mengoperasikan dan menyebarkan secara efisien dalam kontainer.

    Tinjau panduan penskalaan dan partisi untuk memahami berbagai aspek konfigurasi penskalaan.

  • (Kluster dan beban kerja) Lakukan uji kinerja. Lakukan aktivitas pengujian beban yang berlangsung yang menguji penskalaan otomatis pod dan kluster. Bandingkan hasil dengan target performa dan garis besar yang ditetapkan.

  • (Kluster dan beban kerja) Menskalakan beban kerja dan alur secara independen. Pisahkan beban kerja dan alur ke kumpulan simpul yang berbeda untuk memungkinkan penskalakan independen. Ikuti panduan dalam Mengoptimalkan desain beban kerja menggunakan alur untuk mengidentifikasi dan memprioritaskan alur Anda.

  • (Kluster) Optimalkan resolusi DNS. Manfaatkan LocalDNS yang diaktifkan secara otomatis menggunakan penyediaan otomatis node. LocalDNS meningkatkan performa dengan mengurangi overhead jaringan dan mempercepat penemuan layanan untuk aplikasi layanan mikro dengan tingkat komunikasi antar-layanan yang tinggi. Penyelamatan lokalnya menghilangkan hambatan terkait DNS dengan mengurangi kueri DNS eksternal dan memberikan penyelesaian nama yang berkesinambungan bahkan ketika layanan DNS upstream mengalami pemadaman. Integrasi provisi otomatis node mempertahankan performa jaringan yang optimal tanpa mengorbankan kemampuan otomatisasi operasional.

Rekomendasi konfigurasi

Recommendation Benefit
(Kluster) Aktifkan autoscaler kluster untuk menyesuaikan jumlah simpul agen secara otomatis sebagai respons terhadap tuntutan beban kerja.

Gunakan HorizontalPodAutoscaler untuk menyesuaikan jumlah pod dalam penyebaran tergantung pada pemanfaatan CPU atau metrik lainnya.
Kemampuan untuk meningkatkan atau menurunkan skala jumlah simpul secara otomatis dan jumlah pod di kluster AKS memungkinkan Anda menjalankan kluster yang efisien dan hemat biaya.
(Kluster dan beban kerja) Pisahkan beban kerja ke dalam kumpulan simpul yang berbeda dan pertimbangkan menskalakan kumpulan simpul pengguna. Tidak seperti kumpulan simpul sistem yang selalu memerlukan simpul yang berjalan, kumpulan simpul pengguna memungkinkan Anda untuk meningkatkan atau menurunkan skala.
(Beban Kerja) Gunakan AKS fitur penjadwal tingkat lanjut untuk menerapkan penyeimbangan sumber daya tingkat lanjut untuk beban kerja yang memerlukannya. Saat Mengelola kluster AKS, Anda sering kali perlu mengisolasi tim dan beban kerja. Fitur lanjutan yang disediakan penjadwal Kubernetes memungkinkan Anda mengontrol pod mana yang dapat dijadwalkan pada simpul tertentu. Mereka juga memungkinkan Anda mengontrol bagaimana aplikasi multipod dapat didistribusikan dengan tepat di seluruh kluster.
(Beban Kerja) Gunakan KEDA untuk membangun kumpulan aturan skala otomatis yang bermakna berdasarkan sinyal yang khusus untuk beban kerja Anda. Tidak semua keputusan skala dapat berasal dari metrik CPU atau memori. Pertimbangan skala sering kali berasal dari titik data yang lebih kompleks atau bahkan eksternal. KEDA memungkinkan aplikasi Anda untuk menskalakan berdasarkan peristiwa, seperti jumlah pesan dalam antrean atau panjang jeda topik.
(Kluster) Aktifkan mode Skala Tinggi Azure Monitor untuk Container Insights pada penyebaran Kubernetes skala besar dengan ratusan node. Ini mengurangi konsumsi sumber daya sambil mempertahankan pengamatan. Memungkinkan pemantauan dan mengurangi overhead sumber daya agen dan meningkatkan performa pengumpulan data. Pengoptimalan ini bermanfaat bagi lingkungan perusahaan yang menjalankan ratusan simpul di mana pendekatan pemantauan standar dapat memengaruhi performa kluster dan meningkatkan biaya.

Kebijakan Azure

Azure menyediakan kebijakan bawaan yang luas terkait AKS untuk penerapan di sumber daya Azure, seperti kebijakan Azure umumnya dan Azure Policy add-on untuk Kubernetes, serta berlaku di dalam kluster. Banyak kebijakan sumber daya Azure ditawarkan dalam varian Audit/Tolak dan Implementasikan Jika Belum Ada. Selain definisi Azure Policy bawaan, Anda dapat membuat kebijakan kustom untuk sumber daya AKS dan untuk add-on Azure Policy untuk Kubernetes.

Beberapa rekomendasi dalam artikel ini dapat diaudit melalui Azure Policy. Misalnya, Anda dapat memeriksa kebijakan kluster berikut:

  • Kluster memiliki pemeriksaan kesehatan kesiapan atau keaktifan yang dikonfigurasi untuk spesifikasi pod Anda.
  • Microsoft Defender untuk kebijakan berbasis cloud.
  • Mode autentikasi dan kebijakan konfigurasi, seperti MICROSOFT Entra ID, RBAC, dan menonaktifkan autentikasi lokal.
  • Kebijakan akses jaringan server API, termasuk kluster privat.
  • Kebijakan konfigurasi GitOps.
  • Kebijakan pengaturan diagnostik.
  • Pembatasan versi dari AKS.
  • Cegah pemanggilan perintah.

Anda juga dapat memeriksa kluster dan kebijakan beban kerja berikut:

  • Inisiatif keamanan pod kluster Kubernetes untuk beban kerja berbasis Linux.
  • Sertakan kebijakan kemampuan pod dan kontainer, seperti AppArmor, sysctl, kapasitas keamanan, SELinux, seccomp, kontainer dengan hak istimewa, dan kredensial API kluster yang dimount otomatis.
  • Pemasangan, driver volume, dan kebijakan sistem file.
  • Kebijakan jaringan pod dan kontainer, seperti jaringan host, port, IP eksternal yang diizinkan, HTTP, dan penyeimbang beban internal.
  • Pembatasan penyebaran namespace.
  • Batas sumber daya CPU dan memori.

Untuk tata kelola, tinjau definisi bawaan Azure Policy untuk Kubernetes dan kebijakan lain yang mungkin memengaruhi keamanan lapisan komputasi.

Rekomendasi Azure Advisor

Azure Advisor adalah konsultan cloud yang dipersonalisasi yang membantu Anda mengikuti praktik terbaik untuk mengoptimalkan penyebaran Azure Anda.

Untuk informasi selengkapnya, lihat Azure Advisor.

Contoh arsitektur

Arsitektur dasar yang menunjukkan rekomendasi utama: arsitektur garis besar AKS.

Pertimbangkan artikel berikut sebagai sumber daya yang menunjukkan rekomendasi yang disorot dalam artikel ini.

Bangun keahlian implementasi dengan menggunakan dokumentasi produk berikut:

  • dokumentasi produk AKS