Beranda Topics Jaringan Kubernetes Apa yang dimaksud dengan jaringan Kubernetes?
Jelajahi Layanan IBM Cloud Kubernetes
Berbagai bentuk jaringan bersama-sama

Diterbitkan: 21 November 2023
Kontributor: Stephanie Susnjara, Ian Smalley

Apa yang dimaksud dengan jaringan Kubernetes?

Jaringan Kubernetes menyediakan infrastruktur jaringan untuk memungkinkan komunikasi, skalabilitas, keamanan, dan akses eksternal untuk aplikasi yang dikontainerisasi. Jaringan ini kompleks dan melibatkan komunikasi antara semua komponen utama yang berada di dalam (misalnya, pod, node, kontainer, layanan) dan di luar (misalnya, lalu lintas eksternal) kluster Kubernetes.

Komponen-komponen ini bergantung pada empat metode jaringan yang berbeda untuk berkomunikasi:

1. Jaringan kontainer ke kontainer

2. Jaringan pod ke pod

3. Jaringan pod ke layanan

4. Jaringan eksternal-ke-layanan

Mengotomatiskan elastisitas kontainer yang didorong aplikasi

Untuk insinyur platform dan DevOps yang ingin mengoperasionalkan kecepatan ke pasar sambil memastikan kinerja aplikasi.

Konten terkait

Berlangganan buletin IBM

Apa itu Kubernetes?

Nama Kubernetes berasal dari bahasa Yunani, yang berarti juru mudi atau pilot. Berdasarkan Borg, platform orkestrasi kontainer internal Google, Kubernetes diperkenalkan ke publik sebagai alat sumber terbuka pada tahun 2014. Pada tahun yang sama, Google menyumbangkan Kubernetes ke Cloud Native Computing Foundation (tautan berada di luar ibm.com), sebuah pusat komputasi awan yang bersifat sumber terbuka dan netral terhadap vendor. Sejak saat itu, Kubernetes telah menjadi alat orkestrasi kontainer yang paling banyak digunakan untuk menjalankan beban kerja berbasis kontainer di seluruh dunia.

Kubernetes, disebut juga sebagai "k8s" atau "kube", didesain secara eksplisit untuk mengotomatiskan pengelolaan kontainer, yaitu unit standar perangkat lunak yang mengemas kode dan semua ketergantungannya. Alat orkestrasi ini sangat dihargai karena dapat berjalan dengan cepat dan andal di lingkungan infrastruktur apa pun, baik on premises, cloud pribadi, cloud publik, maupun cloud hibrida.

Tidak seperti mesin virtual (VM) yang memvirtualisasikan perangkat keras fisik, kontainer memvirtualisasikan sistem operasi (seperti Linux atau Windows). Setiap kontainer hanya menampung pustaka dan ketergantungan aplikasi. Karena kontainer berbagi kernel sistem operasi yang sama dengan host, kontainer dianggap ringan, cepat, dan portabel.

Kubernetes dan ekosistem layanan, dukungan, dan alatnya telah menjadi fondasi untuk infrastruktur cloud modern dan modernisasi aplikasi. Semua penyedia cloud utama, termasuk Amazon Web Services (AWS), Google, Microsoft, IBM, dan Red Hat, mengintegrasikan Kubernetes dalam platform cloud mereka untuk meningkatkan kemampuan Platform-as-a-Service (PaaS ) dan Infrastructure-as-a-Service (IaaS ).

Arsitektur Kubernetes

Komponen dasar berikut terdiri dari arsitektur Kubernetes: 

Kluster

Kluster Kubernetes adalah sekumpulan mesin fisik atau virtual (node) yang bekerja sama untuk menjalankan aplikasi dalam kontainer. Kluster membentuk fondasi arsitektur Kubernetes.

Node induk

Node master mewakili satu host komputasi, baik mesin virtual maupun fisik. Mereka menjadi host bagi komponen bidang kontrol Kubernetes dan bertanggung jawab atas penjadwalan dan penskalaan aplikasi. Dengan mengelola semua sumber daya komputasi, jaringan, dan penyimpanan dalam klaster Kubernetes, node master memastikan aplikasi dan layanan yang terkontainerisasi diterapkan secara merata ke node pekerja dalam klaster.

Node pekerja

