Dokumen ini menjelaskan dasar-dasar platform orkestrasi container open source Kubernetes. Banyak komponen Google Distributed Cloud (GDC) dengan air gap didasarkan pada Kubernetes, dan banyak dokumentasi mengasumsikan bahwa Anda sudah memahami konsep dan terminologi dasar Kubernetes. Jika Anda belum memahami Kubernetes, gunakan dokumen ini sebagai referensi untuk bacaan yang direkomendasikan untuk memulai.
Mempelajari dasar-dasar Kubernetes sangat penting untuk mendesain, men-deploy, dan mengelola aplikasi GDC serta komponen sistem yang mendasarinya. Profesional teknis berikut harus memahami Kubernetes agar berhasil mengoperasikan GDC:
- Operator dalam grup operator infrastruktur bertanggung jawab untuk menginstal dan memelihara infrastruktur software dan hardware GDC yang mendasarinya.
- Administrator dalam grup administrator platform yang bertanggung jawab untuk merancang infrastruktur dan arsitektur aplikasi yang tangguh di GDC.
- Developer dalam grup operator aplikasi yang bertanggung jawab untuk membangun aplikasi.
Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC yang terisolasi dari internet.
Tentang Kubernetes
Kubernetes adalah platform orkestrasi container open source. Pada intinya, cluster Kubernetes adalah sekumpulan mesin pekerja yang disebut node yang menjalankan aplikasi dalam container. Seluruh cluster dikelola oleh bidang kontrol, yang mencakup komponen seperti server API, penjadwal, dan database etcd, serta bertanggung jawab untuk mempertahankan status cluster.
Aplikasi dikemas ke dalam pod, unit terkecil yang dapat di-deploy di Kubernetes, yang dapat berisi satu atau beberapa container dan berjalan di node. Untuk mengatur resource dalam cluster, sering kali untuk tim atau lingkungan yang berbeda, Kubernetes menggunakan namespace.
Siklus proses dan status pod dikelola oleh pengontrol. Misalnya, objek Deployment mengelola update bertahap dan objek ReplicaSet memastikan sejumlah replika pod tertentu berjalan. Untuk menyediakan endpoint jaringan yang stabil, seperti alamat IP dan nama DNS untuk mengakses pod, Kubernetes menggunakan layanan.
Karena penyimpanan container bersifat sementara secara default, Kubernetes menawarkan berbagai abstraksi penyimpanan, seperti volume dan volume persisten untuk mengelola data.
Untuk mengamankan akses ke resource cluster dan Kubernetes API, Kubernetes menggunakan role-based access control (RBAC) untuk menentukan peran, peran cluster, dan binding untuk memberikan izin tertentu kepada pengguna dan akun layanan.
Konsep utama
Berikut adalah beberapa konsep utama yang kami gunakan di seluruh dokumentasi GDC. Ini bukan daftar lengkap konsep Kubernetes. Anda dapat menemukan lebih banyak hal untuk dibaca dan dipelajari dalam topik yang disediakan dari dokumentasi Kubernetes dan bacaan yang direkomendasikan.
Node dan cluster
Semua workload Kubernetes berjalan di node. Di GDC, node adalah virtual machine (VM). Di platform Kubernetes lainnya, node dapat berupa mesin fisik atau virtual. Setiap node dikelola oleh bidang kontrol Kubernetes dan memiliki semua komponen yang diperlukan untuk menjalankan pod. Cluster adalah sekumpulan node yang dapat diperlakukan bersama sebagai satu entity, tempat Anda men-deploy aplikasi dalam container.
Pelajari lebih lanjut di dokumentasi Kubernetes:
Bidang kontrol Kubernetes
Bidang kontrol Kubernetes adalah sekumpulan komponen sistem yang mengelola status keseluruhan cluster Anda, termasuk server Kubernetes API yang memungkinkan Anda berinteraksi dengan cluster dan aplikasi menggunakan kubectl CLI dan alat lain, penjadwal untuk menjadwalkan pod di node yang tersedia, dan pengontrol yang melacak dan mengelola status cluster. Bidang kontrol disediakan dan dikelola oleh GDC.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi Komponen bidang kontrol Kubernetes.
Pod
Di Kubernetes, aplikasi dalam container berjalan di dalam pod. Pod adalah unit komputasi terdeploy terkecil yang dapat Anda buat dan kelola di Kubernetes. Pod memiliki satu atau beberapa container. Saat pod menjalankan beberapa container, seperti server aplikasi dan server proxy, container tersebut dikelola sebagai satu entitas dan berbagi resource pod.
Pelajari lebih lanjut di dokumentasi Kubernetes:
Namespace
Namespace Kubernetes menyediakan mekanisme untuk mengelompokkan dan memilih resource lebih lanjut, seperti pod dan layanan, dalam suatu cluster. Misalnya, jika Anda memiliki beberapa tim aplikasi yang menjalankan workload di satu cluster.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi Namespace Kubernetes.
Pengontrol
Pengontrol Kubernetes melacak dan mengelola status cluster dan beban kerja Anda, berdasarkan status yang Anda tentukan (misalnya, "Saya ingin menjalankan tiga Pod ini di cluster ini, dengan container ini di setiap Pod"). Pengontrol yang berbeda melacak berbagai jenis resource Kubernetes, termasuk berikut ini:
Pengontrol Kubernetes melacak dan mengelola status cluster dan workload Anda, berdasarkan status yang Anda tentukan. Misalnya, Anda dapat menetapkan perilaku untuk cluster agar menjalankan tiga pod, dengan container yang ditetapkan di setiap pod. Pengontrol yang berbeda melacak berbagai jenis resource Kubernetes, termasuk berikut ini:
- Deployment: Resource kustom
Deploymentadalah objek Kubernetes yang merepresentasikan satu atau beberapa pod identik, yang disebut replika. Deployment menjalankan beberapa replika pod yang didistribusikan di antara node cluster. Deployment secara otomatis mengganti pod yang gagal atau tidak merespons. - StatefulSet: Resource kustom
StatefulSetseperti deployment, tetapi mempertahankan identitas unik yang persisten untuk setiap pod-nya.StatefulSetdapat berguna dalam aplikasi dengan status persisten, seperti aplikasi stateful. - DaemonSet: Resource kustom
DaemonSetmemungkinkan Anda menambahkan pod default ke beberapa atau semua node. Pod ini sering kali merupakan layanan pendukung untuk workload Anda, seperti daemon pengumpulan log atau daemon pemantauan. - ReplicaSet: Resource kustom
ReplicaSetadalah sekumpulan pod identik.ReplicaSetbiasanya dikelola sebagai bagian dari resourceDeployment.
Pelajari lebih lanjut di dokumentasi Kubernetes:
Layanan Kubernetes
Secara default, Anda tidak dapat mengontrol node cluster tempat pod berjalan, sehingga pod tidak memiliki alamat IP yang stabil. Untuk mendapatkan alamat IP aplikasi yang berjalan di Kubernetes, Anda harus menentukan abstraksi jaringan di atas pod-nya yang disebut Service Kubernetes.
Service Kubernetes menyediakan endpoint jaringan yang stabil untuk sekumpulan pod.
Ada beberapa
jenis layanan,
termasuk layanan LoadBalancer, yang mengekspos alamat IP eksternal sehingga
Anda dapat mengakses aplikasi dari luar cluster.
Kubernetes juga memiliki sistem DNS bawaan untuk resolusi alamat internal, yang menetapkan nama DNS, seperti helloserver.default.cluster.local ke layanan.
Hal ini memungkinkan pod dalam cluster menjangkau pod lain dalam cluster menggunakan
alamat yang stabil. Anda tidak dapat menggunakan nama DNS ini di luar cluster, seperti dari
gdcloud CLI.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi Layanan Kubernetes.
Penyimpanan
Jika aplikasi Anda perlu menyimpan data yang ada di luar masa aktif pod-nya, seperti dalam aplikasi stateful, Anda dapat menggunakan objek PersistentVolume Kubernetes untuk menyediakan penyimpanan ini. Anda juga dapat memilih untuk menggunakan
penyimpanan efemeral, yang akan dihapus saat pod yang sesuai dihentikan.
Pelajari lebih lanjut di dokumentasi Kubernetes:
Kontrol akses berbasis peran
Kubernetes menyertakan mekanisme role-based access control (RBAC) yang memungkinkan Anda membuat kebijakan otorisasi untuk mengakses cluster dan resourcenya. Saat menggunakan GDC, Anda akan sering menggunakan kombinasi RBAC Kubernetes dan Identity and Access Management (IAM) GDC untuk mengamankan aplikasi Anda.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi Kontrol akses berbasis peran Kubernetes.
Rekomendasi bacaan
Bagian ini menyediakan link ke referensi yang direkomendasikan untuk mempelajari lebih lanjut Kubernetes. Khususnya, Kubernetes.io, situs Kubernetes resmi, memiliki materi yang komprehensif dan andal tentang semua hal terkait Kubernetes.
Panduan dan tutorial eksternal
- Ringkasan Kubernetes: Ringkasan konseptual Kubernetes yang menyeluruh.
- Tutorial: Pelajari dasar-dasar Kubernetes: Pelajari dasar-dasar Kubernetes dengan contoh.
- Tutorial Kubernetes: Saat Anda siap untuk mempelajari lebih dari sekadar dasar-dasar, bagian dokumentasi Kubernetes ini menyediakan tutorial tentang berbagai topik Kubernetes, mulai dari aplikasi stateful hingga keamanan.
Dokumentasi referensi
- Glosarium Kubernetes: Daftar komprehensif dan standar terminologi Kubernetes. Jika Anda tidak yakin dengan istilah Kubernetes, lihat daftar istilah.