Mengonfigurasi jaringan untuk Managed Service for Apache Kafka

Klien dapat terhubung ke cluster Google Cloud Managed Service untuk Apache Kafka dari jaringan Virtual Private Cloud (VPC) mana pun di project Google Cloud Anda. Anda juga dapat mengaktifkan akses dari rentang IP tepercaya melalui internet publik.

Halaman ini menjelaskan cara jaringan dikonfigurasi di Managed Service untuk Apache Kafka, cara mengaktifkan koneksi antara klien Kafka dan cluster Anda, serta cara menghubungkan klien dan cluster secara pribadi di berbagai project.

Jaringan VPC adalah versi virtual dari jaringan fisik, yang diimplementasikan di dalam Google Cloud. Jaringan ini menyediakan konektivitas jaringan pribadi yang aman untuk instance VM, workload container, dan resource lainnya. Untuk mengetahui informasi selengkapnya, lihat Ringkasan jaringan VPC.

Ringkasan

Saat Anda membuat cluster, layanan akan menempatkan broker cluster dan endpoint jaringan di jaringan VPC dalam project yang dikelola Google. Project ini disebut project tenant, dan jaringan ini disebut jaringan tenant. Sebaliknya, resource, aplikasi klien, dan jaringan VPC klien berada di project Anda sendiri, yang disebut project konsumen. Setiap cluster Managed Service untuk Apache Kafka memiliki jaringan tenant terisolasi sendiri.

Jaringan VPC dibagi menjadi partisi yang disebut subnetwork (subnet). Setiap subnet menentukan rentang alamat IP di region tertentu dari jaringan cloud Anda. Agar aplikasi klien dapat berkomunikasi dengan cluster, Anda harus menghubungkan subnet dalam jaringan VPC ke jaringan tenant, atau mengaktifkan akses cluster publik untuk terhubung melalui internet publik.

Diagram berikut menunjukkan dua Google Cloud project, project-1 dan project-2. Cluster Managed Service untuk Apache Kafka terletak di project-1.

Cluster Managed Service untuk Apache Kafka dengan tiga subnet yang terhubung

Subnet berikut terhubung ke cluster:

  • subnet-1, di jaringan VPC vpc-1 di project-1.
  • subnet-2, di jaringan VPC vpc-2 di project-1.
  • subnet-3, di jaringan VPC vpc-3 di project-2.

Menghubungkan subnet ke cluster

Saat pertama kali membuat cluster Managed Service untuk Apache Kafka, Anda harus menentukan setidaknya satu subnet. Nanti, Anda dapat memperbarui cluster untuk menambahkan atau menghapus subnet.

Subnet yang terhubung dapat berada di project konsumen yang sama dengan cluster atau project konsumen yang berbeda. Aplikasi klien di region mana pun dalam jaringan VPC yang terhubung dapat terhubung ke cluster. Untuk mengetahui informasi selengkapnya tentang lokasi dan jumlah subnet, lihat Batasan.

Untuk mengetahui informasi selengkapnya tentang cara melihat subnetwork yang terhubung, lihat Melihat cluster.

Entri DNS cluster

Saat Anda menghubungkan subnet ke cluster, layanan akan membuat entri DNS dalam jaringan subnet tersebut untuk alamat bootstrap dan broker cluster. Klien Kafka menggunakan alamat bootstrap untuk menemukan broker dan membuat koneksi. Saat server bootstrap mengalihkan klien ke broker tertentu, server tersebut menggunakan URL broker, bukan alamat IP.

URL bootstrap dan broker ditetapkan untuk masa aktif cluster, tetapi format URL mungkin berbeda untuk cluster yang berbeda. Untuk mendapatkan alamat bootstrap cluster's, lihat Melihat alamat bootstrap cluster's.

Nama DNS sama di semua subnet yang terhubung, meskipun sesuai dengan alamat IP yang berbeda di setiap subnet. Karena nama DNS konsisten, semua aplikasi klien Kafka Anda dapat menggunakan alamat bootstrap yang sama.

Untuk contoh aplikasi klien yang terhubung ke Managed Service untuk Apache Kafka, lihat tutorial berikut:

Pengukuran subnet

Saat Anda menambahkan subnet ke cluster, subnet harus memiliki IP alamat yang cukup. Setiap subnet memerlukan satu alamat IP untuk setiap broker Kafka, ditambah satu alamat IP untuk alamat bootstrap. Ukuran cluster minimum untuk Managed Service untuk Apache Kafka memiliki tiga broker, sehingga setiap subnet memerlukan setidaknya empat alamat IP yang dapat digunakan, termasuk alamat bootstrap.

Jika cluster Anda memiliki lebih dari 45 vCPU, cluster tersebut akan memiliki satu broker untuk setiap 15 vCPU. Dalam hal ini, hitung jumlah minimum alamat IP untuk setiap subnet sebagai berikut:

  1. Bagi jumlah vCPU dengan 15.
  2. Bulatkan ke bilangan bulat terdekat.
  3. Tambahkan 1 untuk memperhitungkan alamat bootstrap.

Misalnya, cluster dengan 60 vCPU memerlukan setidaknya (60/15 + 1) = 5 alamat IP yang dapat digunakan.

Google dapat mengubah rasio broker ke vCPU. Untuk mengakomodasi perubahan apa pun, sebaiknya alokasikan tiga kali jumlah alamat IP yang dihitung pada langkah sebelumnya.

Saat Anda merencanakan ukuran subnet, dasarkan perhitungan pada ukuran maksimum yang diharapkan untuk menskalakan cluster.

Jika Anda berencana menggunakan Kafka Connect, maka pertimbangkan juga persyaratan subnet untuk cluster Connect. Untuk mengetahui informasi selengkapnya, lihat subnet worker.

Rentang IP publik yang digunakan secara pribadi

Anda dapat menghubungkan cluster ke subnet yang menggunakan ruang alamat non-RFC 1918. Rentang alamat IP tersebut disebut rentang IP publik yang digunakan secara pribadi (PUPI).

Anda tidak memerlukan konfigurasi tambahan untuk terhubung ke subnet PUPI. Subnet PUPI harus menggunakan rentang IPv4 yang valid dan bukan rentang subnet IPv4 yang dilarang.

Menghubungkan klien dan cluster secara pribadi di berbagai project

Jika ingin menghubungkan klien Kafka secara pribadi di berbagai Google Cloud project ke cluster Anda, Anda dapat menggunakan salah satu metode berikut:

Bagian berikut menjelaskan opsi ini.

Menghubungkan cluster di berbagai project

Anda dapat menghubungkan subnet dari project lain ke cluster Anda. Untuk mengaktifkan akses lintas project, Anda harus memberikan izin ke akun layanan yang dikelola Google yang terkait dengan cluster. Untuk setiap project tempat Anda ingin klien Kafka mengakses cluster, akun layanan harus memiliki peran IAM Managed Kafka Service Agent di project tersebut. Peran ini memungkinkan cluster mengakses Google Cloud resource, sehingga dapat membuat resource jaringan dan entri DNS

Misalnya, jika project-1 berisi cluster, dan Anda ingin klien di project-2 mengakses cluster, berikan peran Managed Kafka Service Agent ke akun layanan Managed Kafka untuk project-1 di project-2. Kemudian hubungkan subnet dari project-2 ke cluster, seperti yang dijelaskan di Menghubungkan subnet ke cluster.

Untuk memberikan peran yang diperlukan, lakukan langkah-langkah berikut:

Konsol

  1. Tentukan Google Cloud project tempat Anda ingin klien Kafka mengakses cluster Managed Service untuk Apache Kafka.

  2. Untuk setiap project, di Google Cloud konsol, buka halaman IAM untuk project tersebut:

    Buka IAM

  3. Klik Grant access.

  4. Di kolom New principals, masukkan hal berikut:

    service-CLUSTER_PROJECT_NUMBER@gcp-sa-managedkafka.iam.gserviceaccount.com
    

    Ganti CLUSTER_PROJECT_NUMBER dengan nomor project dari project yang berisi cluster Managed Service untuk Apache Kafka.

  5. Klik Add roles.

  6. Di kolom Search for roles, masukkan Managed Kafka Service Agent. Nama agen layanan akan muncul di hasil penelusuran.

  7. Di hasil penelusuran, pilih Managed Kafka Service Agent.

  8. Klik Apply.

  9. Klik Save.

gcloud

  1. Tentukan Google Cloud project tempat Anda ingin klien Kafka mengakses cluster Managed Service untuk Apache Kafka.

  2. Untuk setiap project, jalankan perintah gcloud projects add-iam-policy-binding:

    gcloud projects add-iam-policy-binding CLIENT_PROJECT_ID \
        --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@gcp-sa-managedkafka.iam.gserviceaccount.com \
        --role=roles/managedkafka.serviceAgent
    

    Ganti kode berikut:

    • CLIENT_PROJECT_ID: nama project yang berisi jaringan VPC yang akan dihubungkan
    • CLUSTER_PROJECT_NUMBER: nomor projectdari project yang berisi cluster Managed Service untuk Apache Kafka

Menggunakan VPC Bersama untuk menghubungkan project

VPC Bersama memungkinkan organisasi menghubungkan resource dari beberapa project ke jaringan VPC umum. Untuk menggunakan VPC Bersama dengan Managed Service untuk Apache Kafka, lakukan langkah-langkah berikut:

  1. Buat cluster Managed Service untuk Apache Kafka.

  2. Sediakan VPC Bersama.

  3. Berikan peran yang diperlukan ke akun layanan Managed Kafka di project host VPC Bersama, seperti yang dijelaskan di bagian sebelumnya.

  4. Hubungkan cluster Managed Service untuk Apache Kafka ke subnet di jaringan VPC Bersama.

Klien di project host VPC Bersama atau di project layanan dapat terhubung ke cluster.

Untuk mengetahui informasi tentang kapan harus menggunakan VPC Bersama dalam arsitektur jaringan Anda, lihat Praktik terbaik dan arsitektur referensi untuk desain VPC.

Menghubungkan klien ke cluster publik

Jika memiliki aplikasi klien di luar jaringan VPC, Anda dapat mengaktifkan akses publik ke cluster. Cluster publik masih memerlukan subnet yang terhubung. Namun, Anda tidak perlu mengirim traffic melalui cluster tersebut.

Saat Anda mengaktifkan fitur cluster publik, layanan akan menyediakan alamat IPv4 eksternal untuk endpoint broker dan bootstrap cluster. Layanan ini juga membuat entri DNS cluster dapat di-resolve secara publik ke alamat IP publik ini. Artinya, klien eksternal dapat menggunakan alamat bootstrap yang sama untuk menemukan broker dan membuat koneksi. Implementasi ini menggunakan DNS horizon terpisah. Klien di jaringan VPC yang berisi subnet yang terhubung akan terus me-resolve endpoint pribadi, sedangkan klien di jaringan lain me-resolve endpoint publik. Mengaktifkan fitur cluster publik tidak akan membuat resource tambahan di project konsumen Anda.

Saat Anda mengaktifkan fitur cluster publik, Anda harus menyediakan satu atau beberapa rentang IP sumber yang diizinkan. Untuk mengetahui informasi selengkapnya tentang ukuran dan batas rentang yang diizinkan, lihat Cluster publik atau Batasan.

Anda dapat menambahkan atau menghapus rentang IP sumber yang diizinkan dengan memperbarui cluster. Managed Service untuk Apache Kafka menggunakan Cloud Next Generation Firewall untuk membatasi akses ke cluster publik. Menghapus rentang IP sumber yang diizinkan hanya berlaku untuk koneksi baru (lihat efek pada traffic yang ada).

