Mengelola dan menskalakan jaringan untuk aplikasi Windows yang berjalan di Kubernetes terkelola

Last reviewed 2024-08-14 UTC

Arsitektur referensi ini menyediakan solusi yang sangat tersedia dan skalabel yang menggunakan Cloud Service Mesh dan gateway Envoy untuk mengelola traffic jaringan bagi aplikasi Windows yang berjalan di Google Kubernetes Engine (GKE). Artikel ini menjelaskan cara mengelola traffic jaringan tersebut menggunakan layanan yang dapat merutekan traffic ke Pod dan ke proxy yang mematuhi xDS open source. Menggunakan arsitektur seperti ini dapat membantu mengurangi biaya dan meningkatkan pengelolaan jaringan.

Dokumen ini ditujukan untuk arsitek cloud, administrator jaringan, dan tenaga profesional IT yang bertanggung jawab merancang dan mengelola aplikasi Windows yang berjalan di GKE.

Arsitektur

Diagram berikut menunjukkan arsitektur untuk mengelola jaringan bagi aplikasi Windows yang berjalan di GKE menggunakan gateway Cloud Service Mesh dan Envoy:

Data mengalir melalui Load Balancer Aplikasi internal dan gateway Envoy.

Arsitektur ini mencakup komponen berikut:

  • Cluster GKE regional dengan node pool Windows dan Linux.
  • Dua aplikasi Windows yang berjalan di dua Pod GKE terpisah.
  • Cloud Service Mesh membuat dan mengelola rute traffic ke NEG untuk setiap Pod GKE. Setiap rute dipetakan ke scope tertentu. scope tersebut mengidentifikasi gateway masuk Cloud Service Mesh secara unik.
  • Rute HTTP yang dipetakan ke layanan backend untuk Cloud Service Mesh.
  • Pod penampung Envoy yang berfungsi sebagai Envoy Gateway ke cluster GKE.
  • Gateway Envoy yang berjalan di node Linux. Gateway dikonfigurasi untuk mengarahkan traffic ke aplikasi Windows melalui layanan yang sesuai dengan aplikasi tersebut. Envoy dikonfigurasi untuk menggunakan parameter scope untuk memuat detail konfigurasi layanan Cloud Service Mesh yang relevan.
  • Load Balancer Aplikasi internal yang menghentikan traffic SSL dan mengarahkan semua traffic masuk eksternal ke gateway Envoy.

Produk yang digunakan

Arsitektur referensi ini menggunakan produk Google Cloud dan pihak ketiga berikut:

Produk Google Cloud

  • Cloud Load Balancing: Portofolio load balancer global dan regional yang skalabel, berperforma tinggi, dan andal.
  • Google Kubernetes Engine (GKE): Layanan Kubernetes yang dapat Anda gunakan untuk men-deploy dan mengoperasikan aplikasi dalam container dalam skala besar menggunakan infrastruktur Google.
  • Cloud Service Mesh: Serangkaian alat yang membantu Anda memantau dan mengelola mesh layanan yang andal di infrastruktur lokal atau Google Cloud.

Produk pihak ketiga

  • Envoy Gateway: Mengelola proxy Envoy sebagai gateway aplikasi mandiri atau berbasis Kubernetes.
  • Gateway API: Project Kubernetes resmi yang berfokus pada pemilihan rute L4 dan L7 di Kubernetes.

Kasus penggunaan

Kasus penggunaan utama untuk arsitektur referensi ini adalah mengelola traffic jaringan untuk aplikasi Windows yang berjalan di GKE. Arsitektur ini memberikan manfaat berikut:

Pengelolaan jaringan yang disederhanakan: Cloud Service Mesh dan gateway Envoy menyediakan pengelolaan jaringan yang disederhanakan melalui bidang kontrol terpusat yang mengelola traffic jaringan ke aplikasi. Aplikasi ini dapat berupa aplikasi Linux atau Windows yang berjalan di GKE atau Compute Engine. Menggunakan skema pengelolaan jaringan yang disederhanakan ini akan mengurangi kebutuhan konfigurasi manual.

Skalabilitas dan ketersediaan yang ditingkatkan: Untuk memenuhi permintaan yang berubah, gunakan gateway Cloud Service Mesh dan Envoy untuk menskalakan aplikasi Linux dan Windows Anda. Anda juga dapat menggunakan gateway Envoy untuk memberikan ketersediaan tinggi bagi aplikasi dengan melakukan load balancing traffic di beberapa Pod.

