Menyesuaikan isolasi jaringan di GKE


Halaman ini menjelaskan cara mengonfigurasi isolasi jaringan untuk cluster Google Kubernetes Engine (GKE) saat Anda membuat atau mengupdate cluster.

Praktik terbaik:

Rencanakan dan desain isolasi jaringan cluster Anda dengan Network architect, Network administrator, atau tim Network engineer lainnya di organisasi Anda yang bertanggung jawab untuk menentukan, menerapkan, dan memelihara arsitektur jaringan.

Di cluster GKE, isolasi jaringan bergantung pada siapa yang dapat mengakses komponen cluster dan caranya. Anda dapat mengontrol:

  • Akses bidang kontrol: Anda dapat menyesuaikan akses eksternal, akses terbatas, atau akses yang tidak dibatasi ke bidang kontrol.
  • Jaringan cluster: Anda dapat memilih siapa yang dapat mengakses node di cluster Standard, atau workload di cluster Autopilot.

Sebelum membuat cluster, pertimbangkan hal berikut:

  1. Siapa yang dapat mengakses bidang kontrol dan bagaimana bidang kontrol diekspos?
  2. Bagaimana node atau beban kerja Anda diekspos?

Untuk menjawab pertanyaan ini, ikuti panduan rencana dan desain di Tentang isolasi jaringan.

Batas dan pembatasan

Secara default, GKE membuat cluster Anda sebagai cluster VPC native. Cluster native VPC tidak mendukung jaringan lama.

Luaskan bagian berikut untuk melihat aturan seputar rentang alamat IP dan traffic saat membuat cluster.

  • Anda dapat menambahkan hingga 50 jaringan yang diizinkan (blok CIDR yang diizinkan) dalam sebuah project. Untuk informasi selengkapnya, lihat Menentukan alamat IP yang dapat mengakses bidang kontrol.
  • Meskipun dapat mendeteksi tumpang-tindih dengan blok alamat bidang kontrol, GKE tidak dapat mendeteksi tumpang-tindih dalam jaringan VPC Bersama.
  • Alamat IP internal untuk node berasal dari rentang alamat IP utama dari subnet yang Anda pilih untuk cluster. Alamat IP Pod dan alamat IP Layanan berasal dari dua rentang alamat IP sekunder subnet dari subnet yang sama. Untuk mengetahui informasi selengkapnya, lihat Rentang IP untuk cluster VPC native.
  • GKE mendukung semua rentang alamat IP internal, termasuk rentang pribadi (RFC 1918 dan rentang pribadi lainnya) dan rentang alamat IP eksternal yang digunakan secara pribadi. Lihat dokumentasi VPC untuk mengetahui daftar rentang alamat IP internal yang valid.
  • Jika memperluas rentang IP utama subnet untuk mengakomodasi node tambahan, Anda harus menambahkan rentang alamat IP utama subnet yang diperluas ke daftar jaringan yang diizinkan untuk cluster Anda. Jika tidak, aturan firewall ingress-allow yang relevan dengan bidang kontrol tidak akan diperbarui, dan node baru yang dibuat di ruang alamat IP yang diperluas tidak akan dapat mendaftar dengan bidang kontrol. Hal ini dapat menyebabkan pemadaman layanan karena node baru terus-menerus dihapus dan diganti. Gangguan tersebut dapat terjadi saat melakukan upgrade node pool atau saat node otomatis diganti karena kegagalan pemeriksaan keaktifan.
  • Semua node dalam cluster yang hanya memiliki node pribadi dibuat tanpa IP eksternal; node tersebut memiliki akses terbatas ke API dan layanan Google Cloud . Untuk memberikan akses internet keluar bagi node pribadi, Anda dapat menggunakan Cloud NAT.
  • Akses Google Pribadi diaktifkan secara otomatis saat Anda membuat cluster, kecuali jika Anda menggunakan VPC Bersama. Anda tidak boleh menonaktifkan Akses Google Pribadi kecuali jika menggunakan NAT untuk mengakses internet.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan gcloud components update.

Mengonfigurasi akses bidang kontrol

Saat Anda membuat cluster GKE dalam versi apa pun menggunakan Google Cloud CLI atau dalam versi 1.29 dan yang lebih baru menggunakan Konsol, bidang kontrol dapat diakses melalui antarmuka berikut:

Endpoint berbasis DNS

Akses ke bidang kontrol bergantung pada resolusi DNS traffic sumber. Aktifkan endpoint berbasis DNS untuk mendapatkan manfaat berikut:

  • Membuat kebijakan akses dinamis berdasarkan kebijakan IAM.
  • Akses platform kontrol dari jaringan VPC lain atau lokasi eksternal tanpa perlu menyiapkan host bastion atau node proxy.

Untuk mengonfigurasi akses ke endpoint berbasis DNS, lihat Menentukan akses endpoint berbasis DNS.

Endpoint berbasis IP

Akses ke endpoint bidang kontrol bergantung pada alamat IP sumber dan dikontrol oleh jaringan yang Anda izinkan. Anda dapat mengelola akses ke endpoint berbasis IP di bidang kontrol, termasuk:

  • Aktifkan atau nonaktifkan endpoint berbasis IP.
  • Aktifkan atau nonaktifkan endpoint eksternal untuk mengizinkan akses dari traffic eksternal. Endpoint internal selalu diaktifkan saat Anda mengaktifkan endpoint berbasis IP bidang kontrol.
  • Tambahkan jaringan yang diizinkan untuk mengizinkan atau menolak akses dari alamat IP publik. Jika Anda tidak mengonfigurasi jaringan yang diizinkan, bidang kontrol dapat diakses dari alamat IP eksternal mana pun. Hal ini mencakup internet publik atau alamat IP eksternal Google Cloud tanpa batasan.
  • Mengizinkan atau menolak akses dari satu atau semua alamat IP pribadi di cluster.
  • Izinkan atau tolak akses dari alamat IP eksternalGoogle Cloud , yang merupakan alamat IP eksternal yang ditetapkan ke VM apa pun yang digunakan oleh pelanggan yang dihosting di Google Cloud.
  • Menambahkan atau menolak akses dari alamat IP di region Google Cloud lain.

Tinjau batasan penggunaan endpoint berbasis IP sebelum Anda menentukan akses bidang kontrol.

Membuat cluster dan menentukan akses bidang kontrol

Untuk membuat atau mengupdate cluster Autopilot atau Standar, gunakan Google Cloud CLI atau Konsol Google Cloud.

Konsolgcloud

Untuk membuat cluster, selesaikan langkah-langkah berikut:

  1. Buka halaman Google Kubernetes Engine di konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Klik Create.

  3. Konfigurasikan atribut cluster berdasarkan kebutuhan project Anda.

  4. Di menu navigasi, klik Networking.

  5. Di bagian Akses Panel Kontrol, konfigurasikan endpoint panel kontrol:

    1. Centang kotak Akses menggunakan DNS untuk mengaktifkan endpoint berbasis DNS bidang kontrol.
    2. Pilih kotak centang Akses menggunakan alamat IPv4 untuk mengaktifkan endpoint berbasis IP bidang kontrol. Gunakan konfigurasi yang disertakan dalam Menentukan alamat IP yang dapat mengakses bidang kontrol untuk menyesuaikan akses ke endpoint berbasis IP.

Untuk cluster Autopilot, jalankan perintah berikut:

  gcloud container clusters create-auto CLUSTER_NAME \
    --enable-ip-access  \
    --enable-dns-access

Untuk cluster Standard, jalankan perintah berikut:

  gcloud container clusters create CLUSTER_NAME \
      --enable-ip-access \
      --enable-dns-access

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster Anda.

Kedua perintah tersebut menyertakan flag yang mengaktifkan hal berikut:

  • enable-dns-access: Mengaktifkan akses ke bidang kontrol menggunakan endpoint berbasis DNS dari bidang kontrol.
  • enable-ip-access: Mengaktifkan akses ke bidang kontrol menggunakan alamat IPv4. Hapus tanda ini jika Anda ingin menonaktifkan endpoint internal dan eksternal bidang kontrol.

Gunakan flag yang tercantum di Menentukan alamat IP yang dapat mengakses bidang kontrol untuk menyesuaikan akses ke endpoint berbasis IP.

Menentukan akses ke endpoint berbasis DNS

Anda dapat mengelola autentikasi dan otorisasi ke endpoint berbasis DNS dengan mengonfigurasi izin IAM container.clusters.connect. Untuk mengonfigurasi izin ini, tetapkan peran IAM berikut ke project Google Cloud Anda:

  • roles/container.developer
  • roles/container.viewer

Secara opsional, Anda dapat mengelola keterjangkauan endpoint berbasis DNS menggunakan fitur berikut:

  • Kontrol Layanan VPC: endpoint berbasis DNS mendukung Kontrol Layanan VPC untuk menambahkan lapisan keamanan ke akses platform kontrol Anda. Kontrol Layanan VPC berfungsi secara konsisten di seluruh API. Google Cloud

  • Akses ke endpoint berbasis DNS dari klien tanpa akses internet publik: endpoint berbasis DNS dapat diakses melalui Google Cloud API yang tersedia di internet publik. Untuk mengakses endpoint berbasis DNS dari klien pribadi, Anda dapat menggunakan Akses Google Pribadi, gateway Cloud NAT, atau Private Service Connect untuk Google Cloud API.

    Saat Anda menggunakan Private Service Connect untuk Google Cloud API, GKE akan mengalihkan permintaan untuk alamat gke.goog ke alamat IP internal yang ditambahkan Private Service Connect untuk Google API, bukan alamat IP Google publik default. Untuk mengonfigurasi Private Service Connect untuk Google Cloud API, selesaikan langkah-langkah di Mengakses Google API melalui endpoint.

  • Akses ke endpoint berbasis DNS dari klien lokal: endpoint berbasis DNS dapat diakses oleh klien lokal melalui Akses Google Pribadi. Untuk mengonfigurasi Akses Google Pribadi, selesaikan langkah-langkah di Mengonfigurasi Akses Google Pribadi untuk host lokal.

Menentukan alamat IP yang dapat mengakses bidang kontrol

Untuk menentukan alamat IP yang dapat mengakses bidang kontrol, selesaikan langkah-langkah berikut:

Konsolgcloud
  1. Di bagian Control Plane Access, pilih Enable authorized networks.
  2. Klik Add authorized network.
  3. Masukkan Name untuk jaringan.
  4. Untuk Network, masukkan rentang CIDR yang ingin Anda berikan akses ke bidang kontrol cluster.
  5. Klik Selesai.
  6. Tambahkan jaringan lain yang diizinkan jika Anda memerlukannya.
Menentukan aturan firewall alamat IP bidang kontrol

Untuk menentukan aturan firewall alamat IP panel kontrol, selesaikan langkah-langkah berikut:

  1. Luaskan bagian Tampilkan aturan firewall alamat IP.
  2. Pilih kotak centang Akses menggunakan alamat IP eksternal bidang kontrol untuk mengizinkan akses ke bidang kontrol dari alamat IP publik.

    Praktik terbaik:

    Tentukan jaringan yang diizinkan bidang kontrol untuk membatasi akses ke bidang kontrol.

  3. Pilih kotak centang Akses menggunakan alamat IP internal bidang kontrol dari region mana pun. Alamat IP internal dari region Google Cloudmana pun dapat mengakses endpoint internal bidang kontrol.

  4. Pilih Terapkan jaringan yang diizinkan di endpoint internal bidang kontrol. Hanya alamat IP yang Anda tentukan dalam daftar Tambahkan jaringan yang diizinkan yang dapat mengakses endpoint internal bidang kontrol. Endpoint internal diaktifkan secara default.

  5. Pilih Tambahkan Google Cloud alamat IP eksternal ke jaringan yang diotorisasi. Semua alamat IP publik dari Google Cloud dapat mengakses bidang kontrol.

Anda dapat mengonfigurasi alamat IP yang dapat mengakses endpoint eksternal dan internal bidang kontrol menggunakan flag berikut:

  • enable-private-endpoint: Menentukan bahwa akses ke endpoint eksternal dinonaktifkan. Hapus tanda ini jika Anda ingin mengizinkan akses ke bidang kontrol dari alamat IP eksternal. Dalam hal ini, sebaiknya Anda mengontrol akses ke endpoint eksternal dengan flag enable-master-authorized-networks.
  • enable-master-authorized-networks: Menentukan bahwa akses ke endpoint eksternal dibatasi untuk rentang alamat IP yang Anda otorisasi.
  • master-authorized-networks: Mencantumkan nilai CIDR untuk jaringan yang diizinkan. Daftar ini adalah daftar yang dipisahkan koma. Contoh, 8.8.8.8/32,8.8.8.0/24.

    Praktik terbaik:

    Gunakan flag enable-master-authorized-networks agar akses ke bidang kontrol dibatasi.

  • enable-authorized-networks-on-private-endpoint: Menentukan bahwa akses ke endpoint internal dibatasi untuk rentang alamat IP yang Anda otorisasi dengan flag enable-master-authorized-networks.

  • no-enable-google-cloud-access: Menolak akses ke bidang kontrol dari Google Cloud alamat IP eksternal.

  • enable-master-global-access: Mengizinkan akses dari alamat IP di regionGoogle Cloud lainnya.

    Anda dapat terus mengonfigurasi jaringan cluster dengan menentukan isolasi node atau Pod di tingkat cluster.

Anda juga dapat membuat cluster dan menentukan atribut di tingkat cluster, seperti jaringan dan subnet node, jenis stack IP, dan alokasi alamat IP. Untuk mempelajari lebih lanjut, lihat Membuat cluster VPC native.

Mengubah akses bidang kontrol

Untuk mengubah akses panel kontrol bagi cluster, gunakan gcloud CLI atau Konsol Google Cloud.

Konsolgcloud
  1. Buka halaman Google Kubernetes Engine di konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Klik nama cluster di daftar cluster.

  3. Di tab Cluster details, pada bagian Control Plane Networking, klik .

  4. Pada dialog Edit control plane networking, ubah akses bidang kontrol berdasarkan persyaratan kasus penggunaan Anda.

  5. Verifikasi konfigurasi platform kontrol Anda.

Jalankan perintah berikut dan tambahkan flag yang sesuai dengan kasus penggunaan Anda. Anda dapat menggunakan flag berikut:

  • enable-dns-access: Mengaktifkan akses ke bidang kontrol menggunakan endpoint berbasis DNS dari bidang kontrol.
  • enable-ip-access: Mengaktifkan akses ke bidang kontrol menggunakan alamat IPv4. Hapus tanda ini jika Anda ingin menonaktifkan endpoint internal dan eksternal bidang kontrol.
  • enable-private-endpoint: Menentukan bahwa akses ke endpoint eksternal dinonaktifkan. Hapus tanda ini jika Anda ingin mengizinkan akses ke bidang kontrol dari alamat IP eksternal. Dalam hal ini, sebaiknya Anda mengontrol akses ke endpoint eksternal dengan flag enable-master-authorized-networks.
  • enable-master-authorized-networks: Menentukan bahwa akses ke endpoint eksternal dibatasi untuk rentang alamat IP yang Anda otorisasi.
  • master-authorized-networks: Mencantumkan nilai CIDR untuk jaringan yang diizinkan. Daftar ini adalah daftar yang dipisahkan koma. Contoh, 8.8.8.8/32,8.8.8.0/24.

    Praktik terbaik:

    Gunakan flag enable-master-authorized-networks agar akses ke bidang kontrol dibatasi.

  • enable-authorized-networks-on-private-endpoint: Menentukan bahwa akses ke endpoint internal dibatasi untuk rentang alamat IP yang Anda otorisasi dengan flag enable-master-authorized-networks.

  • no-enable-google-cloud-access: Menolak akses ke bidang kontrol dari Google Cloud alamat IP eksternal.

  • enable-master-global-access: Mengizinkan akses dari alamat IP di regionGoogle Cloud lainnya.

    gcloud container clusters update CLUSTER_NAME
    

    Ganti CLUSTER_NAME dengan nama cluster.

Memverifikasi konfigurasi bidang kontrol

Anda dapat melihat endpoint cluster menggunakan gcloud CLI atau konsol Google Cloud.

Konsolgcloud
  1. Buka halaman Google Kubernetes Engine di konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Klik nama cluster di daftar cluster.

  3. Di tab Detail cluster, pada bagian Bidang kontrol, Anda dapat memeriksa karakteristik endpoint bidang kontrol berikut:

    • Endpoint DNS mencakup nama endpoint berbasis DNS dari cluster Anda, jika Anda telah mengaktifkan endpoint ini.
    • Akses bidang kontrol menggunakan alamat IPv4 mencakup status endpoint berbasis IP. Jika diaktifkan, Anda dapat melihat informasi endpoint publik dan pribadi.
    • Akses menggunakan alamat IP internal bidang kontrol dari region mana pun menampilkan status sebagai Diaktifkan saat bidang kontrol dapat diakses oleh alamat IP Google dari region lain.
    • Authorized networks menampilkan daftar CIDR yang dapat mengakses bidang kontrol, jika Anda telah mengaktifkan jaringan yang diizinkan.
    • Enforce authorized networks on control plane's internal endpoint menampilkan status Enabled jika hanya CIDR di kolom Authorized networks yang dapat mengakses endpoint internal.
    • Tambahkan Google Cloud alamat IP eksternal ke jaringan yang diizinkan menampilkan status Diaktifkan jika alamat IP eksternal dari Google Cloud dapat mengakses bidang kontrol.

Untuk mengubah atribut apa pun, klik Akses bidang kontrol menggunakan alamat IPv4 dan sesuaikan berdasarkan kasus penggunaan Anda.

Untuk memverifikasi konfigurasi bidang kontrol, jalankan perintah berikut:

gcloud container clusters describe CLUSTER_NAME

Output memiliki blok controlPlaneEndpointsConfig yang menjelaskan definisi jaringan. Anda dapat melihat output yang mirip dengan berikut ini:

controlPlaneEndpointsConfig:
dnsEndpointConfig:
  allowExternalTraffic: true
  endpoint: gke-dc6d549babec45f49a431dc9ca926da159ca-518563762004.us-central1-c.autopush.gke.goog
ipEndpointsConfig:
  authorizedNetworksConfig:
    cidrBlocks:
    - cidrBlock: 8.8.8.8/32
    - cidrBlock: 8.8.8.0/24
    enabled: true
    gcpPublicCidrsAccessEnabled: false
    privateEndpointEnforcementEnabled: true
  enablePublicEndpoint: false
  enabled: true
  globalAccess: true
  privateEndpoint: 10.128.0.13

Dalam contoh ini, cluster memiliki konfigurasi berikut:

  • Endpoint berbasis DNS dan alamat IP diaktifkan.
  • Jaringan yang diizinkan diaktifkan dan rentang CIDR ditentukan. Jaringan yang diizinkan ini diterapkan untuk alamat IP internal.
  • Akses ke bidang kontrol dari Google Cloud alamat IP eksternal ditolak.

Contoh konfigurasi akses bidang kontrol

Bagian ini menjelaskan konfigurasi contoh isolasi jaringan berikut. Evaluasi contoh-contoh ini untuk mengetahui kesamaannya dengan kasus penggunaan Anda:

  • Contoh 1: Bidang kontrol dapat diakses dari alamat IP tertentu yang Anda tentukan. Alamat ini dapat mencakup alamat IP dari region Google Cloud lain atau alamat IP yang dicadangkan Google.
  • Contoh 2: Bidang kontrol tidak dapat diakses oleh alamat IP eksternal mana pun.
Contoh 1: Bidang kontrol dapat diakses dari alamat IP tertentu

Di bagian ini, Anda akan membuat cluster dengan konfigurasi isolasi jaringan berikut:

  • Bidang kontrol telah mengaktifkan endpoint berbasis DNS.
  • Bidang kontrol mengaktifkan endpoint eksternal selain endpoint internal yang diaktifkan secara default.
  • Bidang kontrol telah menentukan jaringan yang diizinkan, sehingga hanya jaringan yang diizinkan berikut yang dapat menjangkau bidang kontrol:

Untuk membuat cluster ini, gunakan Google Cloud CLI atau konsol Google Cloud.

Konsolgcloud
  1. Buka halaman Google Kubernetes Engine di konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Klik Create.

  3. Konfigurasikan cluster Anda agar sesuai dengan persyaratan Anda.

  4. Di menu navigasi, klik Networking.

  5. Di bagian Akses Panel Kontrol, konfigurasikan endpoint panel kontrol:

    1. Centang kotak Akses menggunakan DNS.
    2. Centang kotak Akses menggunakan alamat IPV4.
  6. Pilih Aktifkan jaringan yang diizinkan.

  7. Klik Add authorized network.

  8. Masukkan Name untuk jaringan.

  9. Untuk Network, masukkan rentang CIDR yang ingin Anda berikan akses ke bidang kontrol cluster.

  10. Klik Selesai.

  11. Tambahkan jaringan lain yang diizinkan jika Anda perlu.

  12. Luaskan bagian Tampilkan aturan firewall alamat IP.

  13. Pilih Akses menggunakan alamat IP internal bidang kontrol dari wilayah mana pun. Alamat IP internal dari region Google Cloud mana pun dapat mengakses bidang kontrol melalui alamat IP internal.

  14. Pilih Tambahkan Google Cloud alamat IP eksternal ke jaringan yang diotorisasi. Semua alamat IP eksternal dari Google Cloud dapat mengakses bidang kontrol.

Anda dapat terus mengonfigurasi jaringan cluster dengan menentukan isolasi node atau Pod di tingkat cluster.

Jalankan perintah berikut:

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-dns-access \
    --enable-ip-access \
    --enable-master-authorized-networks \
    --enable-master-global-access \
    --master-authorized-networks CIDR1,CIDR2,...

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster GKE.
  • CIDR1,CIDR2,...: Daftar nilai CIDR untuk jaringan yang diizinkan, yang dipisahkan oleh koma. Contoh, 8.8.8.8/32,8.8.8.0/24.
Contoh 2: Bidang kontrol dapat diakses dari alamat IP internal

Di bagian ini, Anda akan membuat cluster dengan konfigurasi isolasi jaringan berikut:

  • Bidang kontrol telah mengaktifkan endpoint berbasis DNS.
  • Endpoint eksternal dinonaktifkan di bidang kontrol.
  • Jaringan yang diizinkan telah diaktifkan di bidang kontrol.
  • Semua akses ke bidang kontrol melalui alamat IP internal dari wilayah Google Cloud mana pun diizinkan.
  • Google Cloud Alamat IP eksternal tidak memiliki akses ke cluster Anda.

Anda dapat membuat cluster ini menggunakan Google Cloud CLI atau konsol Google Cloud.

Konsolgcloud
  1. Buka halaman Google Kubernetes Engine di konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Klik Create.

  3. Konfigurasikan cluster Anda agar sesuai dengan persyaratan Anda.

  4. Di menu navigasi, klik Networking.

  5. Di bagian Akses Panel Kontrol, konfigurasikan endpoint panel kontrol:

    1. Centang kotak Akses menggunakan DNS.
    2. Centang kotak Akses menggunakan alamat IPV4.
  6. Luaskan bagian Tampilkan aturan firewall alamat IP.

  7. Batalkan pilihan Akses menggunakan alamat IP eksternal bidang kontrol. Bidang kontrol tidak dapat diakses oleh alamat IP eksternal apa pun.

  8. Di bagian Control Plane Access, pilih Enable authorized networks.

  9. Centang kotak Akses menggunakan alamat IP internal bidang kontrol dari wilayah mana pun. Alamat IP internal dari region Google Cloud mana pun dapat mengakses bidang kontrol melalui alamat IP internal.

Anda dapat melanjutkan konfigurasi jaringan cluster dengan menentukan isolasi node atau Pod di tingkat cluster.

Jalankan perintah berikut:

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-dns-access \
    --enable-ip-access \
    --enable-private-endpoint \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,... \
    --no-enable-google-cloud-access \
    --enable-master-global-access

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster.
  • CIDR1,CIDR2,...: Daftar nilai CIDR untuk jaringan yang diizinkan, yang dipisahkan oleh koma. Contoh, 8.8.8.8/32,8.8.8.0/24.

Mengonfigurasi jaringan cluster

Di bagian ini, Anda akan mengonfigurasi cluster agar memiliki node dengan akses internal (pribadi) atau eksternal (publik). GKE memungkinkan Anda menggabungkan konfigurasi jaringan node bergantung pada jenis cluster yang Anda gunakan:

  • Cluster standar: Anda dapat membuat atau memperbarui node pool untuk menyediakan node pribadi atau publik di cluster yang sama. Misalnya, jika Anda membuat node pool dengan node pribadi, GKE akan menyediakan node-nya hanya dengan alamat IP internal. GKE tidak mengubah node pool yang ada. Anda juga dapat menentukan konfigurasi jaringan default di tingkat cluster. GKE menerapkan konfigurasi jaringan default ini hanya jika node pool baru tidak memiliki konfigurasi jaringan yang ditentukan.
  • Cluster Autopilot: Anda dapat membuat atau mengupdate cluster untuk menentukan konfigurasi jaringan default untuk semua workload. GKE menjadwalkan workload baru dan yang sudah ada di node publik atau pribadi berdasarkan konfigurasi Anda. Anda juga dapat menentukan konfigurasi jaringan cluster dari setiap beban kerja secara eksplisit.

Konfigurasi cluster Anda

Di bagian ini, konfigurasikan jaringan cluster di tingkat cluster. GKE mempertimbangkan konfigurasi ini jika node pool atau workload Anda tidak memiliki konfigurasi ini.

Untuk menentukan konfigurasi tingkat cluster, gunakan Google Cloud CLI atau Konsol Google Cloud.

Konsolgcloud

Membuat cluster

  1. Buka halaman Google Kubernetes Engine di konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Klik Create, lalu di bagian Standard atau Autopilot, klik Configure.

  3. Konfigurasikan cluster Anda agar sesuai dengan persyaratan Anda.

  4. Di menu navigasi, klik Networking.

  5. Di bagian Cluster networking, selesaikan langkah-langkah berikut berdasarkan kasus penggunaan Anda:

    1. Pilih Aktifkan node pribadi untuk menyediakan node hanya dengan alamat IP internal (node pribadi) yang mencegah klien eksternal mengakses node. Anda dapat mengubah setelan ini kapan saja.
    2. Batalkan pilihan Enable private nodes untuk menyediakan node hanya dengan alamat IP eksternal (publik) yang memungkinkan klien eksternal mengakses node.
  6. Di bagian Advanced networking options, konfigurasikan atribut native VPC tambahan. Untuk mempelajari lebih lanjut, lihat Membuat cluster VPC native.

  7. Klik Buat.

Memperbarui Cluster yang ada

  1. Buka halaman Google Kubernetes Engine di konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Klik nama cluster di daftar cluster.

  3. Di Private Nodes, pada tab Default New Node-Pool Configuration, klik Edit Private Nodes.

  4. Pada dialog Edit Private Nodes, lakukan salah satu hal berikut:

    1. Pilih Aktifkan node pribadi untuk menyediakan node hanya dengan alamat IP internal (node pribadi) yang mencegah klien eksternal mengakses node. Anda dapat mengubah setelan ini kapan saja.
    2. Batalkan pilihan Enable private nodes untuk menyediakan node hanya dengan alamat IP eksternal (publik) yang memungkinkan klien eksternal mengakses node.
  5. Klik Simpan perubahan.

Gunakan salah satu flag berikut untuk menentukan jaringan cluster:

  • enable-private-nodes: Untuk menyediakan node hanya dengan alamat IP internal (node pribadi). Pertimbangkan kondisi berikut saat menggunakan tanda ini:
    • Flag enable-ip-alias diperlukan saat menggunakan enable-private-nodes.
    • Flag master-ipv4-cidr bersifat opsional untuk membuat subnet pribadi. Jika Anda menggunakan flag ini, GKE akan membuat subnet baru yang menggunakan nilai yang Anda tentukan di master-ipv4-cidr dan menggunakan subnet baru untuk menyediakan alamat IP internal untuk bidang kontrol.
  • no-enable-private-nodes: Untuk menyediakan node hanya dengan alamat IP eksternal (node publik).

Di cluster Autopilot, buat atau update cluster dengan flag enable-private-nodes.

  • Untuk membuat cluster, gunakan perintah berikut:

    gcloud container clusters create-auto CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    
  • Untuk mengupdate cluster, gunakan perintah berikut.

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    

    Update cluster hanya berlaku setelah semua node pool telah dijadwalkan ulang. Proses ini mungkin memerlukan waktu beberapa jam.

Di cluster Standar, buat atau update cluster dengan flag enable-private-nodes.

  • Untuk membuat cluster, gunakan perintah berikut:

    gcloud container clusters create CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    
  • Untuk mengupdate cluster, gunakan perintah berikut:

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    

    Update cluster hanya berlaku pada node pool baru. GKE tidak memperbarui konfigurasi ini di node pool yang ada.

Konfigurasi cluster ditimpa oleh konfigurasi jaringan di kumpulan node atau tingkat workload.

Mengonfigurasi node pool atau workload

Untuk mengonfigurasi node pribadi atau publik di tingkat workload untuk cluster Autopilot, atau node pool untuk cluster Standar, gunakan Google Cloud CLI atau Konsol Google Cloud. Jika Anda tidak menentukan konfigurasi jaringan di tingkat workload atau node pool, GKE akan menerapkan konfigurasi default di tingkat cluster.

Konsolgcloud

Di cluster Standard, selesaikan langkah-langkah berikut:

  1. Buka halaman Google Kubernetes Engine di konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Di halaman Cluster details, klik nama cluster yang ingin diubah.

  3. Klik Add Node Pool.

  4. Konfigurasikan kotak centang Aktifkan node pribadi berdasarkan kasus penggunaan Anda:

    1. Pilih Aktifkan node pribadi untuk menyediakan node hanya dengan alamat IP internal (node pribadi).
    2. Batalkan pilihan Enable private nodes untuk menyediakan node hanya dengan alamat IP eksternal (publik) yang memungkinkan klien eksternal mengakses node. Anda dapat mengubah konfigurasi ini kapan saja.
  5. Konfigurasikan node pool baru.

  6. Klik Buat.

Untuk mempelajari pengelolaan node pool lebih lanjut, lihat Menambahkan dan mengelola node pool.

  • Di cluster Autopilot, untuk meminta GKE menjadwalkan Pod di node pribadi, tambahkan nodeSelector berikut ke spesifikasi Pod Anda:

    cloud.google.com/private-node=true
    

    Gunakan private-node=true di nodeSelector Pod untuk menjadwalkan Pod di node hanya dengan alamat IP internal (node pribadi).

    GKE membuat ulang Pod Anda di node pribadi atau node publik, berdasarkan konfigurasi Anda. Untuk menghindari gangguan beban kerja, migrasikan setiap beban kerja secara independen dan pantau migrasi tersebut.

  • Di cluster Standard, untuk menyediakan node melalui alamat IP pribadi di node pool yang sudah ada, jalankan perintah berikut:

    gcloud container node-pools update NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    

    Ganti kode berikut:

    • NODE_POOL_NAME: nama node pool yang ingin Anda edit.
    • CLUSTER_NAME: nama cluster yang ada.

    Gunakan salah satu flag berikut untuk menentukan konfigurasi jaringan node pool:

    • enable-private-nodes: Untuk menyediakan node hanya dengan alamat IP internal (node pribadi).
    • no-enable-private-nodes: Untuk menyediakan node hanya dengan alamat IP eksternal (node publik).

Konfigurasi lanjutan

Bagian berikut menjelaskan konfigurasi lanjutan yang mungkin Anda inginkan saat mengonfigurasi isolasi jaringan cluster.

Menggunakan Cloud Shell untuk mengakses cluster dengan endpoint eksternal dinonaktifkan

Jika endpoint eksternal panel kontrol cluster dinonaktifkan, Anda tidak dapat mengakses panel kontrol GKE dengan Cloud Shell. Jika ingin menggunakan Cloud Shell untuk mengakses cluster, sebaiknya aktifkan endpoint berbasis DNS.

Untuk memverifikasi akses ke cluster, selesaikan langkah-langkah berikut:

  1. Jika Anda telah mengaktifkan endpoint berbasis DNS, jalankan perintah berikut untuk mendapatkan kredensial cluster Anda:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --dns-endpoint
    

    Jika Anda telah mengaktifkan endpoint berbasis IP, jalankan perintah berikut untuk mendapatkan kredensial cluster Anda:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --project=PROJECT_ID \
        --internal-ip
    

    Ganti PROJECT_ID dengan project ID Anda.

  2. Gunakan kubectl di Cloud Shell untuk mengakses cluster Anda:

    kubectl get nodes
    

    Outputnya mirip dengan hal berikut ini:

    NAME                                               STATUS   ROLES    AGE    VERSION
    gke-cluster-1-default-pool-7d914212-18jv   Ready    <none>   104m   v1.21.5-gke.1302
    gke-cluster-1-default-pool-7d914212-3d9p   Ready    <none>   104m   v1.21.5-gke.1302
    gke-cluster-1-default-pool-7d914212-wgqf   Ready    <none>   104m   v1.21.5-gke.1302
    

Perintah get-credentials otomatis menggunakan endpoint berbasis DNS jika akses endpoint berbasis IP dinonaktifkan.

Menambahkan aturan firewall untuk kasus penggunaan tertentu

Bagian ini menjelaskan cara menambahkan aturan firewall ke cluster. Secara default, aturan firewall membatasi bidang kontrol cluster agar hanya memulai koneksi TCP ke node dan Pod pada port 443 (HTTPS) dan 10250 (kubelet). Untuk beberapa fitur Kubernetes, Anda mungkin perlu menambahkan aturan firewall untuk mengizinkan akses pada port tambahan. Jangan buat aturan firewall atau aturan kebijakan firewall hierarkis yang memiliki prioritas lebih tinggi daripada aturan firewall yang dibuat secara otomatis.

Fitur Kubernetes yang memerlukan aturan firewall tambahan meliputi:

Menambahkan aturan firewall akan mengizinkan traffic dari bidang kontrol cluster ke semua hal berikut:

  • Port yang ditentukan dari setiap node (hostPort).
  • Port yang ditentukan dari setiap Pod yang berjalan di node ini.
  • Port yang ditentukan dari setiap Service yang berjalan di node ini.

Untuk mempelajari aturan firewall, lihat Aturan firewall dalam dokumentasi Cloud Load Balancing.

Untuk menambahkan aturan firewall di cluster, Anda harus merekam blok CIDR bidang kontrol cluster dan target yang digunakan. Setelah mencatat hal ini, Anda dapat membuat aturan.

Lihat blok CIDR bidang kontrol

Anda memerlukan blok CIDR bidang kontrol cluster untuk menambahkan aturan firewall.

Konsolgcloud
  1. Buka halaman Google Kubernetes Engine di konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Klik nama cluster di daftar cluster.

Di tab Detail, di bagian Networking, catat nilai ini di kolom Rentang alamat bidang kontrol.

Jalankan perintah berikut:

gcloud container clusters describe CLUSTER_NAME

Ganti CLUSTER_NAME dengan nama cluster Anda.

Dalam output perintah, catat nilai di kolom masterIpv4CidrBlock.

Lihat aturan firewall yang ada

Anda perlu menentukan target (dalam hal ini, node tujuan) yang digunakan oleh aturan firewall yang ada di cluster.

Konsolgcloud
  1. Buka halaman Firewall policies di Konsol Google Cloud.

    Buka Kebijakan firewall

  2. Pada Tabel filter untuk Aturan firewall VPC, masukkan gke-CLUSTER_NAME.

Pada hasilnya, catat nilai di kolom Target.

Jalankan perintah berikut:

gcloud compute firewall-rules list \
    --filter 'name~^gke-CLUSTER_NAME' \
    --format 'table(
        name,
        network,
        direction,
        sourceRanges.list():label=SRC_RANGES,
        allowed[].map().firewall_rule().list():label=ALLOW,
        targetTags.list():label=TARGET_TAGS
    )'

Dalam output perintah, catat nilai di kolom Target.

Untuk melihat aturan firewall untuk VPC Bersama, tambahkan flag --project HOST_PROJECT_ID ke perintah.

Tambahkan aturan firewall

Konsolgcloud
  1. Buka halaman Firewall policies di Konsol Google Cloud.

    Buka Kebijakan firewall

  2. Klik Buat Aturan Firewall.

  3. Untuk Nama, masukkan nama aturan firewall.

  4. Dalam daftar Jaringan, pilih jaringan yang relevan.

  5. Di bagian Arah traffic, klik Ingress.

  6. Di bagian Tindakan jika ada kecocokan, klik Izinkan.

  7. Dalam daftar Target, pilih Tag target yang ditentukan.

  8. Untuk Tag target, masukkan nilai target yang Anda catat sebelumnya.

  9. Dalam daftar Filter sumber, pilih Rentang IPv4.

  10. Untuk Rentang IPv4 sumber, masukkan blok CIDR bidang kontrol cluster.

  11. Di bagian Protokol dan port, klikProtokol dan port yang ditentukan, centang kotak untuk protokol yang relevan (tcp atau udp), dan masukkan nomor port di bidang protokol.

  12. Klik Buat.

Jalankan perintah berikut:

gcloud compute firewall-rules create FIREWALL_RULE_NAME \
    --action ALLOW \
    --direction INGRESS \
    --source-ranges CONTROL_PLANE_RANGE \
    --rules PROTOCOL:PORT \
    --target-tags TARGET

Ganti kode berikut:

  • FIREWALL_RULE_NAME: nama yang Anda pilih untuk aturan firewall.
  • CONTROL_PLANE_RANGE: rentang alamat IP bidang kontrol cluster (masterIpv4CidrBlock) yang Anda kumpulkan sebelumnya.
  • PROTOCOL:PORT: port dan protokolnya, tcp atau udp.
  • TARGET: nilai target (Targets) yang Anda kumpulkan sebelumnya.

Guna menambahkan aturan firewall untuk VPC Bersama, tambahkan flag berikut ke perintah:

--project HOST_PROJECT_ID
--network NETWORK_ID

Memberikan akses internet keluar kepada node pribadi

Agar dapat memberikan akses internet keluar untuk node pribadi Anda, seperti untuk mengambil gambar dari registry eksternal, gunakan Cloud NAT untuk membuat dan mengonfigurasi Cloud Router. Cloud NAT memungkinkan node pribadi membuat koneksi keluar melalui internet untuk mengirim dan menerima paket.

Cloud Router memungkinkan semua node Anda di region tersebut menggunakan Cloud NAT untuk semua rentang IP primer dan alias. Cloud Router juga otomatis mengalokasikan alamat IP eksternal untuk gateway NAT.

Untuk mengetahui petunjuk cara membuat dan mengonfigurasi Cloud Router, lihat Membuat konfigurasi Cloud NAT menggunakan Cloud Router dalam dokumentasi Cloud NAT.

Men-deploy aplikasi container Windows Server

Untuk mempelajari cara men-deploy aplikasi container Windows Server ke cluster dengan node pribadi, lihat dokumentasi node pool Windows.

Langkah berikutnya