Node pekerja bertanggung jawab untuk menjalankan kontainer dan melakukan pekerjaan apa pun yang ditugaskan oleh node master. Node juga menjadi host kontainer aplikasi, yang dikelompokkan sebagai pod.

Pod

Pod adalah kelompok dari satu atau lebih kontainer (seperti Linux atau Docker) yang berbagi sumber daya komputasi dan jaringan yang sama. Mereka adalah unit penerapan klaster yang juga berfungsi sebagai unit skalabilitas. Misalnya, jika kontainer dalam pod mengalami volume lalu lintas yang padat, Kubernetes dapat mereplikasi pod tersebut ke node lain dalam klaster. Kubernetes juga dapat mematikan pod jika volume lalu lintas menurun.

Komponen tambahan Kubernetes mencakup hal berikut:

  • Penerapan: Penerapan di Kubernetes mengelola sekumpulan pod untuk menjalankan beban kerja aplikasi. Penerapan mengidentifikasi berapa banyak replika pod yang harus dijalankan pada klaster. Jika sebuah pod gagal, penerapan akan membuat pod baru. Fitur penting ini membantu menskalakan jumlah pod replika, pembaruan kode roll, dan menjaga ketersediaan. Penerapan dilakukan dengan menggunakan kubectl, alat baris perintah khusus Kubernetes. 
  • Layanan: Layanan Kubernetes adalah lapisan abstraksi yang mendefinisikan sekumpulan pod secara logis dan cara mengaksesnya. Sebuah layanan mengekspos aplikasi jaringan yang berjalan pada satu atau beberapa pod dalam sebuah klaster. Ini menyediakan cara abstrak untuk memuat pod keseimbangan. 
  • Server API: Server API di Kubernetes mengekspos API Kubernetes (antarmuka yang digunakan untuk mengelola, membuat, dan mengonfigurasi kluster Kubernetes) dan berfungsi sebagai titik masuk untuk semua perintah dan kueri.
Istilah dan konsep jaringan

Jaringan komputer dasar melibatkan menghubungkan dua atau lebih perangkat komputasi untuk berbagi data dan bertukar sumber daya, baik dengan kabel atau WiFi.

Dalam jaringan fisik, server fisik terhubung ke peralatan jaringan fisik - sakelar, router, dan kabel ethernet untuk terhubung ke Internet. 

Dalam jaringan virtual, jaringan yang ditentukan oleh perangkat lunak (SDN), komponen seperti perangkat ethernet virtual dan antarmuka virtual diinstal pada bare metal server atau mesin virtual untuk terhubung ke Internet. Penerapan Kubernetes mengandalkan SDN untuk mengonfigurasi dan mengelola komunikasi jaringan di seluruh kluster.

Sebelum mempelajari lebih dalam tentang jaringan Kubernetes, ada baiknya meninjau istilah-istilah jaringan dasar:

  • Host jaringan: Host jaringan adalah komputer apa pun yang tersambung ke jaringan yang menyediakan informasi, aplikasi, atau layanan ke host atau simpul lain di jaringan.
  • Alamat IP (Internet Protocol): Alamat IP adalah nomor unik yang ditetapkan untuk setiap perangkat yang tersambung ke jaringan yang menggunakan Internet Protocol untuk komunikasi. Alamat ini mengidentifikasi jaringan host perangkat dan lokasi perangkat lokasi perangkat pada jaringan host.
  • Localhost: Localhost adalah nama host default yang bertindak sebagai alamat IP pribadi, yang menunjuk langsung ke komputer atau perangkat yang digunakan.
  • Port: Port mengidentifikasi koneksi spesifik antara perangkat jaringan. Satu angka mengidentifikasi setiap port. Komputer menggunakan nomor port untuk menentukan aplikasi, layanan, atau proses mana yang harus menerima pesan tertentu
  • NAT (penerjemahan alamat jaringan): NAT mengubah alamat internal atau pribadi menjadi alamat IP publik atau yang dapat dirutekan secara global, sehingga memungkinkan akses internet yang aman. NAT memungkinkan satu alamat IP yang unik untuk mewakili seluruh kelompok perangkat komputasi.
  • Agen node: Agen node adalah agen administratif yang memantau server aplikasi pada sistem host dan merutekan permintaan administratif ke server.
  • Namespace jaringan: Namespace jaringan adalah kumpulan antarmuka jaringan dan instruksi tabel perutean yang menyediakan isolasi antar perangkat jaringan.
  • Proksi/server proksi: Proksi menyediakan pintu gerbang antara pengguna dan Internet. 
Bagaimana cara kerja jaringan Kubernetes?

Kubernetes dibuat untuk menjalankan sistem terdistribusi dengan bidang jaringan yang tersebar di sekelompok mesin. Selain menyediakan interkonektivitas antar komponen, jaringan kluster Kubernetes menciptakan lingkungan yang mulus di mana data dapat bergerak dengan bebas dan efisien melalui jaringan yang ditentukan oleh perangkat lunak.

Fitur lain yang berbeda dari jaringan Kubernetes adalah struktur jaringannya yang datar, yang berarti semua komponen bisa terhubung tanpa bergantung pada perangkat keras lain. Di Kubernetes, setiap pod dalam klaster dapat berkomunikasi dengan setiap pod lainnya, apa pun node yang dijalankannya. Jaringan datar menyediakan cara yang efisien untuk berbagi sumber daya dan menghilangkan kebutuhan akan alokasi port yang dinamis.

Secara keseluruhan, jaringan Kubernetes mengabstraksi kompleksitas, sehingga pengembang dan operator dapat fokus pada membangun dan memelihara aplikasi daripada berurusan dengan konfigurasi jaringan yang rumit.

Model jaringan Kubernetes

Kubernetes menyediakan model jaringan untuk membantu mengatasi tantangan dalam mengatur aplikasi yang terkontainerisasi di lingkungan terdistribusi. Runtime kontainer pada setiap node mengimplementasikan model jaringan dan mengikuti aturan berikut:

  • Setiap pod memiliki alamat IP-nya sendiri, yang dapat dirutekan di dalam klaster. Fitur ini meniadakan kebutuhan untuk membuat tautan antara pod dan port pemetaan.
  • Karena setiap pod memiliki alamat IP sendiri, NAT tidak diperlukan. Semua pod dapat berkomunikasi dengan semua pod lain dalam kluster tanpa NAT.
  • Agen pada node (seperti kubelet—agen node utama yang berjalan pada setiap node) dapat berkomunikasi dengan semua pod pada node tertentu. 

Model jaringan Kubernetes berlaku untuk empat jenis dasar komunikasi Kubernetes:

1. Jaringan kontainer ke kontainer

Kontainer adalah unit terkecil dalam jaringan Kubernetes. Dalam konfigurasi jaringan dasar, kontainer berkomunikasi dalam satu pod melalui localhost. Komunikasi ini dapat terjadi karena kontainer dalam pod yang sama berbagi ruang nama jaringan yang sama, yang mencakup sumber daya jaringan seperti penyimpanan, alamat IP, dan ruang port.

2. Jaringan pod ke pod

Komunikasi pod ke pod mencakup komunikasi antara pod pada node yang sama serta komunikasi antara pod pada node yang berbeda. Setiap pod dalam klaster Kubernetes memiliki alamat IP uniknya sendiri, sehingga memungkinkan komunikasi langsung antar pod terlepas dari node tempat pod tersebut berada. Selain itu, setiap klaster Kubernetes secara otomatis menyediakan DNS service (layanan sistem nama domain) sebagai tambahan untuk alamat IP pod. DNS service di mana nama-nama ditetapkan ke pod (dan layanan) menciptakan nama yang mudah dibaca oleh administrator, menyediakan mekanisme yang ringan untuk penemuan layanan.

3. Jaringan pod ke layanan

Layanan di Kubernetes adalah abstraksi yang mendefinisikan sekumpulan pod secara logis dan memungkinkan pemaparan lalu lintas eksternal, penyeimbangan beban, dan penemuan layanan ke pod-pod tersebut. Layanan memfasilitasi komunikasi pod-ke-layanan dan eksternal-ke-layanan.

Menurut model jaringan Kubernetes, alamat IP pod bersifat sementara. Oleh karena itu, jika sebuah pod mengalami kerusakan atau dihapus dan pod baru dibuat sebagai gantinya, pod baru kemungkinan besar akan menerima alamat IP baru.

Dalam komunikasi pod ke layanan, ClusterIP adalah jenis layanan yang menyediakan alamat IP virtual yang stabil untuk sekumpulan pod. IP internal ini hanya dapat dijangkau di dalam klaster dan dapat digunakan untuk komunikasi internal antara pod dan layanan.

Kube-proxy, yang diinstal pada setiap node dalam kluster, memelihara aturan jaringan pada host dan memantau perubahan dalam layanan dan pod. Saat pod dibuat atau dihancurkan, kube-proxy memperbarui iptables (program utilitas yang digunakan untuk membuat aturan pada firewall kernel Linux untuk merutekan lalu lintas) untuk mencerminkan perubahan tersebut sehingga lalu lintas yang dikirim ke IP layanan dirutekan dengan benar.

4. Jaringan eksternal-ke-layanan

Jaringan eksternal-ke-layanan mengacu pada pemaparan dan pengaksesan layanan, seperti layanan eksternal atau database, dari luar kluster Kubernetes. 

Kubernetes menyediakan beberapa layanan untuk memfasilitasi lalu lintas eksternal ke dalam klaster:

  • ClusterIP: Sementara ClusterIP adalah layanan Kubernetes default untuk komunikasi internal, lalu lintas eksternal dapat mengaksesnya melalui kube-proxy. ClusterIP dapat membantu ketika mengakses layanan pada laptop atau melakukan debug pada layanan.
  • NodePort: NodePort mengekspos layanan pada port statis di setiap IP node, sehingga layanan dapat diakses di luar kluster. NodePort adalah cara paling dasar untuk melakukan jaringan eksternal-ke-layanan dan sering digunakan untuk tujuan pengujian, seperti pengujian akses publik ke aplikasi.
  • LoadBalancer: Standar untuk jaringan layanan eksternal, LoadBalancer mengekspos layanan secara eksternal menggunakan penyeimbang beban penyedia cloud dan memberikan alamat IP publik pada layanan tersebut. Lalu lintas dari penyeimbang beban eksternal kemudian diarahkan ke pod backend.
  • ExternalName: Layanan nama eksternal memungkinkan akses ke layanan eksternal dengan nama DNS tanpa mengeksposnya di kluster DNS. Jenis layanan ini membantu menyediakan nama DNS yang stabil untuk layanan eksternal, seperti layanan pesan yang tidak dihosting di dalam kluster. 
  • Ingress: Kubernetes Ingress adalah kumpulan aturan perutean seputar akses eksternal ke layanan dalam kluster. Pengontrol Ingress adalah penyeimbang beban yang bertindak sebagai jembatan jaringan antara layanan Kubernetes dan layanan eksternal. 
Kebijakan jaringan Kubernetes

Kebijakan jaringan Kubernetes adalah konstruksi aplikasi yang memainkan peran penting dalam jaringan Kubernetes. Kebijakan ini memungkinkan administrator dan pengembang untuk menetapkan aturan yang menentukan bagaimana pod dapat berkomunikasi satu sama lain dan titik akhir jaringan lainnya. Kebijakan jaringan diterapkan menggunakan API Kebijakan Jaringan Kubernetes dan terdiri dari komponen dasar berikut: 

  • Pemilih pod: Pemilih pod menentukan pod mana yang berlaku untuk kebijakan berdasarkan label dan pemilih.
  • Ingress: Ingress mendefinisikan aturan untuk lalu lintas yang masuk ke pod
  • Egress: Egress mendefinisikan aturan untuk lalu lintas keluar dari pod.

Kebijakan jaringan Kubernetes membantu mendefinisikan dan mengelola kebijakan keamanan dengan menentukan aturan yang mengontrol pod mana yang dapat berkomunikasi satu sama lain, sehingga mencegah akses yang tidak sah dan mencegah serangan berbahaya. Kebijakan jaringan juga memastikan isolasi antara pod dan layanan sehingga hanya pod atau layanan tersebut yang dapat berkomunikasi dengan sekumpulan rekan yang diizinkan. Misalnya, isolasi sangat penting untuk situasi multi-tenancy ketika DevOps atau tim lain berbagi klaster Kubernetes yang sama namun mengerjakan proyek yang berbeda.

Untuk perusahaan dengan persyaratan kepatuhan khusus, kebijakan jaringan membantu menentukan dan menerapkan kontrol akses jaringan. Hal ini membantu memenuhi standar peraturan dan memastikan klaster mematuhi kebijakan organisasi.

Antarmuka Jaringan Kontainer (CNI) dan plug-in jaringan