Keamanan yang ditingkatkan: Gunakan gateway Envoy untuk menambahkan fitur keamanan ke aplikasi Linux dan Windows, seperti penghentian SSL, autentikasi, dan pembatasan kecepatan.

Pengurangan biaya: Cloud Service Mesh dan gateway Envoy dapat membantu mengurangi biaya pengelolaan traffic jaringan untuk aplikasi Linux dan Windows.

Pertimbangan desain

Bagian ini memberikan panduan untuk membantu Anda mengembangkan arsitektur yang memenuhi persyaratan spesifik Anda terkait keamanan, keandalan, biaya, dan efisiensi.

Keamanan

  • Jaringan aman: Arsitektur ini menggunakan Load Balancer Aplikasi internal untuk mengenkripsi traffic masuk ke penampung Windows. Enkripsi saat dalam pengiriman membantu mencegah kebocoran data.
  • Container Windows: Container Windows membantu menyediakan lingkungan yang aman dan terisolasi untuk aplikasi dalam container.

Keandalan

  • Load balancing: Arsitektur ini menggunakan beberapa lapisan Cloud Load Balancing untuk mendistribusikan traffic di seluruh gateway Envoy dan penampung Windows.
  • Fault tolerance: Arsitektur ini fault tolerant tanpa titik tunggal kegagalan. Desain ini membantu memastikan bahwa layanan tersebut selalu tersedia, meskipun satu atau beberapa komponen gagal.
  • Penskalaan otomatis: Arsitektur ini menggunakan penskalaan otomatis untuk secara otomatis menskalakan jumlah gateway Envoy dan penampung Windows berdasarkan beban. Penskalaan otomatis membantu memastikan bahwa gateway dan aplikasi dapat menangani lonjakan traffic tanpa mengalami masalah performa.
  • Pemantauan: Arsitektur ini menggunakan Google Cloud Managed Service for Prometheus dan Cloud Operations untuk memantau kondisi gateway Envoy dan penampung Windows. Pemantauan membantu Anda mengidentifikasi masalah lebih awal dan berpotensi mencegahnya mengganggu aplikasi Anda.

Pengoptimalan biaya

  • Pilih jenis instance yang tepat untuk workload Anda: Pertimbangkan faktor-faktor berikut saat memilih jenis instance:
    • Jumlah vCPU dan memori yang diperlukan aplikasi Anda
    • Beban traffic yang diperkirakan untuk aplikasi Anda
    • Kebutuhan pengguna untuk memiliki aplikasi dengan ketersediaan tinggi
  • Gunakan penskalaan otomatis: Penskalaan otomatis dapat membantu Anda menghemat biaya dengan menskalakan workload Windows secara vertikal dan horizontal secara otomatis.

    • Penskalaan vertikal menyesuaikan permintaan dan batas penampung sesuai dengan penggunaan pelanggan.

    • Penskalaan horizontal menambahkan atau menghapus Pod Kubernetes untuk memenuhi permintaan.

  • Gunakan Cloud Service Mesh dan gateway Envoy: Cloud Service Mesh dan gateway Envoy dapat membantu Anda menghemat biaya dengan me-route traffic ke aplikasi Windows secara efisien. Menggunakan perutean yang lebih efisien dapat membantu mengurangi jumlah bandwidth yang harus Anda beli. Hal ini juga dapat membantu meningkatkan performa aplikasi tersebut.

  • Menggunakan jaringan Virtual Private Cloud (VPC) bersama: Jaringan Virtual Private Cloud bersama memungkinkan Anda berbagi satu VPC di beberapa project. Berbagi dapat membantu Anda menghemat biaya dengan mengurangi jumlah VPC yang perlu dibuat dan dikelola.

Efisiensi operasional

  • Beberapa domain dengan satu load balancer internal: Arsitektur ini menggunakan Load Balancer Aplikasi internal untuk men-offload traffic SSL. Setiap proxy target HTTPS dapat mendukung beberapa sertifikat SSL (hingga maksimum yang didukung) untuk mengelola beberapa aplikasi dengan domain yang berbeda.
  • Infrastructure as Code (IaC): Untuk mengelola infrastruktur, arsitektur dapat di-deploy menggunakan IaC. IaC membantu memastikan bahwa infrastruktur Anda konsisten dan dapat diulang.

Deployment

Untuk men-deploy arsitektur ini, lihat Men-deploy aplikasi Windows yang berjalan di Kubernetes terkelola.

Langkah selanjutnya

Kontributor

Penulis: Eitan Eibschutz | Staff Technical Solutions Consultant

Kontributor lainnya: