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 Arsitek jaringan, Administrator jaringan, atau tim Engineer jaringan lainnya di organisasi Anda yang bertanggung jawab untuk menentukan, menerapkan, dan memelihara arsitektur jaringan.

Cara kerja isolasi jaringan cluster

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 tidak terbatas 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 workload 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 VPC native tidak mendukung jaringan lama.

Rentang sekunder Pod tingkat node pool: saat membuat cluster GKE, jika Anda menentukan rentang sekunder Pod yang lebih kecil dari /24 per node pool menggunakan UI, Anda mungkin mengalami error berikut:

Getting Pod secondary range 'pod' must have a CIDR block larger or equal to /24

GKE tidak mendukung penentuan rentang yang lebih kecil dari /24 di tingkat node pool. Namun, penentuan rentang yang lebih kecil di tingkat cluster didukung. Hal ini dapat dilakukan dengan menggunakan Google Cloud CLI dengan argumen --cluster-ipv4-cidr. Untuk mengetahui informasi selengkapnya, lihat Membuat cluster dengan rentang CIDR tertentu.

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

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:

  • Buat kebijakan akses dinamis berdasarkan kebijakan IAM.
  • Mengakses bidang kontrol dari jaringan VPC lain atau lokasi eksternal tanpa perlu menyiapkan bastion host 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 diizinkan. Anda dapat mengelola akses ke endpoint berbasis IP dari 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 ke daftar yang diizinkan atau tolak 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 alamat IP eksternal atau Google Cloud alamat IP publik tanpa batasan.
  • Mengizinkan atau menolak akses dari semua atau sebagian 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.
  • Izinkan atau tolak akses dari alamat IP di Google Cloud region 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 Standard, gunakan Google Cloud CLI atau konsol. Google Cloud

Konsol

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. Konfigurasi atribut cluster Anda berdasarkan kebutuhan project Anda.

  4. Di menu navigasi, klik Networking.

  5. Di bagian Akses Bidang Kontrol, konfigurasikan endpoint bidang kontrol:

    1. Centang kotak Akses menggunakan DNS untuk mengaktifkan endpoint berbasis DNS bidang kontrol.
    2. Centang kotak Access using IPv4 addresses untuk mengaktifkan endpoint berbasis IP bidang kontrol. Gunakan konfigurasi yang disertakan dalam Tentukan alamat IP yang dapat mengakses bidang kontrol untuk menyesuaikan akses ke endpoint berbasis IP.

gcloud

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 memungkinkan 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. Jika Anda ingin menonaktifkan endpoint internal dan eksternal bidang kontrol, gunakan flag no-enable-ip-access.

Gunakan flag yang tercantum di Tentukan 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 salah satu peran IAM berikut ke projectGoogle 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 pada akses control plane 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 API Google Cloud .

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

  • 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:

Konsol

  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.
Tentukan aturan firewall alamat IP bidang kontrol

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

  1. Perluas bagian Tampilkan aturan firewall alamat IP.
  2. Centang kotak 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. Centang kotak Akses menggunakan alamat IP internal bidang kontrol dari region mana saja. Alamat IP internal dari region Google Cloud mana pun dapat mengakses endpoint internal bidang kontrol.

  4. Pilih Enforce authorized networks on the control plane's internal endpoint. 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 alamat IP eksternal ke jaringan yang diizinkan. Google Cloud Semua alamat IP publik dari Google Cloud dapat mengakses bidang kontrol.

gcloud

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. Jangan gunakan flag ini jika Anda ingin mengizinkan akses ke bidang kontrol dari alamat IP eksternal. Dalam hal ini, sebaiknya Anda mengontrol akses ke endpoint eksternal dengan tanda 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 tanda 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 region Google Cloud lain.

    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 bidang kontrol bagi cluster, gunakan gcloud CLI atau konsol Google Cloud .

Konsol

  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, di bagian Control Plane Networking, klik .

  4. Pada dialog Edit jaringan bidang kontrol, ubah akses bidang kontrol berdasarkan persyaratan kasus penggunaan Anda.

  5. Verifikasi konfigurasi bidang kontrol Anda.

gcloud

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. Jika Anda ingin menonaktifkan endpoint internal dan eksternal bidang kontrol, gunakan flag no-enable-ip-access.
  • enable-private-endpoint: Menentukan bahwa akses ke endpoint eksternal dinonaktifkan. Jangan gunakan flag ini jika Anda ingin mengizinkan akses ke bidang kontrol dari alamat IP eksternal. Dalam hal ini, sebaiknya Anda mengontrol akses ke endpoint eksternal dengan tanda 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 tanda 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 region Google Cloud lain.

    gcloud container clusters update CLUSTER_NAME
    

    Ganti CLUSTER_NAME dengan nama cluster.

Verifikasi konfigurasi bidang kontrol Anda

Anda dapat melihat endpoint cluster menggunakan gcloud CLI atau konsolGoogle Cloud .

Konsol

  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, di bagian Bidang kontrol, Anda dapat memeriksa karakteristik berikut dari endpoint bidang kontrol:

    • Endpoint DNS mencakup nama endpoint berbasis DNS 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 saja menampilkan status sebagai Diaktifkan jika 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.
    • Terapkan jaringan yang diizinkan di endpoint internal bidang kontrol menampilkan status Diaktifkan jika hanya CIDR di kolom Jaringan yang diizinkan 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.

gcloud

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 ini untuk mengetahui kesamaannya dengan kasus penggunaan Anda:

  • Contoh 1: Bidang kontrol dapat diakses dari alamat IP tertentu yang Anda tentukan. Alamat IP ini dapat mencakup alamat IP dari Google Cloud region 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:

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

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

Konsol

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

    Buka Google Kubernetes Engine

  2. Klik Create.

  3. Konfigurasi cluster Anda agar sesuai dengan kebutuhan Anda.

  4. Di menu navigasi, klik Networking.

  5. Di bagian Akses Bidang Kontrol, konfigurasikan endpoint bidang kontrol:

    1. Centang kotak Akses menggunakan DNS.
    2. Centang kotak Access using IPV4 addresses.
  6. Pilih Enable authorized networks.

  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 memerlukannya.

  12. Perluas bagian Tampilkan aturan firewall alamat IP.

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

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

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

gcloud

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:

  • Endpoint berbasis DNS bidang kontrol diaktifkan.
  • Endpoint eksternal bidang kontrol dinonaktifkan.
  • Bidang kontrol telah mengaktifkan jaringan yang diizinkan.
  • Semua akses ke bidang kontrol melalui alamat IP internal dari regionGoogle Cloud mana pun diizinkan.
  • Alamat IP eksternalGoogle Cloud tidak memiliki akses ke cluster Anda.

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

Konsol

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

    Buka Google Kubernetes Engine

  2. Klik Create.

  3. Konfigurasi cluster Anda agar sesuai dengan kebutuhan Anda.

  4. Di menu navigasi, klik Networking.

  5. Di bagian Akses Bidang Kontrol, konfigurasikan endpoint bidang kontrol:

    1. Centang kotak Akses menggunakan DNS.
    2. Centang kotak Access using IPV4 addresses.
  6. Perluas bagian Tampilkan aturan firewall alamat IP.

  7. Hapus centang pada Akses menggunakan alamat IP eksternal bidang kontrol. Bidang kontrol tidak dapat diakses oleh alamat IP eksternal mana pun.

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

  9. Centang kotak Akses menggunakan alamat IP internal bidang kontrol dari region mana saja. 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.

gcloud

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 Standard: Anda dapat membuat atau mengupdate node pool untuk menyediakan node pribadi atau publik dalam 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 konfigurasi jaringan tidak ditentukan untuk node pool baru.
  • Cluster Autopilot: Anda dapat membuat atau mengupdate cluster untuk menentukan konfigurasi jaringan default untuk semua workload Anda. GKE menjadwalkan workload baru dan yang sudah ada di node publik atau pribadi berdasarkan konfigurasi Anda. Anda juga dapat menentukan konfigurasi jaringan cluster secara eksplisit untuk setiap workload.

Konfigurasi cluster Anda

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

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

Konsol

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. Konfigurasi cluster Anda agar sesuai dengan kebutuhan 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 Aktifkan node pribadi untuk menyediakan node hanya dengan alamat IP eksternal (publik) yang memungkinkan klien eksternal mengakses node.
  6. Di bagian Advanced networking options, konfigurasi atribut tambahan yang kompatibel dengan VPC. 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, di 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 Aktifkan node pribadi untuk menyediakan node hanya dengan alamat IP eksternal (publik) yang memungkinkan klien eksternal mengakses node.
  5. Klik Simpan perubahan.

gcloud

Gunakan salah satu flag berikut untuk menentukan jaringan cluster:

  • enable-private-nodes: Untuk menyediakan node dengan hanya 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 bagi bidang kontrol.
  • no-enable-private-nodes: Untuk menyediakan node dengan hanya 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 dijadwalkan ulang. Proses ini mungkin memerlukan waktu beberapa jam.

Di cluster Standar, buat atau perbarui 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 pada node pool yang ada.

Konfigurasi cluster digantikan oleh konfigurasi jaringan di tingkat node pool atau workload.

Mengonfigurasi node pool atau workload Anda

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

Konsol

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. Konfigurasi kotak centang Enable private nodes berdasarkan kasus penggunaan Anda:

    1. Pilih Aktifkan node pribadi untuk menyediakan node hanya dengan alamat IP internal (node pribadi).
    2. Batalkan pilihan Aktifkan node pribadi 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 lebih lanjut pengelolaan node pool, lihat Menambahkan dan mengelola node pool.

gcloud

  • Di cluster Autopilot dan di node pool Standard yang menggunakan penyediaan otomatis node, tambahkan nodeSelector berikut ke spesifikasi Pod Anda:

    cloud.google.com/private-node=true
    

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

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

  • 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 dengan hanya alamat IP internal (node pribadi).
    • no-enable-private-nodes: Untuk menyediakan node dengan hanya 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 yang dinonaktifkan

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

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

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

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

    Jika Anda telah mengaktifkan endpoint berbasis IP, jalankan perintah berikut untuk mendapatkan kredensial bagi 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 Anda pada port 443 (HTTPS) dan 10250 (kubelet). Untuk beberapa fitur Kubernetes, Anda mungkin perlu menambahkan aturan firewall untuk mengizinkan akses pada port tambahan. Jangan membuat 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.

Konsol

  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.

gcloud

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.

Konsol

  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.

gcloud

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.

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

Tambahkan aturan firewall

Konsol

  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.

gcloud

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