Antarmuka Jaringan Kontainer (CNI) adalah fitur penting lainnya yang terkait dengan jaringan Kubernetes. Dibuat dan dikelola oleh Cloud Native Computing Foundation dan digunakan oleh Kubernetes dan runtime kontainer lainnya, termasuk RedHat OpenShift® dan Apache Mesos, CNI merupakan spesifikasi standar dan kumpulan API yang menentukan bagaimana plug-in jaringan memungkinkan jaringan kontainer. Plug-in CNI dapat menetapkan alamat IP, membuat namespace jaringan, mengatur rute jaringan, dan seterusnya untuk memungkinkan komunikasi pod ke pod, baik di dalam node yang sama maupun di seluruh node.

Meskipun Kubernetes menyediakan CNI default, banyak plug-in CNI pihak ketiga, termasuk Calico, Flannel, dan Weave, dirancang untuk menangani konfigurasi dan keamanan dalam lingkungan jaringan berbasis kontainer. Meskipun masing-masing mungkin memiliki fitur dan pendekatan yang berbeda terhadap jaringan, seperti jaringan hamparan atau perutean langsung, semuanya mematuhi spesifikasi CNI yang kompatibel dengan Kubernetes. 

Tutorial kubernetes

Jika Anda ingin mulai bekerja dengan Kubernetes atau ingin meningkatkan kemampuan Anda yang sudah ada dengan Kubernetes dan alat ekosistem Kubernetes, cobalah salah satu dari tutorial berikut ini.

Tutorial Kubernetes: Lab praktik dengan sertifikasi

Pelatihan berbasis browser interaktif untuk menerapkan dan mengoperasikan klaster pada IBM Cloud Kubernetes Service.Tidak perlu unduhan atau konfigurasi.

8 kiat dan trik Kubernetes Tutorial Kubernetes di IBM Developer Menerapkan aplikasi layanan mikro di IBM Cloud dengan menggunakan Kubernetes
Solusi terkait
IBM Cloud Kubernetes Service

Menerapkan kluster yang kaya keamanan dan sangat tersedia di pengalaman Kubernetes asli.

Jelajahi Layanan IBM Cloud Kubernetes

Red Hat OpenShift® on IBM Cloud®

Red Hat OpenShift on IBM Cloud menawarkan cara yang cepat dan aman bagi para pengembang untuk mengkontainerisasi dan menerapkan beban kerja perusahaan dalam klaster Kubernetes.

Jelajahi Red Hat OpenShift on IBM Cloud

IBM Cloud® Code Engine

Platform tanpa server yang dikelola sepenuhnya, IBM Cloud Code Engine memungkinkan Anda menjalankan kontainer, kode aplikasi, atau pekerjaan batch pada runtime kontainer yang dikelola sepenuhnya.

Jelajahi IBM Cloud Code Engine
Sumber daya Pelatihan IBM Cloud untuk pengembang

Membangun keterampilan Kubernetes melalui kursus yang terdapat dalam sertifikasi IBM Cloud Professional Developer.

Pertunjukan harus terus berlanjut

Para siswa memamerkan karya seni mereka bersama Red Hat® OpenShift® on IBM Cloud®.

Kontainer di perusahaan

Kontainer adalah bagian dari strategi hybrid cloud yang memungkinkan Anda membangun dan mengelola beban kerja dari mana saja.

Apa itu Kubernetes?

Kubernetes adalah platform orkestrasi kontainer untuk menjadwalkan dan mengotomatiskan penerapan, pengelolaan, dan penskalaan aplikasi dalam kontainer.

Apa yang dimaksud dengan kontainer?

Kontainer adalah unit perangkat lunak yang dapat dieksekusi di mana kode aplikasi dikemas bersama dengan pustaka dan dependensinya, dengan cara yang umum sehingga kode tersebut dapat dijalankan di mana saja.

Apa yang dimaksud dengan orkestrasi kontainer?

Orkestrasi kontainer mengotomatiskan dan menyederhanakan penyediaan, serta penerapan dan pengelolaan aplikasi dalam kontainer.

Ambil langkah selanjutnya

Lihat IBM Cloud Kubernetes Service dan dapatkan kluster tanpa biaya. Anda hanya perlu membuat akun IBM Cloud gratis, dan Anda bisa mendapatkan sebuah kluster untuk dicoba selama 30 hari. Ingin tahu lebih banyak tentang opsi harga? Konfigurasikan, beri harga, dan kutip kluster Kubernetes Anda.

Dapatkan klaster tanpa biaya Lihat opsi harga