Layanan ini mengambil beberapa tindakan pencegahan untuk membantu memastikan keamanan cluster publik Anda. Semua koneksi dienkripsi saat transit menggunakan TLS, dan semua koneksi memerlukan autentikasi. Anda harus melakukan autentikasi menggunakan identitas IAM dengan SASL atau sertifikat klien dengan mTLS. Akses anonim tidak diizinkan. Untuk mengetahui informasi selengkapnya, lihat Jenis autentikasi untuk broker Kafka.

Administrator keamanan dapat melarang cluster publik di project Anda dengan batasan kebijakan organisasi kustom. Untuk mengetahui informasi selengkapnya tentang kebijakan organisasi, lihat Membuat batasan kustom.

Mengonfigurasi firewall egress dari jaringan eksternal

Dalam beberapa skenario, Anda mungkin perlu menentukan alamat IPv4 eksternal dari endpoint broker dan bootstrap. Untuk mengetahui petunjuk cara mengambil nilai ini, lihat Detail cluster publik.

Layanan ini menyediakan informasi ini dengan cara berikut:

  1. Alamat IPv4 eksternal yang terkait dengan cluster Anda tersedia di Managed Service untuk Apache Kafka API, gcloud, dan Terraform.

  2. Layanan ini mempertahankan satu atau beberapa data DNS discovery. Data ini adalah data DNS A yang berisi semua alamat IPv4 eksternal yang terkait dengan cluster Anda. Anda dapat menggunakan data ini di firewall berbasis FQDN, seperti Cloud NGFW, yang otomatis memperbarui aturan saat daftar endpoint berubah. Daftar endpoint discovery tersedia di API, gcloud, dan Terraform.

Pertimbangkan hal berikut saat Anda menggunakan alamat IP publik yang terkait dengan cluster Anda:

  1. Daftar alamat IPv4 publik yang terkait dengan cluster Anda dapat berubah atau bertambah. Oleh karena itu, otomatiskan cara Anda menggunakan informasi ini, atau tentukan proses untuk memperhitungkan data DNS discovery baru saat menskalakan cluster. Perubahan dapat terjadi saat:

    • Anda menskalakan cluster. Peningkatan skala dapat menambahkan satu atau beberapa alamat IPv4 eksternal saat broker baru ditambahkan. Untuk memahami pengaruh jumlah vCPU terhadap jumlah broker, lihat Pengukuran subnet.

    • Anda menonaktifkan, lalu mengaktifkan fitur cluster publik. Tindakan ini akan menetapkan kumpulan alamat IPv4 eksternal baru ke cluster.

  2. Setiap data DNS discovery berisi maksimum 30 alamat IP. Hal ini tetap berada dalam batas umum yang diterapkan oleh firewall FQDN. Cluster dengan 29 broker atau kurang memiliki satu data DNS discovery yang berisi 30 alamat IPv4 eksternal (termasuk data bootstrap). Layanan ini menambahkan satu data DNS discovery untuk setiap 30 broker tambahan. Untuk memahami pengaruh jumlah vCPU terhadap jumlah broker, lihat Pengukuran subnet.

  3. Jangan konfigurasi klien Kafka Anda untuk terhubung ke data DNS discovery. Sebagai gantinya, konfigurasi klien untuk terhubung ke alamat bootstrap. Untuk mengetahui informasi selengkapnya, lihat Batasan.

  4. Jika Anda menggunakan informasi ini untuk mengonfigurasi firewall egress, izinkan konektivitas ke port TCP 9092 (SASL) dan 9192 (mTLS).

Arsitektur jaringan cluster

