Halaman ini menunjukkan cara menggunakan jaringan yang diizinkan untuk membatasi origin dari tempat Anda dapat mengakses bidang kontrol cluster Google Kubernetes Engine (GKE).
Cara kerja jaringan yang diizinkan
Jaringan yang diizinkan menyediakan firewall berbasis IP yang mengontrol akses ke bidang kontrol GKE. Akses ke bidang kontrol bergantung pada jenis cluster GKE dan alamat IP sumber. Dengan jaringan yang diizinkan, Anda mengonfigurasi alamat IP yang ingin Anda izinkan untuk mengakses endpoint bidang kontrol cluster GKE sebagai daftar blok CIDR.
Terminologi yang terkait dengan cluster dan alamat IP
Istilah berikut digunakan untuk membedakan aturan firewall berbasis IP yang diterapkan, bergantung pada jenis cluster Anda:
Perbedaan alamat IP:
- Alamat IP publik semua VM Compute Engine di Google Cloud: Alamat IP publik yang ditetapkan ke VM apa pun yang digunakan oleh pelanggan yang dihosting di Google Cloud. Google Cloud adalah pemilik alamat IP ini. Untuk mempelajari lebih lanjut, lihat Di mana saya dapat menemukan rentang IP Compute Engine?
- Alamat IP Google Cloud platform: Alamat IP yang digunakan oleh produk Google Cloud, seperti Cloud Run atau Cloud Functions. Klien apa pun yang dihosting di Google Cloud dapat membuat instance alamat IP ini. Google Cloud adalah pemilik alamat IP ini.
- Alamat IP yang dicadangkan Google: Alamat IP publik untuk tujuan pengelolaan cluster GKE. Alamat IP ini mencakup proses yang dikelola GKE dan layanan produksi Google lainnya. Google adalah pemilik alamat IP ini.
- Alamat IP publik internet: Alamat IP publik non-RFC 1918 dan non-Google. Google maupun produk Google Cloud bukan pemilik alamat IP publik ini.
- Rentang alamat IP cluster GKE: Alamat IP yang ditetapkan ke cluster yang digunakan GKE untuk node, Pod, dan Layanan cluster.
- Alamat IP yang digunakan secara pribadi: Alamat IP dari jaringan VPC cluster Anda. Alamat IP ini dapat mencakup alamat IP cluster Anda, jaringan lokal, rentang RFC 1918, atau alamat IP publik (PUPI) yang digunakan secara pribadi, yang mencakup rentang non-RFC 1918.
Jenis cluster:
- Cluster publik lama: Cluster publik yang berjalan di jaringan lama atau jaringan VPC dengan alamat IP publik yang ditetapkan ke node, dan yang belum dimigrasikan ke arsitektur Private Service Connect.
- Cluster pribadi: Cluster yang didasarkan pada Peering Jaringan VPC untuk konektivitas bidang kontrol dari node dengan alamat IP pribadi saja.
- Cluster berbasis PSC: Cluster yang menggunakan arsitektur Private Service Connect untuk komunikasi antara node dan bidang kontrol cluster GKE. Untuk menentukan apakah cluster Anda menggunakan Private Service Connect, lihat bidang kontrol GKE.
Akses ke endpoint bidang kontrol
Tabel berikut menunjukkan status default jaringan yang diizinkan saat pembuatan cluster. Berdasarkan jenis cluster GKE dan endpoint bidang kontrol, Anda dapat menentukan hal berikut:
- Alamat IP preset yang selalu dapat mengakses bidang kontrol GKE.
- Alamat IP yang dapat dikonfigurasi untuk mengakses bidang kontrol cluster dengan jaringan yang diizinkan diaktifkan.
Alamat IP yang dapat dikonfigurasi dapat mengakses rencana kontrol cluster jika Anda mengizinkannya dan mengaktifkan jaringan yang diizinkan.
Jenis cluster GKE dan endpoint bidang kontrol | Status jaringan yang diizinkan default | Alamat IP standar yang dapat selalu mengakses bidang kontrol GKE1 | Alamat IP yang dapat dikonfigurasi dan dapat mengakses bidang kontrol GKE dengan jaringan yang diizinkan diaktifkan2 |
---|---|---|---|
Cluster publik lama dengan endpoint publik | Nonaktif |
|
|
Cluster pribadi dengan endpoint publik dan pribadi | Diaktifkan |
|
|
Cluster berbasis PSC dengan endpoint publik dan pribadi | Nonaktif |
Jika flag
Jika flag
Untuk mempelajari lebih lanjut, baca artikel mengubah isolasi cluster. |
|
Batasan
- Jika memperluas subnet yang digunakan oleh cluster dengan jaringan yang diizinkan, Anda harus memperbarui konfigurasi jaringan yang diizinkan untuk menyertakan rentang alamat IP yang diperluas.
Jumlah rentang alamat IP jaringan yang diizinkan yang dapat Anda tentukan untuk alamat IP publik dan pribadi bergantung pada jenis cluster:
- Cluster publik: 50 rentang alamat IP
- Cluster pribadi: 100 rentang alamat IP
- Cluster berbasis PSC: 100 rentang alamat IP =
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika Anda ingin menggunakan Google Cloud CLI untuk tugas ini, instal, kemudian lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
Buat cluster dengan jaringan yang diizinkan
Anda dapat membuat cluster dengan satu atau beberapa jaringan yang diizinkan menggunakan Google Cloud CLI, Konsol Google Cloud, atau GKE API.
gcloud
Jalankan perintah berikut:
gcloud container clusters create-auto CLUSTER_NAME \
--enable-master-authorized-networks \
--master-authorized-networks CIDR1,CIDR2,...
Ganti kode berikut:
CLUSTER_NAME
: nama cluster Anda.CIDR1,CIDR2,...
: Daftar nilai CIDR untuk jaringan yang diizinkan, yang dipisahkan oleh koma. Contoh,8.8.8.8/32,8.8.8.0/24
.
Konsol
Buka halaman Google Kubernetes Engine di Konsol Google Cloud.
Klik add_box Buat.
Di bagian Autopilot atau Standard, klik Configure.
Konfigurasi cluster Anda sesuai kebutuhan.
Di menu navigasi, klik Networking.
Di bagian Advanced networking options, pilih kotak centang Enable control plane authorized networks.
Klik Add authorized network.
Masukkan Name untuk jaringan.
Untuk Network, masukkan rentang CIDR yang ingin Anda berikan akses ke bidang kontrol cluster.
Klik Done. Tambahkan jaringan lain yang diizinkan sesuai kebutuhan.
Klik Buat.
API
Tentukan objek masterAuthorizedNetworksConfig
di permintaan create
cluster Anda:
"masterAuthorizedNetworksConfig": {
"enabled": true,
"cidrBlocks": [
{
"displayName": string,
"cidrBlock": string
}
]
}
Untuk informasi selengkapnya, lihat MasterAuthorized NetworksConfig.
Anda dapat mengonfigurasi cluster pribadi dengan satu atau beberapa jaringan yang diizinkan. Untuk mengetahui informasi selengkapnya, lihat Cluster pribadi.
Buat cluster dengan akses bidang kontrol terbatas
GKE menetapkan alamat IP publik (endpoint eksternal) ke bidang kontrol dalam cluster publik. Anda dapat menetapkan isolasi cluster lebih lanjut pada cluster publik yang menggunakan Private Service Connect untuk menghubungkan node dan bidang kontrol secara pribadi. Untuk memeriksa apakah cluster Anda menggunakan Private Service Connect, silakan melihat Cluster publik dengan Private Service Connect.
Anda dapat membuat cluster dan menginstruksikan GKE untuk memblokir akses dari asal berikut ke bidang kontrol:
- Dari alamat IP milik Google Cloud.
- Dari alamat IP eksternal, kecuali dari Layanan Google yang menjalankan proses pengelolaan cluster.
Anda dapat membuat cluster dan menentukan akses bidang kontrol dengan menggunakan Google Cloud CLI atau Konsol Google Cloud.
gcloud
Jalankan perintah berikut:
gcloud container clusters create-auto CLUSTER_NAME
--no-enable-google-cloud-access
Ganti CLUSTER_NAME
dengan nama cluster GKE.
Dengan perintah ini, flag no-enable-google-cloud-access
mencegah bidang kontrol
dapat diakses dari alamat IP yang dimiliki oleh Google Cloud.
Konsol
Buka halaman Google Kubernetes Engine di Konsol Google Cloud.
Klik add_box Buat.
Di bagian Autopilot atau Standard, klik Configure.
Konfigurasi cluster Anda sesuai kebutuhan.
Di menu navigasi, klik Networking.
Hapus centang Izinkan akses melalui alamat IP publik Google Cloud.
Di bagian Advanced networking options, pilih kotak centang Enable control plane authorized networks.
Hapus centang Izinkan akses melalui alamat IP publik Google Cloud agar bidang kontrol tidak dapat diakses dari alamat IP milik Google Cloud.
Klik Add authorized network.
Masukkan Name untuk jaringan.
Untuk Network, masukkan rentang CIDR yang ingin Anda berikan akses ke bidang kontrol cluster.
Klik Done. Tambahkan jaringan lain yang diizinkan sesuai kebutuhan.
Klik Buat.
Tambahkan jaringan yang diizinkan ke cluster yang ada
Anda dapat menambahkan jaringan yang diizinkan ke cluster yang ada menggunakan gcloud CLI atau Konsol Google Cloud.
gcloud
Jalankan perintah berikut:
gcloud container clusters update CLUSTER_NAME \
--enable-master-authorized-networks \
--master-authorized-networks CIDR1,CIDR2,...
Ganti kode berikut:
CLUSTER_NAME
: nama cluster yang ada.CIDR1,CIDR2,...
: Daftar nilai CIDR untuk jaringan yang diizinkan, yang dipisahkan oleh koma. Contoh,8.8.8.8/32,8.8.8.0/24
.
Konsol
Buka halaman Google Kubernetes Engine di Konsol Google Cloud.
Klik nama cluster yang ingin diubah.
Di bagian Networking, di kolom Control plane authorized networks, klik edit Edit control plane authorized networks.
Centang kotak Aktifkan jaringan yang diizinkan bidang kontrol.
Klik Add authorized network.
Masukkan Name untuk jaringan.
Untuk Network, masukkan rentang CIDR yang ingin Anda berikan akses ke bidang kontrol cluster.
Klik Done. Tambahkan jaringan lain yang diizinkan sesuai kebutuhan.
Klik Simpan Perubahan.
API
Tentukan kolom desiredMasterAuthorizedNetworksConfig
di permintaan update
cluster Anda.
Pada kolom, tentukan objek MasterAuthorized NetworksConfig:
"desiredMasterAuthorizedNetworksConfig": {
object(MasterAuthorizedNetworksConfig)
}
Verifikasi jaringan yang diizinkan
Anda dapat memverifikasi jaringan yang diizinkan dalam cluster yang ada menggunakan gcloud CLI atau Konsol Google Cloud.
gcloud
Jalankan perintah berikut:
gcloud container clusters describe CLUSTER_NAME
Outputnya mirip dengan hal berikut ini:
...
masterAuthorizedNetworksConfig:
cidrBlocks:
- cidrBlock: 8.8.8.8/32
- cidrBlock: 8.8.4.4/32
enabled: true
...
Konsol
Buka halaman Google Kubernetes Engine di Konsol Google Cloud.
Klik nama cluster yang ingin diubah.
Di bagian Networking, kolom Control plane authorized networks menampilkan CIDR yang diizinkan.
API
Mengirim permintaan get
.
Cari blok CIDR di bagian kolom masterAuthorizedNetworksConfig
.
Contoh:
"masterAuthorizedNetworksConfig": {
"enabled": true,
"cidrBlocks": [
{
"displayName": "Office",
"cidrBlock": "192.0.2.0/24"
}
]
}
Nonaktifkan jaringan yang diizinkan
Anda dapat menonaktifkan jaringan yang diizinkan untuk cluster yang ada menggunakan gcloud CLI atau Konsol Google Cloud.
gcloud
Jalankan perintah berikut:
gcloud container clusters update CLUSTER_NAME \
--no-enable-master-authorized-networks
Konsol
Buka halaman Google Kubernetes Engine di Konsol Google Cloud.
Klik nama cluster yang ingin diubah.
Di bagian Networking, di kolom Control plane authorized networks, klik edit Edit control plane authorized networks.
Hapus centang pada kotak Aktifkan jaringan yang diizinkan bidang kontrol.
Klik Simpan Perubahan.
Hapus jaringan yang diizinkan
gcloud
Jalankan perintah berikut:
gcloud container clusters update CLUSTER_NAME \
--enable-master-authorized-networks
Konsol
Buka halaman Google Kubernetes Engine di Konsol Google Cloud.
Klik nama cluster yang ingin diubah.
Di bagian Networking, di kolom Control plane authorized networks, klik edit Edit control plane authorized networks.
Klik
Delete.Klik Simpan Perubahan.
Pemecahan masalah
Bagian berikut menjelaskan cara menyelesaikan masalah umum terkait jaringan yang diizinkan.
Terlalu banyak blok CIDR
gcloud
menampilkan error berikut saat mencoba membuat atau mengupdate cluster dengan lebih dari 50 blok CIDR:
ERROR: (gcloud.container.clusters.update) argument --master-authorized-networks: too many args
Untuk mengatasi masalah ini, jika cluster Anda bersifat publik, pastikan Anda menentukan tidak lebih dari 50 blok CIDR. Jika cluster Anda bersifat pribadi, tentukan tidak lebih dari 100 blok CIDR.
Tidak dapat menyambung ke server.
Waktu tunggu perintah kubectl
habis karena blok CIDR yang tidak dikonfigurasi dengan benar:
Unable to connect to the server: dial tcp MASTER_IP: getsockopt: connection timed out
Saat Anda membuat atau mengupdate cluster, pastikan Anda menentukan blok CIDR yang benar.
Langkah berikutnya
- Baca ringkasan jaringan GKE.
- Pelajari cluster native VPC.
- Pelajari aturan firewall.
- Pelajari cara membuat cluster pribadi.