Skenario ini menggambarkan cara merancang dan menerapkan arsitektur dasar untuk Microsoft Azure Kubernetes Service (AKS) yang berjalan di Azure Stack HCI.
Artikel ini mencakup rekomendasi untuk jaringan, keamanan, identitas, manajemen, dan pemantauan kluster berdasarkan persyaratan bisnis organisasi. Ini adalah bagian dari seperangkat panduan garis besar arsitektur dari dua artikel. Lihat rekomendasi untuk desain jaringan di sini.
Penting
Informasi dalam artikel ini berlaku untuk AKS di Azure Stack HCI versi 22H2, dan AKS-HCI di Windows Server. Versi terbaru AKS berjalan di Azure Stack HCI 23H2. Untuk informasi selengkapnya tentang versi terbaru, lihat dokumentasi AKS di Azure Stack HCI versi 23H2.
Sistem
Gambar berikut menunjukkan arsitektur dasar untuk Azure Kubernetes Service pada kluster failover pusat data Azure Stack HCI atau Windows Server 2019/2022:
Unduh file Visio arsitektur ini.
Arsitektur terdiri dari komponen dan kemampuan berikut:
- Azure Stack HCI (22H2). Solusi kluster infrastruktur hiperkonvergensi (HCI) yang menghosting beban kerja Windows dan Linux virtual dan penyimpanannya di lingkungan lokal hibrid. Kluster Azure Stack HCI diimplementasikan sebagai kluster node 2-8.
- Azure Kubernetes Service (AKS) di Azure Stack HCI. Implementasi AKS lokal, yang mengotomatiskan menjalankan aplikasi kontainer dalam skala besar.
- Azure Arc. Layanan berbasis cloud yang memperluas model manajemen berbasis Azure Resource Manager ke sumber daya non-Azure termasuk komputer virtual (VM) non-Azure, kluster Kubernetes, dan database kontainer.
- Azure Policy. Layanan berbasis cloud yang membantu menegakkan standar organisasi dan menilai kepatuhan dalam skala besar dengan mengevaluasi sumber daya Azure (termasuk berkemampuan Arc) ke properti sumber daya tersebut terhadap aturan bisnis. Standar ini juga mencakup Azure Policy untuk Kubernetes, yang menerapkan kebijakan ke beban kerja yang berjalan di dalam kluster.
- Azure Monitor. Layanan berbasis cloud yang memaksimalkan ketersediaan dan performa aplikasi dan layanan Anda dengan memberikan solusi komprehensif untuk mengumpulkan, menganalisis, dan bertindak berdasarkan telemetri dari lingkungan cloud dan lokal Anda.
- Microsoft Defender untuk Cloud. Sistem manajemen keamanan infrastruktur terpadu yang memperkuat postur keamanan pusat data Anda dan memberikan perlindungan ancaman tingkat lanjut di seluruh beban kerja hibrid Anda di cloud dan lokal.
- Azure Automation. Memberikan otomatisasi dan layanan konfigurasi berbasis cloud yang mendukung manajemen yang konsisten di seluruh lingkungan Azure dan bukan Azure Anda.
- Velero. Alat sumber terbuka yang mendukung pencadangan sesuai permintaan dan pencadangan terjadwal dan memulihkan semua objek di kluster Kubernetes.
- Azure Blob Storage. Penyimpanan objek yang dapat diskalakan dan aman secara besar-besaran untuk beban kerja cloud-native, arsip, data lake, komputasi berperforma tinggi, dan pembelajaran mesin.
Komponen
- Azure Stack HCI (22H2)
- Azure Kubernetes Service (AKS) di Azure Stack HCI
- Pusat Admin Windows
- Langganan Azure
- Azure Arc
- Kontrol akses berbasis peran Azure (Azure RBAC)
- Azure Monitor
- Microsoft Defender untuk Cloud
Detail skenario
Kemungkinan kasus penggunaan
- Terapkan beban kerja berbasis kontainer yang sangat tersedia dalam implementasi Kubernetes lokal AKS.
- Mengotomatiskan menjalankan aplikasi kontainer dalam skala besar.
- Menurunkan total biaya kepemilikan (TCO) melalui solusi bersertifikat Microsoft, otomatisasi berbasis cloud, manajemen terpusat, dan pemantauan terpusat.
Perangkat keras bersertifikat
Gunakan perangkat keras bersertifikat Azure Stack HCI, yang menyediakan pengaturan Secure Boot, United Extensible Firmware Interface (UEFI), dan Trusted Platform Module (TPM) di luar kotak. Persyaratan komputasi bergantung pada aplikasi dan jumlah simpul pekerja yang berjalan di AKS pada kluster. Gunakan beberapa simpul fisik untuk penyebaran Azure Stack HCI atau setidaknya dua node kluster failover Windows Server Datacenter untuk mencapai ketersediaan tinggi. Diperlukan bahwa semua server memiliki produsen dan model yang sama, menggunakan kelas Intel Nehalem 64-bit, kelas AMD EPYC, atau prosesor yang kompatibel dengan terjemahan alamat tingkat kedua (SLAT).
Strategi penyebaran kluster
AKS menyederhanakan penyebaran Kubernetes lokal dengan menyediakan wizard atau cmdlet PowerShell yang dapat Anda gunakan untuk menyiapkan Kubernetes dan add-on Azure Stack HCI penting. Kluster AKS memiliki komponen berikut di Azure Stack HCI:
- Kluster manajemen. Sebarkan kluster manajemen pada komputer virtual (VM) yang sangat tersedia yang berjalan di Azure Stack HCI atau kluster failover Pusat Data Windows Server 2019/2022. Kluster manajemen bertanggung jawab untuk menyebarkan dan mengelola beberapa kluster beban kerja dan mencakup komponen berikut:
- Server API. Berinteraksi dengan alat manajemen.
- Penyeimbang beban. Mengelola aturan penyeimbangan beban untuk server API kluster manajemen.
- Kluster beban kerja. Terapkan komponen sarana kontrol dan komponen node pekerja yang sangat tersedia. Aplikasi kontainer berjalan pada kluster beban kerja. Untuk mencapai isolasi aplikasi, Anda dapat menyebarkan hingga delapan kluster beban kerja. Kluster beban kerja terdiri dari komponen berikut:
- Sarana kontrol. Berjalan pada distribusi Linux dan berisi komponen server API untuk interaksi dengan API Kubernetes dan penyimpanan nilai kunci terdistribusi, dlld, untuk menyimpan semua konfigurasi dan data kluster.
- Penyeimbang beban. Berjalan pada VM Linux dan menyediakan layanan seimbang beban untuk kluster beban kerja.
- Simpul pekerja. Jalankan pada sistem operasi Windows atau Linux yang menghosting aplikasi kontainer.
- Sumber daya Kubernetes. Pod mewakili satu instans aplikasi Anda, yang biasanya memiliki pemetaan 1:1 dengan kontainer, tetapi pod tertentu dapat berisi beberapa kontainer. Penyebaran mewakili satu atau beberapa pod yang identik. Pod dan penyebaran secara logis dikelompokkan ke dalam namespace layanan yang mengontrol akses ke manajemen sumber daya.
Persyaratan jaringan
Kubernetes menyediakan lapisan abstraksi ke jaringan virtual dengan menghubungkan simpul Kubernetes ke jaringan virtual. Ini juga menyediakan konektivitas masuk dan keluar untuk pod melalui komponen kube-proxy . Platform Azure Stack HCI menyediakan penyederhanaan penyebaran lebih lanjut dengan mengonfigurasi VM load balancer HAProxy .
Catatan
Untuk informasi tentang cara merancang dan menerapkan konsep jaringan untuk menyebarkan simpul AKS pada kluster Azure Stack HCI dan Windows Server, lihat artikel kedua dalam seri ini, Arsitektur jaringan.
Arsitektur menggunakan jaringan virtual yang mengalokasikan alamat IP dengan menggunakan salah satu opsi jaringan berikut:
- Jaringan IP statis. Menggunakan kumpulan alamat statis yang ditentukan untuk semua objek dalam penyebaran. Ini menambahkan manfaat tambahan dan menjamin bahwa beban kerja dan aplikasi selalu dapat dijangkau. Ini adalah metode yang direkomendasikan.
- Jaringan DHCP. Mengalokasikan alamat IP dinamis ke simpul Kubernetes, VM yang mendasar, dan load balancer menggunakan server Dynamic Host Configuration Protocol (DHCP).
Kumpulan IP virtual adalah berbagai alamat IP khusus yang digunakan untuk mengalokasikan alamat IP ke server API kluster Kubernetes dan untuk layanan Kubernetes.
Gunakan Project Calico untuk Kubernetes untuk mendapatkan fitur jaringan lain, seperti kebijakan jaringan dan kontrol alur.
Persyaratan penyimpanan
Untuk setiap server dalam kluster, gunakan jenis drive yang sama dengan ukuran dan model yang sama. Azure Stack HCI bekerja dengan Serial Advanced Technology Attachment (SATA) yang terpasang langsung, Serial Attached SCSI (SAS), Non-Volatile Memory Express (NVMe), atau drive memori persisten yang secara fisik terpasang ke satu server masing-masing. Untuk volume kluster, HCI menggunakan teknologi penyimpanan yang ditentukan perangkat lunak (Storage Spaces Direct) untuk menggabungkan drive fisik di kumpulan penyimpanan untuk toleransi kesalahan, skalabilitas, dan performa. Aplikasi yang berjalan di Kubernetes di Azure Stack HCI sering mengharapkan opsi penyimpanan berikut tersedia untuk mereka:
- Volume. Mewakili cara untuk menyimpan, mengambil, dan menyimpan data di seluruh pod dan melalui siklus hidup aplikasi.
- Volume Persisten. Sumber daya penyimpanan yang dibuat dan dikelola oleh KUbernetes API dan dapat ada di luar masa pakai pod individual.
Pertimbangkan untuk menentukan kelas penyimpanan untuk tingkat dan lokasi yang berbeda untuk mengoptimalkan biaya dan performa. Kelas penyimpanan mendukung provisi dinamis volume persisten dan menentukan reclaimPolicy untuk menentukan tindakan sumber daya penyimpanan yang mendasar untuk mengelola volume persisten saat pod dihapus.
Kelola AKS di Azure Stack HCI
Anda dapat mengelola AKS di Azure Stack HCI menggunakan opsi manajemen berikut:
- Pusat Admin Windows. Menawarkan UI intuitif untuk operator Kubernetes untuk mengelola siklus hidup kluster Azure Kubernetes Service di Azure Stack HCI.
- PowerShell. Memudahkan untuk mengunduh, mengonfigurasi, dan menyebarkan AKS di Azure Stack HCI. Modul PowerShell juga mendukung penyebaran, mengonfigurasi kluster beban kerja lainnya, dan mengonfigurasi ulang yang sudah ada.
Persyaratan Active Directory
Integrasikan AKS pada kluster failover Azure Stack HCI atau Windows Server Datacenter dengan lingkungan Active Directory Domain Services (AD DS) untuk manajemen yang optimal. Jika memungkinkan, gunakan unit organisasi terpisah untuk server dan layanan AKS di Azure Stack HCI untuk memberikan akses dan izin kontrol yang lebih terperinci. Integrasi Direktori Aktif dengan Azure Kubernetes Service di Azure Stack HCI memungkinkan pengguna pada komputer yang bergabung dengan domain Windows untuk terhubung ke server API (dengan kubectl) menggunakan kredensial akses menyeluruh (SSO) mereka.
Rekomendasi
Rekomendasi berikut berlaku untuk sebagian besar skenario. Ikuti rekomendasi kecuali Anda memiliki persyaratan khusus yang menimpanya.
Mengintegrasikan AKS pada penyebaran HCI dengan Azure Arc
Untuk meminimalkan TCO, integrasikan penyebaran AKS dengan Azure Arc. Pertimbangkan untuk menggunakan layanan Azure berikut:
- Azure Monitor Container Insights. Memantau performa beban kerja kontainer yang berjalan pada kluster Linux dan Windows. Ini mengumpulkan metrik memori dan prosesor, dari pengontrol, simpul, dan kontainer melalui API Metrik. Dengan wawasan kontainer, Anda dapat mengidentifikasi pemanfaatan memori dan prosesor, mendeteksi performa pod secara keseluruhan, memahami perilaku kluster, dan mengonfigurasi pemberitahuan untuk pemantauan proaktif.
- Kemampuan automasi. AKS menyediakan berbagai kemampuan otomatisasi, dengan pembaruan OS dikombinasikan dengan pembaruan tumpukan penuh termasuk firmware dan driver yang disediakan oleh vendor dan mitra Azure Stack HCI. Anda dapat menjalankan Windows PowerShell secara lokal dari salah satu server Azure Stack HCI atau jarak jauh dari komputer pengelolaan. Integrasi dengan Azure Automation dan Azure Arc memfasilitasi berbagai skenario otomatisasi untuk beban kerja virtual dan kontainer .
- Velero dan Azure Blob Storage. Velero adalah alat sumber terbuka yang mendukung pencadangan sesuai permintaan, pencadangan terjadwal, dan pemulihan semua objek di kluster Kubernetes untuk sumber daya apa pun yang ditentukan dan disimpan dalam database etcd sebagai Definisi Sumber Daya Kustom (CRD) Kubernetes. Ini menyediakan cadangan sumber daya dan volume Kubernetes untuk seluruh kluster atau bagian dari kluster dengan menggunakan namespace layanan atau pemilih label. Simpan set cadangan yang dibuat dengan alat Velero di akun penyimpanan Azure dalam kontainer blob.
- Layanan Kubernetes dengan dukungan Azure Arc. Menyediakan representasi Azure Resource Manager dari AKS pada kluster Azure Stack HCI. Sebarkan agen berkemampuan Azure Arc di namespace Layanan Kubernetes, untuk mengumpulkan log dan metrik, untuk mengumpulkan metadata kluster, versi kluster, dan jumlah simpul dan memastikan bahwa agen menunjukkan performa optimal.
- Azure Policy. Menyebarkan dan menerapkan kebijakan keamanan bawaan pada kluster AKS menggunakan Azure Policy. Anda juga dapat menggunakan definisi kebijakan kustom untuk memberlakukan GitOps, yang merupakan praktik mendeklarasikan status konfigurasi Kubernetes yang diinginkan (penyebaran, namespace, dan sebagainya) di repositori Git.
- Azure Policy untuk Kubernetes. Mengelola kebijakan kluster internal yang diterapkan oleh Gatekeeper, menyebarkan definisi kebijakan ke dalam kluster sebagai templat batasan dan melaporkan status kepatuhan kluster Kubernetes Anda dari satu tempat.
- Azure RBAC. Gunakan untuk penetapan peran dan untuk mengelola akses ke Kubernetes dengan dukungan Azure Arc.
Pertimbangan
Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang dapat digunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Microsoft Azure Well-Architected Framework.
Keandalan
- Terapkan VM yang sangat tersedia untuk kluster manajemen, dan beberapa host di kluster Kubernetes untuk memenuhi tingkat ketersediaan minimum untuk beban kerja.
- Cadangkan dan pulihkan kluster beban kerja menggunakan Velero dan Azure Blob Storage. Tentukan target ketersediaan dan pemulihan untuk memenuhi kebutuhan bisnis.
- Penyebaran AKS menggunakan pengklusteran failover dan migrasi langsung untuk ketersediaan tinggi dan toleransi kesalahan. Migrasi langsung adalah fitur Hyper-V yang memungkinkan Anda memindahkan mesin virtual secara transparan dari satu host Hyper-V ke host lain tanpa waktu henti yang dirasakan.
- Konfigurasikan penyebaran untuk menggunakan fitur Kubernetes, seperti Deployments, Affinity Mapping, dan ReplicaSets, untuk memastikan bahwa pod tangguh dalam skenario gangguan.
- Anda harus memastikan bahwa layanan yang dirujuk di bagian Arsitektur didukung di wilayah tempat Azure Arc disebarkan.
- Pertimbangkan untuk membatasi penggunaan gambar kontainer publik, dan hanya tarik dari registri kontainer yang anda miliki kontrol atas SLA, seperti ACR.
Keamanan
Fokus pada seluruh tumpukan dengan mengamankan host dan kontainer.
Keamanan infrastruktur
- Gunakan perangkat keras bersertifikat Azure Stack HCI yang menyediakan pengaturan Boot Aman, UEFI, dan TPM di luar kotak. Teknologi ini, dikombinasikan dengan keamanan berbasis virtualisasi (VBS), membantu melindungi beban kerja yang peka terhadap keamanan. Kunjungi solusi Azure Stack HCI untuk solusi yang divalidasi.
- Gunakan Boot Aman untuk memastikan bahwa server hanya mem-boot perangkat lunak yang dipercaya oleh Produsen Peralatan Asli.
- Gunakan UEFI untuk mengontrol proses booting server.
- Gunakan TPM untuk menyimpan kunci kriptografi dan untuk mengisolasi semua fungsi terkait keamanan berbasis perangkat keras.
- Enkripsi Drive BitLocker memungkinkan Anda mengenkripsi volume Storage Spaces Direct saat tidak aktif.
- Konfigurasikan kebijakan jaringan Calico untuk menentukan aturan isolasi jaringan antar kontainer.
- Untuk meningkatkan persyaratan keamanan, pertimbangkan untuk menyebarkan kluster beban kerja di server Windows khusus.
- Gunakan Microsoft Defender untuk Cloud, tersedia melalui Pusat Admin Windows, untuk mengelola pengaturan keamanan untuk server dan kluster secara terpusat. Ini memberikan perlindungan ancaman untuk kluster Kubernetes yang didukung Arc Anda. Ekstensi Microsoft Defender untuk Cloud mengumpulkan data dari simpul dalam kluster dan mengirimkannya ke backend Azure Defender for Kubernetes di cloud untuk analisis lebih lanjut.
- Komunikasi aman dengan sertifikat.
- Putar kunci enkripsi dari toko rahasia Kubernetes (dll) menggunakan plug-in Key Management Server (KMS).
Keamanan aplikasi
- Gunakan ekstensi penyedia Rahasia Azure Key Vault di AKS Anda di Azure Stack HCI untuk melindungi lebih lanjut rahasia Anda yang digunakan oleh aplikasi yang berbeda, dengan menyimpannya di layanan Azure Key Vault.
- Gunakan add-on Open Service Mesh AKS untuk mengamankan komunikasi layanan-ke-layanan dengan mengaktifkan TLS bersama (mTLS). Anda juga dapat menggunakan add-on ini untuk menentukan dan menjalankan kebijakan kontrol akses terperinci untuk layanan.
- Gunakan Azure Policy untuk Kubernetes untuk memberlakukan kebijakan keamanan kluster, seperti tidak ada pod istimewa.
- Gunakan Azure Container Registry yang berisi pemindaian kerentanan dalam repositori kontainernya.
- Gunakan akun keamanan yang dikelola grup untuk beban kerja Windows dengan host yang bergabung dengan non-domain. (Hanya berlaku untuk Windows Server.)
Keamanan Kontainer
- Perkeras lingkungan host dan daemon dengan menghapus layanan yang tidak perlu.
- Simpan rahasia dari gambar dan pasang hanya melalui mesin orkestrasi kontainer.
- Amankan gambar di Azure Container Registry yang mendukung pemindaian kerentanan dan RBAC.
- Gunakan isolasi kontainer, dan hindari menjalankan kontainer dalam mode istimewa untuk mencegah penyerang meningkatkan hak istimewa jika kontainer disusupi.
Pengoptimalan biaya
- Gunakan harga Azure untuk memperkirakan biaya layanan yang digunakan dalam arsitektur. Bagian pengoptimalan biaya di Microsoft Azure Well-Architected Framework menjelaskan praktik terbaik lainnya. Untuk informasi selengkapnya, lihat Detail harga.
- Pertimbangkan untuk menerapkan hyper-threading di komputer fisik Anda, untuk mengoptimalkan biaya, karena unit penagihan AKS adalah inti virtual.
Keunggulan operasional
- Buat Wizard Kluster. Rasakan pengalaman provisi dan manajemen yang disederhanakan dengan Pusat Admin Windows. Wizard Buat Kluster di Pusat Admin Windows menyediakan antarmuka berbasis wizard yang memandu Anda membuat kluster Azure Stack HCI. Wizard Buat Kluster adalah tradeoff untuk memudahkan vs membuat skrip penyebaran yang dapat Anda kontrol sumber untuk audit dan pengulangan di beberapa penyebaran. Demikian pula, Pusat Admin Windows menyederhanakan proses pengelolaan VM Azure Stack HCI.
- Azure Arc. Integrasikan dengan Azure Arc atau berbagai layanan Azure yang menyediakan kemampuan manajemen, pemeliharaan, dan ketahanan tambahan (misalnya, Azure Monitor dan analitik Log).
- GitOps. Alih-alih mengonfigurasi komponen Kubernetes secara manual, gunakan alat otomatis untuk menerapkan konfigurasi ke kluster Kubernetes, karena konfigurasi ini diperiksa ke repositori sumber. Proses ini sering disebut sebagai GitOps, dan solusi GitOps populer untuk Kubernetes termasuk Flux dan Argo CD. Dalam arsitektur ini, sebaiknya gunakan ekstensi GitOps yang disediakan Microsoft, yang didasarkan pada Fluks.
- Open Service Mesh (OSM) dengan dukungan Azure Arc. Jala layanan ringan, dapat diperluas, cloud-native yang memungkinkan pengguna mengelola, membantu mengamankan, dan mendapatkan fitur pengamatan di luar kotak untuk lingkungan layanan mikro yang sangat dinamis.
Efisiensi kinerja
- Gunakan perangkat keras bersertifikat Azure Stack HCI untuk meningkatkan waktu aktif dan performa aplikasi, manajemen dan operasi yang disederhanakan, dan menurunkan total biaya kepemilikan.
- Pahami AKS pada batas Azure Stack HCI. Microsoft mendukung penyebaran AKS pada Azure Stack dengan maksimum delapan server fisik per kluster, delapan Kluster Kubernetes, dan 200 VM.
- Penskalaan AKS di Azure Stack HCI tergantung pada jumlah simpul pekerja dan kluster target. Untuk membuat dimensi perangkat keras untuk simpul pekerja dengan benar, Anda perlu mengantisipasi jumlah pod, kontainer, dan simpul pekerja dalam kluster target. Anda harus memastikan bahwa setidaknya 15% kapasitas Azure Stack HCI dicadangkan untuk kegagalan yang direncanakan dan tidak direncanakan. Untuk efisiensi performa, gunakan sumber daya komputasi secara efisien untuk memenuhi persyaratan sistem, dan untuk mempertahankan efisiensi tersebut seiring berkembangnya perubahan permintaan dan teknologi. Aturan umumnya adalah bahwa jika satu simpul offline selama pemeliharaan, atau selama kegagalan yang tidak diencana, simpul yang tersisa dapat memiliki kapasitas yang cukup untuk mengelola peningkatan beban.
- Pertimbangkan untuk meningkatkan ukuran VM load balancer jika Anda menjalankan banyak layanan Kubernetes di setiap kluster target.
- AKS di Azure Stack HCI mendistribusikan simpul pekerja untuk setiap kumpulan simpul dalam kluster target menggunakan logika penempatan Azure Stack HCI.
- Rencanakan reservasi alamat IP untuk mengonfigurasi host AKS, kluster beban kerja, server API Kluster, Layanan Kubernetes, dan layanan Aplikasi. Microsoft merekomendasikan untuk mengirimkan minimal 256 alamat IP untuk penyebaran AKS di Azure Stack HCI.
- Pertimbangkan untuk menerapkan pengontrol ingress yang berfungsi di Lapisan 7 dan menggunakan aturan yang lebih cerdas untuk mendistribusikan lalu lintas aplikasi.
- Menerapkan pengoptimalan performa jaringan untuk alokasi bandwidth lalu lintas.
- Gunakan akselerasi unit pemrosesan grafis (GPU) untuk beban kerja yang luas.
Kontributor
Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.
Penulis utama:
- Lisa DenBeste | Manajer Program Manajemen Proyek
- Kenny Lebih Keras | Manajer Proyek
- Mike Kostersitz | Prospek Manajer Program Utama
- Meg Olsen | Kepala sekolah
- Perairan Nate | Manajer Pemasaran Produk
Kontributor lain:
- Walter Oliver | Manajer Program Senior