Bagian ini menjelaskan detail arsitektur jaringan yang digunakan di Managed Service untuk Apache Kafka.

  • Cluster Kafka mencakup jaringan tenant dan satu atau beberapa jaringan konsumen.

  • Di jaringan tenant, cluster memiliki satu alamat IP dan URL bootstrap. Alamat bootstrap ini sesuai dengan load balancer yang terhubung ke semua broker di cluster. Setiap broker juga dapat bertindak sebagai server bootstrap, tetapi sebaiknya gunakan alamat bootstrap untuk keandalan.

  • Dalam setiap jaringan konsumen, layanan akan membuat Private Service Connect endpoint untuk alamat bootstrap dan satu endpoint untuk setiap broker.

  • URL untuk alamat bootstrap sama di seluruh jaringan VPC yang terhubung ke cluster. Alamat IP bersifat lokal untuk jaringan konsumen.

  • Klien terhubung ke broker Kafka menggunakan nama DNS. Nama ini otomatis terdaftar di setiap jaringan VPC yang terhubung ke cluster Kafka. Alamat bootstrap dan nomor port-nya tersedia sebagai properti cluster.

  • Klien menggunakan alamat bootstrap untuk mengambil URL broker. URL ini di-resolve ke alamat IP lokal untuk setiap jaringan VPC. Anda dapat menemukan alamat IP dan URL broker yang sebenarnya di Cloud DNS.

Diagram berikut menunjukkan contoh arsitektur jaringan cluster Managed Service untuk Apache Kafka.

Managed Service untuk Apache Kafka
Jaringan * Dalam contoh ini, cluster memiliki tiga broker dan cluster berada di VPC tenant.

  • Broker berkomunikasi dengan klien melalui port Kafka default (9092) dan memiliki alamat IP yang unik. Dalam contoh ini, ketiga broker memiliki alamat IP 10.128.10.2, 10.128.10.3, dan 10.128.10.4.

  • Ketiga broker terhubung ke load balancer bootstrap. Hal ini memastikan ketersediaan tinggi dan toleransi fault regional, karena alamat bootstrap tidak terbatas pada satu broker atau zona.

Batasan

Batasan berikut berlaku untuk koneksi VPC dan cluster publik:

  • Region subnet. Subnet yang terhubung harus berada di region yang sama dengan cluster Anda.

  • Jumlah subnet. Anda dapat menghubungkan minimal satu dan maksimal sepuluh subnet ke cluster.

  • Subnet per jaringan. Anda dapat menghubungkan maksimal satu subnet per jaringan VPC ke cluster.

  • Ukuran subnet. Setiap subnet yang terhubung memerlukan setidaknya satu alamat IP untuk setiap broker ditambah satu alamat IP untuk alamat bootstrap. Diperlukan minimal empat alamat IP yang dapat digunakan. Untuk mengetahui informasi selengkapnya, lihat Pengukuran subnet.

  • Subnet yang terhubung untuk cluster publik. Untuk mengaktifkan akses publik, cluster Anda harus tetap memiliki setidaknya satu subnet yang terhubung, meskipun Anda tidak perlu mengirim traffic melalui cluster tersebut.

  • Rentang IP sumber yang diizinkan. Setiap rentang IP sumber yang diizinkan untuk cluster publik harus ditentukan dalam notasi CIDR IPv4. Setiap ukuran subnet CIDR harus antara /16 dan /32. Rentang CIDR tidak boleh tumpang-tindih. Alamat IPv6 tidak didukung. Anda dapat menentukan maksimum 500 rentang IP sumber yang diizinkan.

  • Resolusi DNS data discovery. Data DNS discovery hanya dirancang untuk mengonfigurasi firewall egress berbasis FQDN. Jangan konfigurasi klien Kafka Anda untuk terhubung ke data discovery ini. Sebagai gantinya, konfigurasi klien untuk terhubung ke alamat bootstrap.

Memecahkan masalah

Untuk mengetahui informasi tentang cara memecahkan masalah jaringan, lihat Error jaringan.

Apa langkah selanjutnya?