Dokumen ini memberikan ringkasan tentang Private Service Connect di cluster Google Kubernetes Engine (GKE). Sebelum melanjutkan membaca, pastikan Anda sudah memahami jaringan VPC dan dasar-dasar jaringan seperti pemberian alamat IP.
Ringkasan
Private Service Connect (PSC) adalah bagian dari infrastruktur jaringan Google Cloud yang memungkinkan cluster GKE Anda menggunakan layanan yang dihosting di Google Cloud atau lingkungan lokal dengan aman dan secara pribadi, tanpa perlu mengekspos layanan tersebut secara publik. Dengan PSC, Google Cloud menetapkan alamat IP internal ke panel kontrol untuk meneruskan permintaan ke API pengelolaan cluster GKE, sehingga Anda dapat mengelola cluster tanpa traffic yang pernah melalui internet publik. PSC menyediakan framework yang konsisten yang membantu menghubungkan berbagai jaringan melalui pendekatan jaringan layanan, dan memungkinkan produsen dan konsumen layanan berkomunikasi menggunakan alamat IP internal di VPC.
Di cluster GKE yang menggunakan infrastruktur PSC, semua komunikasi antara node dan bidang kontrol cluster terjadi secara pribadi. Anda juga dapat mengisolasi cluster di tingkat bidang kontrol dan kumpulan node tanpa perlu mengelola konfigurasi peering VPC yang kompleks.
Manfaat cluster yang diaktifkan dengan Private Service Connect
Keamanan: PSC membuat koneksi pribadi antara node dan bidang kontrol cluster GKE Anda, sehingga traffic sepenuhnya tetap berada dalam jaringan Google dan tidak masuk ke internet publik. Hal ini akan meminimalkan risiko akses yang tidak sah.
Konektivitas yang disederhanakan: Untuk cluster PSC, Anda tidak perlu mengelola subnet tertentu untuk endpoint bidang kontrol. Endpoint PSC sepenuhnya terletak dalam jaringan cluster, sehingga tidak memerlukan konfigurasi jaringan yang kompleks.
Skalabilitas: Anda dapat membuat hingga 1.000 cluster yang diaktifkan dengan PSC untuk memenuhi persyaratan resource yang tinggi. Sebaliknya, Anda hanya dapat membuat maksimal 75 cluster per zona atau region untuk cluster yang menggunakan Peering Jaringan VPC.
Konfigurasi yang dapat disesuaikan: PSC memungkinkan Anda mengontrol isolasi bidang kontrol cluster, node pool, atau workload secara independen, sehingga cluster Anda lebih skalabel dan aman. Anda dapat mengonfigurasi campuran node pool pribadi dan publik di cluster.
Fleksibilitas: Setelah membuat cluster, Anda dapat mengubah setelan isolasi kapan saja. Anda dapat beralih antara akses publik dan pribadi ke bidang kontrol serta mengubah aksesibilitas node pool dan workload dari internet tanpa harus membuat cluster baru.
Batasan
Bidang kontrol memiliki endpoint internal dan endpoint eksternal. Endpoint internal bidang kontrol tidak mendukung alamat IP internal di URL untuk webhook apa pun yang Anda konfigurasikan. Jika memiliki webhook dengan alamat IP internal di URL, Anda dapat mengurangi ketidakcocokan ini dengan mengikuti langkah-langkah berikut:
Buat Layanan headless tanpa pemilih untuk mengelola endpoint secara manual tempat Layanan ini mengarahkan traffic. Contoh berikut menunjukkan Layanan dengan webhook yang memproses di port 3000:
apiVersion: v1 kind: Service metadata: name: <service-name> spec: clusterIP: None ports: - port: 3000 targetPort: 3000
Buat endpoint yang sesuai untuk tujuan yang diperlukan. Misalnya, jika webhook Anda menggunakan alamat IP internal
10.0.0.1
di URL, Anda dapat membuat endpoint berikut:apiVersion: v1 kind: Endpoints metadata: name: <service-name> subsets: - addresses: - ip: 10.0.0.1 ports: - port: 3000
Perbarui konfigurasi webhook: Dalam konfigurasi webhook, hapus URL dengan alamat IP internal dan tambahkan Layanan yang Anda buat di langkah pertama. Contoh:
... kind: ValidatingWebhookConfiguration ... webhooks: - name: <webhook-name> ... clientConfig: service: name: <service-name> namespace: <namespace> path: "/validate" port: 3000
Pada contoh sebelumnya, webhook memiliki jalur
/validate
dan memproses di port 3000.Verifikasi webhook Anda: Pastikan webhook Anda dapat terus menerima permintaan server API dan dapat menyetujui, menolak, atau mengubah permintaan berdasarkan logika kustom. Jika Anda mendapatkan error saat memverifikasi webhook, Anda mungkin perlu membuat sertifikat baru, lalu memperbarui konfigurasi webhook dengan detail sertifikat baru. Misalnya:
... kind: ValidatingWebhookConfiguration ... webhooks: - name: <webhook-name> ... clientConfig: ... caBundle: <new-certificate> ...
Arsitektur
Diagram berikut memberikan ringkasan arsitektur cluster yang menggunakan PSC:
Berikut adalah komponen inti cluster yang diaktifkan dengan PSC:
Bidang kontrol: Setiap cluster GKE memiliki server Kubernetes API yang dikelola oleh bidang kontrol. Bidang kontrol berjalan di virtual machine (VM) yang berada di jaringan VPC dalam project yang dikelola Google. Cluster regional memiliki beberapa replika bidang kontrol, yang masing-masing berjalan di VM-nya sendiri.
Bidang kontrol memiliki endpoint internal (endpoint Private Service Connect) untuk komunikasi cluster internal dan endpoint eksternal. Anda dapat memilih untuk menonaktifkan endpoint eksternal. Traffic antara node dan bidang kontrol dirutekan sepenuhnya menggunakan alamat IP internal. Untuk mempelajari konfigurasi cluster, lihat Memverifikasi konfigurasi bidang kontrol.
Jaringan VPC: Ini adalah jaringan virtual tempat Anda membuat subnet dengan rentang alamat IP internal khusus untuk node dan Pod cluster.
Endpoint Private Service Connect: Ini adalah endpoint internal di bidang kontrol cluster yang berada di jaringan VPC project Anda. Endpoint PSC berfungsi sebagai titik entri untuk mengakses bidang kontrol cluster.
Lampiran layanan: Lampiran layanan adalah resource yang membuat koneksi yang aman dan pribadi antara jaringan VPC Anda dan jaringan VPC produsen. Seperti yang ditunjukkan pada diagram sebelumnya, endpoint PSC mengakses lampiran layanan melalui koneksi pribadi dan memungkinkan traffic mengalir di antara node dan bidang kontrol.
Mengonfigurasi akses cluster
Anda memiliki beberapa opsi untuk mengonfigurasi akses panel kontrol dan akses node di cluster yang mengaktifkan PSC. Anda dapat mengubah konfigurasi ini kapan saja setelah pembuatan cluster. Untuk mengonfigurasi akses cluster, lihat Menyesuaikan isolasi jaringan.
Akses bidang kontrol
Akses bidang kontrol hanya menggunakan endpoint berbasis DNS (direkomendasikan). Anda dapat memberi otorisasi permintaan untuk mengakses bidang kontrol dengan membuat kebijakan izin IAM.
Mengakses bidang kontrol hanya menggunakan endpoint berbasis IP. Anda dapat memilih untuk menggunakan endpoint eksternal dan internal dari bidang kontrol, atau menonaktifkan endpoint eksternal untuk hanya mengizinkan akses dari alamat IP yang dicadangkan Google (untuk tujuan pengelolaan cluster) dan alamat IP internal cluster GKE.
Jika Anda menggunakan alamat IP, sebaiknya gunakan jaringan yang diizinkan untuk membatasi akses ke bidang kontrol cluster. Dengan jaringan yang diizinkan, Anda juga dapat memblokir akses ke panel kontrol dari VM Google Cloud, Cloud Run, atau fungsi Cloud Run yang bersumber dari IP eksternal Google Cloud.
Mengakses bidang kontrol dengan endpoint berbasis DNS dan endpoint berbasis IP.
Akses node cluster
Dengan cluster yang mengaktifkan PSC, Anda dapat mengonfigurasi cluster mode campuran. Anda dapat mengonfigurasi cluster agar memiliki node dengan akses internal atau eksternal. Anda juga dapat mengubah konfigurasi jaringan node bergantung pada jenis cluster yang Anda gunakan:
Untuk cluster Autopilot, Anda dapat mengonfigurasi beberapa workload untuk berjalan di node pribadi, dan workload lainnya untuk berjalan di node publik. Misalnya, Anda mungkin menjalankan campuran workload di cluster, di mana beberapa memerlukan akses internet dan beberapa tidak. Anda dapat men-deploy workload di node dengan alamat IP eksternal untuk memastikan bahwa hanya workload tersebut yang dapat diakses secara publik.
Untuk cluster Standar, Anda dapat menyediakan beberapa node dengan alamat IP internal, sementara node lain dapat menggunakan alamat IP eksternal.
Cluster dengan Private Service Connect
Untuk memeriksa apakah cluster Anda menggunakan Private Service Connect, jalankan perintah gcloud container clusters describe. Jika cluster Anda menggunakan Private Service Connect, resource privateClusterConfig
memiliki nilai berikut:
- Kolom
peeringName
kosong atau tidak ada. - Kolom
privateEndpoint
memiliki nilai yang ditetapkan.
Untuk mengaktifkan cluster dengan PSC, buat cluster pada versi 1.29 atau yang lebih baru. Jika tidak, untuk versi 1.28 dan yang lebih lama, buat cluster tanpa mengaktifkan node pribadi. Anda dapat memperbarui setelan ini dan mengaktifkan node pribadi setelah pembuatan cluster.
Langkah selanjutnya
- Pelajari cara menyesuaikan isolasi jaringan di GKE.