Arsitektur dan beban kerja kluster Kubernetes untuk AKS yang diaktifkan oleh Azure Arc
Berlaku untuk: AKS di Azure Stack HCI 22H2, AKS di Windows Server
AKS di Azure Stack HCI atau Windows Server merupakan platform kontainer Kubernetes tingkat enterprise, yang didukung oleh Azure Stack HCI. Ia termasuk Kubernetes inti berbasis Microsoft, host kontainer Windows yang dibuat secara khusus, dan host kontainer Linux yang didukung Microsoft dengan tujuan memiliki pengalaman penyebaran dan manajemen siklus hidup yang sederhana.
Artikel ini memperkenalkan komponen infrastruktur Kubernetes inti, seperti sarana kontrol, node, dan kumpulan node. Sumber daya beban kerja seperti pod, penyebaran, dan set juga diperkenalkan, bersamaan dengan cara mengelompokkan sumber daya ke dalam namespace layanan.
Arsitektur kluster Kube
Kubernetes adalah komponen inti dari AKS yang diaktifkan oleh Azure Arc. AKS menggunakan serangkaian konfigurasi yang telah ditentukan sebelumnya untuk menyebarkan kluster Kubernetes secara efektif dan dengan mengingat skalabilitas.
Operasi penyebaran membuat beberapa komputer virtual Linux atau Windows dan menggabungkannya bersama-sama untuk membuat kluster Kubernetes.
Catatan
Untuk membantu meningkatkan keandalan sistem, jika Anda menjalankan beberapa Volume Bersama Kluster (CSV) di kluster Anda, secara default data komputer virtual secara otomatis tersebar di semua CSV yang tersedia di kluster. Hal ini memastikan bahwa aplikasi bertahan jika terjadi penghentian CSV. Hal ini hanya berlaku untuk penginstalan baru (bukan peningkatan).
Sistem yang disebarkann siap menerima beban kerja Kubernetes standar, menskalakan beban kerja ini, atau bahkan menskalakan jumlah mesin virtual dan jumlah kluster naik dan turun yang sesuai kebutuhan.
Kluster Azure Kubernetes Service memiliki komponen berikut:
- Kluster manajemen (juga dikenal sebagai host AKS) menyediakan mekanisme orkestrasi inti dan antarmuka untuk menyebarkan dan mengelola satu atau lebih kluster beban kerja.
- Kluster beban kerja (juga dikenal sebagai kluster target) adalah tempat aplikasi kontainer disebarkan.
Mengelola AKS yang diaktifkan oleh Arc
Anda dapat mengelola AKS menggunakan opsi manajemen berikut:
- Windows Admin Center menawarkan UI intuitif bagi operator Kubernetes untuk mengelola siklus hidup kluster.
- Modul PowerShell memudahkan untuk mengunduh, mengonfigurasi, dan menyebarkan AKS. Modul PowerShell juga mendukung penyebaran serta konfigurasi kluster beban kerja tambahan dan mengonfigurasi ulang yang sudah ada.
Kluster manajemen
Saat Anda membuat kluster Kubernetes, kluster manajemen secara otomatis dibuat dan dikonfigurasi. Kluster manajemen ini bertanggung jawab untuk provisi dan mengelola kluster beban kerja tempat beban kerja berjalan. Kluster manajemen mencakup komponen Kubernetes inti berikut:
-
Server API: api server adalah bagaimana API Kubernetes yang mendasar diekspos. Komponen ini menyediakan interaksi untuk alat manajemen, seperti Pusat Admin Windows, modul PowerShell, atau
kubectl
. - Load balancer: load balancer adalah VM Linux khusus tunggal dengan aturan penyeimbangan beban untuk server API kluster manajemen.
Kluster beban kerja
Kluster beban kerja adalah penyebaran Kubernetes yang sangat tersedia menggunakan mesin virtual Linux untuk menjalankan komponen sarana kontrol Kubernetes dan node pekerja Linux. VM berbasis Windows Server Core digunakan untuk membuat simpul pekerja Windows. Mungkin ada satu atau lebih kluster beban kerja yang dikelola oleh satu kluster manajemen.
Komponen kluster beban kerja
Kluster beban kerja memiliki banyak komponen, yang dijelaskan di bagian berikut.
Pesawat kontrol
-
API Server: api server memungkinkan interaksi dengan API Kubernetes. Komponen ini menyediakan interaksi untuk alat manajemen, seperti Pusat Admin Windows, modul PowerShell, atau
kubectl
. - Etcd: Etcd adalah penyimpanan kunci-nilai terdistribusi yang menyimpan data yang diperlukan untuk manajemen siklus hidup kluster. Ini menyimpan status sarana kontrol.
Load balancer
Load balancer adalah mesin virtual yang menjalankan Linux dan HAProxy + KeepAlive untuk menyediakan layanan seimbang beban untuk kluster beban kerja yang disebarkan oleh kluster manajemen. Untuk setiap kluster beban kerja, AKS menambahkan setidaknya satu komputer virtual load balancer. Setiap layanan Kubernetes jenis LoadBalancer
yang dibuat pada kluster beban kerja akhirnya membuat aturan penyeimbangan beban di VM.
Simpul pekerja
Untuk menjalankan aplikasi dan layanan pendukung, Anda memerlukan Node kube. Kluster beban kerja AKS memiliki satu atau beberapa node pekerja. Node pekerja bertindak sebagai mesin virtual (VM) yang menjalankan komponen node Kubernetes, dan menghosting pod dan layanan yang membentuk beban kerja aplikasi.
Ada komponen beban kerja Kubernetes inti yang dapat disebarkan pada kluster beban kerja AKS, seperti pod dan penyebaran.
Pod
Kube menggunakan pod untuk menjalankan instans aplikasi Anda. Sebuah Pod mewakili satu instans aplikasi anda. Biasanya, pod memiliki pemetaan 1:1 dengan kontainer, meskipun ada skenario lanjutan di mana pod dapat berisi beberapa kontainer. Pod multi-kontainer ini dijadwalkan bersama pada node yang sama, dan memungkinkan kontainer berbagi sumber daya terkait. Untuk informasi lebih lanjut, lihat Pod Kube dan siklus hidup pod Kube.
Penyebaran
Penyebaran menyatakan satu atau lebih pod identik yang dikelola oleh Pengontrol Penyebaran Kubernetes. Penyebaran mendefinisikan jumlah replika (pod) yang akan dibuat, dan penjadwal Kubernetes memastikan bahwa jika pod atau simpul mengalami masalah, pod tambahan dijadwalkan pada simpul yang sehat. Untuk informasi lebih lanjut, lihat Penyebaran Kube.
StatefulSet dan DaemonSets
Deployment Controller menggunakan penjadwal Kube untuk menjalankan sejumlah replika tertentu pada simpul yang tersedia dengan sumber daya yang tersedia. Pendekatan penggunaan penyebaran ini mungkin cukup untuk aplikasi stateless, tetapi tidak untuk aplikasi yang memerlukan konvensi penamaan atau penyimpanan yang persisten. Untuk aplikasi yang memerlukan replika di setiap simpul (atau simpul yang dipilih) di dalam kluster, Pengontrol Penyebaran tidak tergantung cara replika didistribusikan di seluruh simpul.
- StatefulSets: StatefulSet mirip dengan penyebaran di mana satu atau beberapa pod identik dibuat dan dikelola. Replica dalam StatefulSet mengikuti pendekatan yang rapi dan berurutan untuk penyebaran, penskalaan, peningkatan, dan penghentian. Dengan StatefulSet (karena replika dijadwal ulang) konvensi penamaan, nama jaringan, dan penyimpanan tetap ada. Replika dalam StatefulSet dijadwalkan dan dijalankan di seluruh node yang tersedia di kluster Kubernetes. Jika Anda perlu memastikan bahwa setidaknya satu pod dalam set Anda berjalan pada node, Anda dapat menggunakan DaemonSet. Untuk informasi lebih lanjut, lihat StatefulSets Kube.
- DaemonSets: untuk kebutuhan pengumpulan atau pemantauan log tertentu, Anda mungkin perlu menjalankan pod tertentu pada semua, atau node yang dipilih. DaemonSet kembali digunakan untuk menyebarkan satu atau beberapa pod yang identik, tetapi pengontrol DaemonSet memastikan bahwa setiap simpul yang ditentukan menjalankan instans pod. Untuk informasi lebih lanjut, lihat DaemonSets Kube.
Namaspace
Sumber daya Kubernetes, seperti pod dan penyebarannya, dikelompokkan secara logis ke dalam sebuah namespace. Pengelompokan ini menyediakan cara untuk membagi kluster beban kerja secara logis dan membatasi akses untuk membuat, melihat, atau mengelola sumber daya. Misalnya, Anda dapat membuat namespace untuk memisahkan grup bisnis. Pengguna hanya dapat berinteraksi dengan sumber daya dalam namespace yang ditetapkan. Untuk informasi lebih lanjut, lihat Namespace Kube.
Saat Anda membuat kluster Azure Kubernetes Service pada AKS yang diaktifkan oleh Arc, namespace layanan berikut tersedia:
-
default: namespace tempat pod dan penyebaran dibuat secara default ketika tidak ada yang disediakan. Di lingkungan yang lebih kecil, Anda dapat menyebarkan aplikasi langsung ke namespace default tanpa membuat pemisahan logis tambahan. Ketika berinteraksi dengan Kube API, seperti dengan
kubectl get pods
, namespace default digunakan ketika tidak ada yang ditentukan. - kube-system: namespace tempat sumber daya inti ada, seperti fitur jaringan seperti DNS dan proxy, atau dasbor Kubernetes. Anda biasanya tidak menyebarkan aplikasi Anda sendiri ke dalam namespace ini.
- kube-public: namespace biasanya tidak digunakan, tetapi dapat digunakan untuk sumber daya agar terlihat di seluruh kluster, dan dapat dilihat oleh pengguna mana pun.
Secret
Rahasia Kubernetes memungkinkan Anda menyimpan dan mengelola informasi sensitif, seperti kata sandi, token OAuth, dan kunci Secure Shell (SSH). Secara default, Kubernetes menyimpan rahasia sebagai string yang dikodekan base64 yang tidak terenkripsi, dan dapat diambil sebagai teks biasa oleh siapa pun dengan akses API. Untuk informasi lebih lanjut, lihat Rahasia Kubernetes.
Volume persisten
Volume persisten merupakan sumber daya penyimpanan di kluster Kubernetes yang telah disediakan oleh administrator atau disediakan secara dinamis menggunakan kelas penyimpanan. Untuk menggunakan volume persisten, pod meminta akses menggunakan PersistentVolumeClaim. Untuk informasi selengkapnya, lihat Volume Persisten.
Penyebaran Mixed-OS
Jika kluster beban kerja tertentu terdiri dari simpul pekerja Linux dan Windows, beban kerja perlu dijadwalkan ke OS yang dapat mendukung penyediaan beban kerja. Kubernetes menawarkan dua mekanisme guna memastikan beban kerja mendarat di simpul dengan sistem operasi target:
- Node Selector adalah bidang sederhana dalam spesifikasi pod yang membatasi pod hanya untuk dijadwalkan ke node sehat yang cocok dengan sistem operasi.
- Pencemaran dan toleransi bekerja sama untuk memastikan bahwa pod tidak dijadwalkan ke node secara tidak sengaja. Sebuah simpul dapat "tercela" sehingga tidak menerima pod yang tidak secara eksplisit mentolerir taint-nya melalui "toleransi" dalam spesifikasi pod.
Untuk informasi selengkapnya, lihat pemilih node dan pencemaran dan toleransi.
Langkah berikutnya
Dalam artikel ini, Anda mempelajari tentang arsitektur kluster AKS yang diaktifkan oleh Azure Arc, dan komponen kluster beban kerja. Untuk informasi selengkapnya tentang konsep ini, lihat artikel berikut ini: