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

Last reviewed 2024-08-14 UTC

Arsitektur referensi ini memberikan solusi dengan ketersediaan tinggi dan skalabel yang menggunakan Mesh Layanan Cloud dan Gateway Envoy untuk mengelola lalu lintas jaringan pada aplikasi Windows yang berjalan di Google Kubernetes Engine (GKE). Dokumen ini menjelaskan cara mengelola lalu lintas jaringan dengan menggunakan layanan yang dapat merutekan traffic ke Pod dan 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 IT profesional yang bertanggung jawab untuk mendesain dan mengelola aplikasi Windows yang berjalan di GKE.

Arsitektur

Diagram berikut menunjukkan arsitektur untuk mengelola jaringan pada Windows aplikasi 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 kumpulan node Windows dan Linux.
  • Dua aplikasi Windows yang berjalan secara terpisah Pod GKE.
  • Cloud Service Mesh membuat dan mengelola rute traffic ke NEG untuk setiap Pod GKE. Setiap rute dipetakan ke sebuah scope spesifik. Yang scope secara unik mengidentifikasi gateway masuk Cloud Service Mesh.
  • Rute HTTP yang dipetakan ke layanan backend untuk dan Cloud Service Mesh.
  • Envoy pod container yang berfungsi sebagai Envoy Gateway ke cluster GKE.
  • Gateway Envoy yang berjalan pada node Linux. Gateway dikonfigurasi untuk mengarahkan traffic ke aplikasi Windows melalui layanan yang sesuai dengan aplikasi tersebut. Envoy dikonfigurasi untuk menggunakan scope parameter untuk memuat detail konfigurasi layanan Mesh Layanan Cloud.
  • Channel Load Balancer Aplikasi internal yang menghentikan lalu lintas SSL dan mengarahkan semua lalu lintas masuk eksternal ke gateway Envoy.

Produk yang digunakan

Arsitektur referensi ini menggunakan arsitektur referensi Google Cloud produk:

Produk Google Cloud

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

Produk pihak ketiga

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

Kasus penggunaan

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

Pengelolaan jaringan yang disederhanakan: Cloud Service Mesh dan Envoy memungkinkan pengelolaan jaringan yang disederhanakan melalui kontrol terpusat yang mengelola lalu lintas jaringan ke aplikasi. Aplikasi tersebut dapat pada aplikasi Linux atau Windows yang berjalan di GKE atau Compute Engine. Menggunakan skema manajemen jaringan yang disederhanakan ini mengurangi memerlukan konfigurasi manual.

Peningkatan skalabilitas dan ketersediaan: Untuk memenuhi permintaan Anda yang terus berubah, gunakan Gateway Cloud Service Mesh dan Envoy untuk menskalakan Linux dan Windows Anda menggunakan berbagai aplikasi obrolan. Anda juga dapat menggunakan gateway Envoy untuk menyediakan ketersediaan tinggi bagi aplikasi Anda dengan melakukan load balancing pada traffic di berbagai Pod.

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

Pengurangan biaya: Gateway Cloud Service Mesh dan Envoy dapat membantu mengurangi biaya pengelolaan lalu lintas jaringan untuk Linux dan Windows menggunakan berbagai aplikasi obrolan.

Pertimbangan desain

Bagian ini memberikan panduan untuk membantu Anda mengembangkan arsitektur yang sesuai kebutuhan khusus Anda untuk keamanan, keandalan, biaya, dan efisiensi.

Keamanan

  • Jaringan aman: Arsitektur ini menggunakan Load Balancer Aplikasi internal untuk mengenkripsi traffic masuk ke container Windows. Enkripsi saat transit membantu mencegah kebocoran data.
  • Penampung Windows: Penampung Windows membantu memberikan keamanan dan lingkungan terisolasi untuk aplikasi dalam container.

Keandalan

  • Load balancing: Arsitekturnya menggunakan beberapa lapisan Cloud Load Balancing untuk mendistribusikan traffic di seluruh gateway Envoy dan Windows container.
  • Fault tolerance: Arsitektur ini fault-tolerant dan tidak memiliki titik kegagalannya. Desain ini membantu memastikan bahwa desain itu selalu tersedia, meskipun satu atau lebih komponennya gagal.
  • Penskalaan otomatis: Arsitektur menggunakan penskalaan otomatis untuk otomatis menskalakan jumlah gateway Envoy dan container Windows berdasarkan memuat halaman. Penskalaan otomatis membantu memastikan bahwa gateway, dan aplikasi, dapat menangani lonjakan traffic tanpa mengalami masalah performa.
  • Monitoring: Arsitekturnya menggunakan Google Cloud Managed Service for Prometheus dan Cloud Operations untuk memantau kondisi gateway Envoy dan Container Windows. Pemantauan membantu mengidentifikasi masalah lebih awal dan yang berpotensi tidak mengganggu aplikasi Anda.

Pengoptimalan biaya

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

    • Penskalaan vertikal menyesuaikan permintaan dan batas container berdasarkan untuk penggunaan pelanggan.

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

  • Menggunakan gateway Cloud Service Mesh dan Envoy: Gateway Cloud Service Mesh dan Envoy dapat membantu Anda menghemat uang dengan mengarahkan lalu lintas data secara efisien ke aplikasi Windows Anda. Menggunakan lebih banyak perutean yang efisien dapat membantu mengurangi jumlah {i>bandwidth<i} yang harus Anda pembelian. Hal ini juga dapat membantu meningkatkan performa aplikasi tersebut.

  • Gunakan jaringan Virtual Private Cloud (VPC) bersama: Jaringan Virtual Private Cloud bersama memungkinkan Anda membagikan VPC tunggal di beberapa project. Berbagi dapat membantu Anda menghemat uang dengan mengurangi jumlah VPC yang perlu dibuat dan dikelola.

Efisiensi operasional

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

Deployment

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

Langkah selanjutnya

Kontributor

Penulis: Eitan Eibschutz | Konsultan Solusi Teknis untuk Staf

Kontributor lainnya: