Membuat cluster pengguna menggunakan klien GKE On-Prem API

Halaman ini menjelaskan cara membuat cluster pengguna menggunakan Konsol Google Cloud, Google Cloud CLI (gcloud CLI), atau Terraform.

Apa itu GKE On-Prem API?

GKE On-Prem API adalah API yang dihosting Google Cloud dan dapat Anda gunakan untuk mengelola siklus proses cluster lokal menggunakan Terraform dan aplikasi Google Cloud standar. GKE On-Prem API berjalan di infrastruktur Google Cloud. Terraform, konsol, dan gcloud CLI adalah klien API, dan menggunakan API untuk membuat cluster di pusat data Anda.

Untuk mengelola siklus proses cluster Anda, GKE On-Prem API harus menyimpan metadata tentang status cluster Anda di Google Cloud, menggunakan region Google Cloud yang Anda tentukan saat membuat cluster. Metadata ini memungkinkan API mengelola siklus proses cluster dan tidak menyertakan data khusus workload.

Saat membuat cluster menggunakan klien GKE On-Prem API, Anda harus menentukan project Google Cloud. Setelah dibuat, cluster akan otomatis terdaftar ke fleet project yang ditentukan. Project ini disebut sebagai project host armada. Project host fleet tidak dapat diubah setelah cluster dibuat.

Jika ingin, Anda dapat membuat cluster pengguna dengan membuat file konfigurasi cluster pengguna dan menggunakan gkectl, seperti yang dijelaskan dalam Membuat cluster pengguna menggunakan gkectl.

Jika Anda ingin menggunakan Terraform, konsol, atau gcloud CLI untuk mengelola siklus proses cluster yang dibuat menggunakan gkectl, lihat Mengonfigurasi cluster pengguna untuk dikelola oleh GKE On-Prem API.

Sebelum memulai

Bagian ini menjelaskan persyaratan untuk membuat cluster pengguna menggunakan klien GKE On-Prem API.

Memberikan izin IAM

Jika bukan pemilik project, Anda harus diberi roles/gkeonprem.admin.

Jika ingin mengakses halaman GKE Enterprise dan Google Kubernetes Engine di konsol, Anda juga harus memiliki peran berikut:

Setelah cluster dibuat, jika Anda bukan pemilik project dan ingin menggunakan gateway Connect untuk terhubung ke cluster pengguna melalui command line, peran berikut diperlukan:

  • roles/gkehub.gatewayAdmin: Peran ini memungkinkan Anda mengakses Connect gateway API. Jika Anda hanya memerlukan akses hanya baca ke cluster, roles/gkehub.gatewayReader sudah cukup.

  • roles/gkehub.viewer: Peran ini memungkinkan Anda mengambil kredensial cluster.

Untuk mengetahui informasi tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi

Mendaftarkan cluster admin

Anda harus memiliki cluster admin dan harus didaftarkan ke fleet sebelum dapat membuat cluster pengguna menggunakan klien GKE On-Prem API.

Aktifkan log audit Aktivitas Admin untuk cluster admin

Logging aktivitas admin ke Cloud Audit Logs harus diaktifkan di cluster admin.

Aktifkan logging dan pemantauan tingkat sistem untuk cluster admin

Cloud Logging dan Cloud Monitoring harus diaktifkan di cluster admin.

Google API yang diperlukan

Pastikan semua Google API yang diperlukan diaktifkan di project fleet host.

Selain itu, Anda perlu mengaktifkan GKE On-Prem API:

gcloud services enable --project FLEET_HOST_PROJECT_ID \
    gkeonprem.googleapis.com

Akses command line

Setelah cluster dibuat, jika Anda ingin menggunakan Connect gateway untuk terhubung ke cluster pengguna melalui command line, lakukan hal berikut:

Pastikan Anda telah menginstal alat command line berikut:

  • Versi terbaru gcloud CLI.
  • kubectl untuk menjalankan perintah pada cluster Kubernetes. Jika Anda perlu menginstal kubectl, ikuti instructions ini.

Jika Anda menggunakan Cloud Shell sebagai lingkungan shell untuk berinteraksi dengan Google Cloud, alat ini diinstal untuk Anda.

Versi yang tersedia untuk penginstalan baru

Saat membuat cluster pengguna, Anda biasanya menginstal GKE pada versi VMware yang cocok dengan cluster admin. Namun, Anda dapat menginstal versi patch yang lebih baru atau versi minor yang lebih baru. Misalnya, Anda mungkin ingin menginstal rilis patch terbaru saat membuat cluster pengguna untuk melanjutkan perbaikan bug. Perlu waktu sekitar 7 hingga 10 hari setelah rilis GKE on VMware agar versi tersedia di GKE On-Prem API.

Jika Anda ingin membuat cluster pengguna yang merupakan versi yang lebih baru dari cluster admin, pertama-tama download paket komponen khusus versi yang diperlukan cluster admin untuk mengelola cluster pengguna pada versi tersebut, lalu deploy komponen. Untuk mengetahui informasi selengkapnya, lihat Menginstal versi cluster yang lebih baru dari versi cluster admin.

Pilih alat untuk membuat cluster

Anda dapat menggunakan Terraform, Google Cloud Console, atau Google Cloud CLI (gcloud CLI) untuk membuat cluster yang dikelola oleh GKE On-Prem API. Jika ini pertama kalinya Anda menginstal GKE di VMware, konsol mungkin adalah alat yang paling mudah untuk digunakan.

Setelah memahami informasi yang harus Anda berikan untuk membuat cluster, Terraform atau gcloud CLI dapat lebih praktis bagi Anda, terutama jika Anda akan membuat lebih dari satu cluster. Terraform adalah infrastruktur standar industri sebagai alat kode. Jika organisasi Anda sudah menggunakan Terraform, Anda mungkin ingin menggunakannya untuk membuat cluster dan mengelola siklus proses cluster.

Dengan gcloud CLI, Anda dapat menyimpan perintah beserta argumennya ke dalam file teks dan membuat perubahan sesuai kebutuhan untuk membuat cluster tambahan. Jika menggunakan alat CI/CD, seperti Cloud Build, Anda dapat menggunakan perintah gcloud untuk membuat cluster dan kumpulan node, serta menentukan flag --impersonate-service-account untuk mengotomatiskan pembuatan.

Membuat cluster pengguna

Konsol

Sebagian besar kolom di Google Cloud Console berkaitan dengan kolom di dalam file konfigurasi cluster pengguna.

  1. Di konsol Google Cloud, buka halaman Create a GKE on VMware cluster.

    Buka Membuat GKE di cluster VMware

  2. Pilih project Google Cloud tempat Anda ingin membuat cluster. Project yang dipilih juga digunakan sebagai project host fleet. Project ini harus sama dengan tempat cluster admin terdaftar. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke fleet project yang dipilih.

Bagian berikut akan memandu Anda dalam mengonfigurasi cluster pengguna.

Dasar-dasar cluster

Masukkan informasi dasar tentang cluster.

  1. Masukkan Nama untuk cluster pengguna.
  2. Di bagian Cluster admin, pilih cluster admin dari daftar. Jika Anda tidak menentukan nama untuk cluster admin saat membuatnya, nama akan dibuat dalam formulir gke-admin-[HASH]. Jika Anda tidak mengenali nama cluster admin, jalankan perintah berikut di workstation admin:

    KUBECONFIG=ADMIN_CLUSTER_KUBECONFIG
    kubectl get OnPremAdminCluster -n kube-system -o=jsonpath='{.items[0].metadata.name}'
    

    Jika cluster admin yang ingin Anda gunakan tidak ditampilkan, lihat bagian pemecahan masalah Cluster admin tidak ditampilkan di menu drop-down Dasar-dasar cluster.

  3. Di kolom GCP API Location, pilih region Google Cloud dari daftar. Setelan ini menentukan region tempat GKE On-Prem API dijalankan, dan region tempat menyimpan hal-hal berikut:

    • Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
    • Data Cloud Logging dan Cloud Monitoring dari komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

    Nama cluster, project, dan lokasi bersama-sama mengidentifikasi Google Cloud secara unik.

  4. Pilih versi GKE pada VMware untuk cluster pengguna Anda.

  5. Sebagai pembuat cluster, Anda diberi hak istimewa admin cluster ke cluster tersebut. Secara opsional, masukkan alamat email pengguna lain yang akan mengelola cluster di kolom Cluster admin user di bagian Authorization.

    Saat cluster dibuat, GKE On-Prem API akan menerapkan kebijakan kontrol akses berbasis peran (RBAC) Kubernetes ke cluster tersebut untuk memberi Anda dan pengguna admin lainnya peran clusterrole/cluster-admin Kubernetes, yang menyediakan akses penuh ke setiap resource dalam cluster di semua namespace.

  6. Klik Next untuk membuka bagian Control unit.

Bidang Kontrol

Semua kolom di bagian Bidang kontrol ditetapkan dengan nilai default. Tinjau default dan secara opsional, ubah sesuai kebutuhan.

  1. Di kolom vCPU node bidang kontrol, masukkan jumlah vCPU (minimal 4) untuk setiap node bidang kontrol untuk cluster pengguna Anda.
  2. Di kolom Control-plane node memory, masukkan ukuran memori dalam MiB (minimum 8192 dan harus kelipatan 4) untuk setiap bidang kontrol cluster pengguna Anda.
  3. Di bagian Control-plane nodes, pilih jumlah node bidang kontrol untuk cluster pengguna Anda. Misalnya, Anda dapat memilih 1 node bidang kontrol untuk lingkungan pengembangan dan 3 node bidang kontrol untuk ketersediaan tinggi (HA), lingkungan produksi.
  4. Opsional, pilih Pengubahan ukuran node otomatis. Mengubah ukuran berarti vCPU dan resource memori yang ditetapkan ke node disesuaikan secara otomatis. Jika diaktifkan, node bidang kontrol untuk cluster pengguna akan diubah ukurannya sesuai dengan jumlah worker node di cluster pengguna. Jadi, saat Anda menambahkan lebih banyak worker node ke cluster pengguna, node bidang kontrol bertambah besar.
  5. Secara opsional, pilih Enable controlbidang v2. Mengaktifkan Bidang Kontrol V2 berarti bidang kontrol untuk cluster pengguna berjalan pada satu atau beberapa node di cluster pengguna itu sendiri, bukan di cluster admin (disebut sebagai model kubeception).

    Saat Anda memilih Enable control bidang v2, bagian Control bidang node IPs akan ditampilkan. Masukkan alamat IP untuk gateway, subnet mask, dan alamat IP untuk node bidang kontrol.

    Jika Controlplane V2 diaktifkan, kolom memori dan vCPU akan berlaku untuk node bidang kontrol di cluster pengguna. Jumlah {i>node<i} ditentukan oleh jumlah alamat IP yang Anda masukkan. Jika Controlplane V2 tidak diaktifkan, vCPU, memori, dan jumlah kolom node bidang kontrol berlaku untuk node di cluster admin. Pastikan Anda menyisihkan alamat IP yang cukup untuk cluster admin.

  6. Klik Next untuk membuka bagian Networking.

Networking

Di bagian ini, Anda akan menentukan alamat IP untuk node, Pod, dan Layanan cluster. Cluster pengguna harus memiliki satu alamat IP untuk setiap node dan alamat IP tambahan untuk node sementara yang diperlukan selama upgrade cluster, update, dan perbaikan otomatis. Untuk mengetahui informasi selengkapnya, lihat Berapa banyak alamat IP yang diperlukan cluster pengguna?.

  1. Di bagian Node IP, pilih mode IP untuk cluster pengguna. Pilih salah satu opsi berikut:

    • DHCP: Pilih DHCP jika Anda ingin node cluster mendapatkan alamat IP dari server DHCP.

    • Statis: Pilih Statis jika Anda ingin memberikan alamat IP statis untuk node cluster Anda, atau jika Anda ingin menyiapkan load balancing manual.

  2. Jika Anda memilih DHCP, lanjutkan ke langkah berikutnya untuk menentukan Service dan Pod CIDRs. Untuk mode IP Statis, berikan informasi berikut:

    1. Masukkan alamat IP Gateway untuk cluster pengguna.
    2. Masukkan Subnet mask untuk node cluster pengguna.

    3. Di bagian Alamat IP, masukkan alamat IP dan, jika perlu, nama host untuk node dalam cluster pengguna. Anda dapat memasukkan alamat IP v4 individual (seperti 192.0.2.1) atau blok CIDR dari alamat IPv4 (seperti 192.0.2.0/24).

      • Jika Anda memasukkan blok CIDR, jangan masukkan nama host.
      • Jika memasukkan alamat IP individu, Anda juga dapat memasukkan nama host. Jika Anda tidak memasukkan nama host, GKE di VMware akan menggunakan nama VM dari vSphere sebagai nama host.
    4. Klik + Tambahkan Alamat IP jika diperlukan untuk memasukkan lebih banyak alamat IP.

  3. Di bagian Service and Pod CIDRs, konsol akan memberikan rentang alamat berikut untuk Service dan Pod Kubernetes Anda:

    • CIDR layanan: 10.96.0.0/20
    • CIDR Pod: 192.168.0.0/16

    Jika memilih untuk memasukkan rentang alamat Anda sendiri, baca artikel Alamat IP untuk Pod dan Layanan untuk mengetahui praktik terbaik.

  4. Jika Anda memilih mode IP Statis atau Aktifkan bidang kontrol v2, tentukan informasi berikut di bagian Konfigurasi host:

    1. Masukkan alamat IP server DNS.
    2. Masukkan alamat IP server NTP.
    3. Secara opsional, masukkan domain penelusuran DNS.
  5. Klik Next untuk membuka bagian Load balancer.

Load balancer

Pilih load balancer yang akan disiapkan untuk cluster Anda. Lihat Ringkasan load balancer untuk mengetahui informasi selengkapnya.

Pilih Load balancer type dari daftar.

Dipaketkan dengan MetalLB

Mengonfigurasi load balancing yang dipaketkan dengan MetalLB. Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin Anda menggunakan SeeSaw atau MetalLB. Opsi ini memerlukan konfigurasi minimal. MetalLB berjalan langsung di cluster node Anda dan tidak memerlukan VM tambahan. Untuk informasi selengkapnya tentang manfaat menggunakan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Load balancing paket dengan MetalLB.

  1. Di bagian Address pool, konfigurasikan setidaknya satu kumpulan alamat, seperti berikut:

    1. Masukkan nama untuk kumpulan alamat.

    2. Masukkan rentang alamat IP yang berisi VIP ingress dalam salah satu notasi CIDR (misalnya, 192.0.2.0/26) atau notasi rentang (misalnya, 192.0.2.64-192.0.2.72). Untuk menentukan satu alamat IP di dalam kumpulan, gunakan /32 dalam notasi CIDR (misalnya, 192.0.2.1/32).

    3. Jika alamat IP untuk Layanan jenis LoadBalancer tidak berada dalam rentang alamat IP yang sama dengan VIP masuk, klik + Tambahkan Rentang Alamat IP, lalu masukkan rentang alamat IP lainnya.

      Alamat IP di setiap kumpulan tidak boleh tumpang-tindih, dan harus berada dalam subnet yang sama dengan node cluster.

    4. Di bagian Penetapan alamat IP, pilih salah satu opsi berikut:

      • Otomatis: Pilih opsi ini jika Anda ingin pengontrol MetalLB secara otomatis menetapkan alamat IP dari kumpulan alamat ke Layanan berjenis LoadBalancer
      • Manual: Pilih opsi ini jika Anda ingin menggunakan alamat dari kumpulan untuk menentukan alamat secara manual untuk Layanan jenis LoadBalancer
    5. Klik Hindari alamat IP yang berisi bug jika Anda ingin pengontrol MetalLB tidak menggunakan alamat dari kumpulan yang berakhiran .0 atau .255. Hal ini untuk menghindari masalah perangkat konsumen yang berisi bug dan secara keliru menurunkan traffic yang dikirim ke alamat IP khusus tersebut.

    6. Jika sudah selesai, klik Selesai.

  2. Jika perlu, klik Tambahkan Kumpulan Alamat.

  3. Di bagian Virtual IP, masukkan perintah berikut:

    • IP Bidang kontrol: Alamat IP tujuan yang akan digunakan untuk traffic yang dikirim ke server Kubernetes API cluster pengguna. Server Kubernetes API untuk cluster pengguna berjalan pada node di cluster admin. Alamat IP ini harus berada di domain L2 yang sama dengan node cluster admin. Jangan tambahkan alamat ini di bagian Address pool.

    • VIP Ingress: Alamat IP yang akan dikonfigurasi di load balancer untuk proxy masuk. Anda harus menambahkannya ke kumpulan alamat di bagian Address pool.

  4. Klik Lanjutkan.

Load balancer Big-IP F5

Anda dapat menggunakan F5 untuk cluster pengguna hanya jika cluster admin Anda menggunakan F5. Pastikan untuk menginstal dan mengonfigurasi ADC F5 BIG-IP sebelum mengintegrasikannya dengan GKE di VMware.

  1. Di bagian Virtual IP, masukkan perintah berikut:

    • IP Bidang kontrol: Alamat IP tujuan yang akan digunakan untuk traffic yang dikirim ke server Kubernetes API.

    • VIP Ingress: Alamat IP yang akan dikonfigurasi di load balancer untuk proxy masuk.

  2. Di kolom Address, masukkan alamat load balancer BIG-IP F5 Anda.

  3. Di kolom Partition, masukkan nama partisi BIG-IP yang Anda buat untuk cluster pengguna.

  4. Di kolom sNAT pool name, masukkan nama kumpulan SNAT Anda, jika ada.

  5. Klik Lanjutkan.

Load balancer manual

Mengonfigurasi load balancing manual. Anda dapat menggunakan load balancer manual untuk cluster pengguna hanya jika cluster admin Anda menggunakan load balancer manual. Di GKE di VMware, server Kubernetes API, ingress proxy, dan layanan add-on untuk agregasi log masing-masing diekspos oleh Layanan Kubernetes jenis LoadBalancer. Pilih nilai nodePort Anda sendiri dalam rentang 30000 - 32767 untuk Layanan ini. Untuk proxy masuk, pilih nilai nodePort untuk traffic HTTP dan HTTPS. Lihat Mengaktifkan mode load balancing manual untuk mengetahui informasi selengkapnya.

  1. Di bagian Virtual IP, masukkan perintah berikut:

    • IP Bidang kontrol: Alamat IP tujuan yang akan digunakan untuk traffic yang dikirim ke server Kubernetes API.

    • VIP Ingress: Alamat IP yang akan dikonfigurasi di load balancer untuk proxy masuk.

  2. Di kolom Control-plan node port, masukkan nilai nodePort untuk server Kubernetes API. Server Kubernetes API cluster pengguna berjalan di cluster admin.

  3. Di kolom Ingress HTTP node port, masukkan nilai nodePort untuk traffic HTTP ke proxy masuk.

  4. Di kolom Port node HTTPS Ingress, masukkan nilai nodePort untuk traffic HTTPS ke proxy ingress.

  5. Di kolom Konnectivity server node port, masukkan nilai nodePort untuk server Konnectivity.

  6. Klik Lanjutkan.

Features

Bagian ini menampilkan fitur dan operasi yang diaktifkan pada cluster.

Hal berikut diaktifkan secara otomatis dan tidak dapat dinonaktifkan:

  1. Hal berikut diaktifkan secara default, tetapi Anda dapat menonaktifkannya:

    • Aktifkan driver vSphere CSI: Juga disebut sebagai Plugin Penyimpanan Container vSphere. Driver Container Storage Interface (CSI) berjalan di cluster Kubernetes native yang di-deploy di vSphere untuk menyediakan volume persisten pada penyimpanan vSphere. Untuk informasi selengkapnya, lihat Menggunakan driver Antarmuka Penyimpanan Container vSphere.
    • Aktifkan grup anti-afinitas: Aturan anti-afinitas VMware Distributed Resource Scheduler (DRS) otomatis dibuat untuk node cluster pengguna Anda, sehingga menyebabkan node tersebut tersebar di setidaknya 3 host fisik di pusat data Anda. Pastikan lingkungan vSphere Anda memenuhi persyaratan.
  2. Klik Next untuk mengonfigurasi kumpulan node

Kumpulan node

Cluster Anda akan dibuat dengan minimal satu kumpulan node. Kumpulan node adalah template untuk grup node yang dibuat di cluster ini. Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola node pool .

  1. Di bagian Node pool default, selesaikan langkah-langkah berikut:

    1. Masukkan nama kumpulan Node atau setujui "default-pool" sebagai nama.
    2. Masukkan jumlah vCPUs untuk setiap node dalam kumpulan (minimal 4 per pekerja cluster pengguna).
    3. Masukkan ukuran memori dalam mebibyte (MiB) untuk setiap node dalam kumpulan (minimum 8.192 MiB per node worker cluster pengguna dan harus kelipatan 4).
    4. Di kolom Nodes, masukkan jumlah node dalam kumpulan (minimal 3). Jika Anda memasukkan alamat IP statis untuk Node IP di bagian Networking, pastikan Anda memasukkan alamat IP yang cukup untuk mengakomodasi node cluster pengguna ini.
    5. Pilih OS image type: Ubuntu, Ubuntu Containerd, atau COS.
    6. Masukkan Ukuran boot disk dalam gigabyte (GiB) (minimal 40 GiB).
    7. Jika Anda menggunakan MetalLB sebagai load balancer, MetalLB harus diaktifkan di minimal satu kumpulan node. Biarkan Use this node pool for MetalLB load balancing dipilih, atau tambahkan node pool lain untuk digunakan MetalLB.
  2. Di bagian Node pool metadata (opsional), jika Anda ingin menambahkan label dan taint Kubernetes, lakukan hal berikut:

    1. Klik + Add Kubernetes Labels. Masukkan Key dan Value untuk label. Ulangi jika perlu.
    2. Klik + Add Taint. Masukkan Key, Value, dan Effect untuk taint. Ulangi jika perlu.
  3. Klik Verifikasi dan Selesaikan untuk membuat cluster pengguna. Perlu waktu 15 menit atau lebih untuk membuat cluster pengguna. Konsol menampilkan pesan status saat memverifikasi setelan dan membuat cluster di pusat data Anda.

    Jika terjadi error saat memverifikasi setelan, konsol akan menampilkan pesan error yang seharusnya cukup jelas agar Anda dapat memperbaiki masalah konfigurasi, lalu mencoba membuat cluster lagi.

    Untuk mengetahui informasi selengkapnya tentang kemungkinan error dan cara memperbaikinya, lihat Memecahkan masalah pembuatan cluster pengguna di Konsol Google Cloud.

gcloud CLI

Anda dapat menggunakan perintah berikut untuk membuat cluster pengguna:

gcloud container vmware clusters create

Setelah membuat cluster, Anda harus membuat setidaknya satu kumpulan node menggunakan perintah berikut:

gcloud container vmware node-pools create

Sebagian besar tanda untuk membuat cluster dan kumpulan node sesuai dengan kolom dalam file konfigurasi cluster pengguna. Untuk membantu memulai, Anda dapat menguji perintah lengkap di bagian contoh.

Sebelum memulai

  1. Login dengan Akun Google Anda

    gcloud auth login
    
  2. Pastikan untuk mengupdate komponen:

    gcloud components update
    
  3. Dapatkan daftar versi yang tersedia:

    gcloud container vmware clusters query-version-config \
      --admin-cluster-membership=ADMIN_CLUSTER_NAME \
      --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \
      --location=REGION
    

    Ganti kode berikut:

    • ADMIN_CLUSTER_NAME: Nama cluster admin.

    • FLEET_HOST_PROJECT_ID: ID project tempat cluster admin didaftarkan.

    • REGION: Region Google Cloud yang Anda tentukan saat mendaftarkan cluster di GKE On-Prem API.

    Output perintah ini akan mirip dengan berikut ini:

    versions:
    - isInstalled: true
      version: 1.14.3-gke.25
    - version: 1.14.4-gke.54
    - version: 1.15.0-gke.581
    

Versi yang dapat Anda gunakan untuk membuat cluster pengguna dianotasi dengan isInstalled=true, yang berarti cluster admin memiliki komponen khusus versi yang diperlukan untuk mengelola cluster pengguna dari versi tersebut. Jika Anda ingin membuat cluster pengguna dengan versi lain yang tersedia, lihat Menginstal versi yang lebih baru dari versi cluster admin.

Contoh

Contoh berikut menunjukkan cara membuat cluster pengguna dengan load balancer yang berbeda. Untuk mengetahui informasi tentang opsi load balancing yang tersedia, lihat Ringkasan load balancer untuk mengetahui informasi selengkapnya.

Contoh tersebut menggunakan nilai default untuk mengonfigurasi node bidang kontrol. Jika Anda ingin mengubah salah satu setelan default, sertakan tanda yang dijelaskan di bagian Flag bidang kontrol. Jika perlu, Anda juga dapat mengubah beberapa setelan vSphere.

Setelah cluster berjalan, Anda harus menambahkan kumpulan node sebelum men-deploy beban kerja, seperti yang dijelaskan di bagian Membuat kumpulan node.

MetalLB & DHCP

Contoh ini menunjukkan cara membuat cluster pengguna dengan load balancer MetalLB yang dipaketkan dan menggunakan server DHCP untuk mendapatkan alamat IP bagi node cluster Anda.

Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin Anda menggunakan SeeSaw atau MetalLB. Opsi load balancing ini memerlukan konfigurasi minimal. MetalLB berjalan langsung pada node cluster Anda dan tidak memerlukan VM tambahan. Untuk informasi selengkapnya tentang manfaat menggunakan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Load balancing paket dengan MetalLB.

Pastikan men-scroll ke atas jika perlu guna mengisi placeholder ADMIN_CLUSTER_NAME untuk tanda --admin-cluster-membership. Contoh ini menggunakan nama cluster admin yang ditentukan secara lengkap, sehingga Anda tidak perlu menyertakan --admin-cluster-membership-location dan --admin-cluster-membership-project.

gcloud container vmware clusters create USER_CLUSTER_NAME \
  --project=FLEET_HOST_PROJECT_ID \
  --admin-cluster-membership=projects/FLEET_HOST_PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
  --location=REGION \
  --version=VERSION \
  --admin-users=YOUR_EMAIL_ADDRESS \
  --admin-users=ANOTHER_EMAIL_ADDRESS \
  --service-address-cidr-blocks=SERVICE_CIDR_BLOCK \
  --pod-address-cidr-blocks=POD_CIDR_BLOCK \
  --metal-lb-config-address-pools='pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
  --control-plane-vip=CONTROL_PLANE_VIP \
  --ingress-vip=INGRESS_VIP \
  --enable-dhcp
  • USER_CLUSTER_NAME: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:
    • berisi maksimal 40 karakter
    • hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (-)
    • diawali dengan karakter alfabet
    • diakhiri dengan karakter alfanumerik
  • FLEET_HOST_PROJECT_ID: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin didaftarkan. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.
  • ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Dalam flag --admin-cluster-membership, Anda dapat menggunakan nama cluster yang ditentukan secara lengkap, yang memiliki format berikut:
        projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME

    Atau, Anda dapat menetapkan --admin-cluster-membership ke nama cluster admin, seperti pada contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan --admin-cluster-membership-project dan lokasinya dengan --admin-cluster-membership-location. Lokasi cluster admin adalah global atau region Google Cloud. Jika Anda perlu menemukan region, jalankan gcloud container fleet memberships list.

  • REGION: Region Google Cloud tempat GKE On-Prem API (gkeonprem.googleapis.com), layanan Fleet (gkehub.googleapis.com), dan layanan Connect (gkeconnect.googleapis.com) dijalankan. Tentukan us-west1 atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat hal berikut disimpan:
    • Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
    • Data Cloud Logging dan Cloud Monitoring dari komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

    Nama cluster, project, dan lokasi bersama-sama mengidentifikasi cluster secara unik di Google Cloud.

  • VERSION: Versi GKE di VMware untuk cluster pengguna Anda.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika tanda --admin-users tidak disertakan, sebagai pembuat cluster, Anda akan diberi hak istimewa admin cluster secara default. Namun, jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan harus menyertakan alamat email Anda serta alamat email administrator lainnya. Misalnya, untuk menambahkan dua administrator:
        --admin-users=sara@example.com \
        --admin-users=amal@example.com

    Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster tersebut untuk memberi Anda dan pengguna admin lainnya peran clusterrole/cluster-admin Kubernetes, yang memberikan akses penuh ke setiap resource dalam cluster di semua namespace.

  • SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Minimal rentang /24.

    Contoh: --service-address-cidr-blocks=10.96.0.0/20

  • POD_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Minimal rentang /18.

    Contoh: --pod-address-cidr-blocks=192.168.0.0/16

  • --metal-lb-config-address-pools: Menyertakan tanda ini untuk menentukan konfigurasi bagi kumpulan alamat yang akan digunakan oleh load balancer MetalLB. Nilai untuk flag memiliki format berikut:
    --metal-lb-config-address-pool 'pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \

    Nilai ini memiliki segmen yang diawali dengan kata kunci pool, avoid-buggy-ip, manual-assign, dan addresses. Pisahkan setiap segmen dengan koma.

    • pool: Nama kolam renang pilihan Anda.
    • avoid-buggy-ips1: Jika Anda menetapkannya ke True, pengontrol MetalLB tidak akan menetapkan alamat IP yang diakhiri dengan .0 atau .255 ke Layanan. Hal ini untuk menghindari masalah perangkat konsumen yang memiliki bug dan secara keliru menurunkan traffic yang dikirim ke alamat IP khusus tersebut. Jika tidak ditentukan, defaultnya adalah False.
    • manual-assign: Jika Anda tidak ingin pengontrol MetalLB menetapkan alamat IP secara otomatis dari kumpulan ini ke Layanan, tetapkan ini ke True. Kemudian, developer dapat membuat Service jenis LoadBalancer dan menentukan salah satu alamat dari kumpulan secara manual. Jika tidak ditentukan, manual-assign akan ditetapkan ke False.
    • Dalam daftar addresses: Setiap alamat harus berupa rentang dalam notasi CIDR atau format rentang dengan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (seperti untuk VIP masuk), gunakan /32 dalam notasi CIDR, misalnya: 192.0.2.1/32.

    Perhatikan hal-hal berikut:

    • Letakkan seluruh nilai dalam tanda kutip tunggal.
    • Spasi kosong tidak diizinkan.
    • Pisahkan setiap rentang alamat IP dengan titik koma.

    Contoh:

    --metal-lb-config-address-pool 'pool=pool1,avoid-buggy-ips=True,manual-assign=True,addresses=10.251.134.80/32;192.168.1.0/26;192.168.1.2-192.168.1.3'
  • CONTROL_PLANE_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk server Kubernetes API cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

  • INGRESS_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy masuk.

    Contoh: --ingress-vip=10.251.134.80

    Alamat IP untuk VIP ingress harus berada dalam salah satu kumpulan alamat MetalLB.

  • --enable-dhcp: Sertakan --enable-dhcp jika Anda ingin node cluster Anda mendapatkan alamat IP-nya dari server DHCP yang Anda sediakan. Jangan sertakan flag ini jika Anda ingin memberikan alamat IP statis untuk node cluster, atau jika Anda ingin menyiapkan load balancing manual.

MetalLB & IP Statis

Contoh ini menunjukkan cara membuat cluster pengguna dengan load balancer MetalLB yang dipaketkan dan menetapkan alamat IP statis ke node cluster Anda.

Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin Anda menggunakan SeeSaw atau MetalLB. Opsi load balancing ini memerlukan konfigurasi minimal. MetalLB berjalan langsung pada node cluster Anda dan tidak memerlukan VM tambahan. Untuk informasi selengkapnya tentang manfaat menggunakan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Load balancing paket dengan MetalLB.

Pastikan men-scroll ke atas jika perlu guna mengisi placeholder ADMIN_CLUSTER_NAME untuk tanda --admin-cluster-membership. Contoh ini menggunakan nama cluster admin yang ditentukan secara lengkap, sehingga Anda tidak perlu menyertakan --admin-cluster-membership-location dan --admin-cluster-membership-project.

gcloud container vmware clusters create USER_CLUSTER_NAME \
  --project=FLEET_HOST_PROJECT_ID \
  --admin-cluster-membership=projects/FLEET_HOST_PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
  --location=REGION \
  --version=VERSION \
  --admin-users=YOUR_EMAIL_ADDRESS \
  --admin-users=ANOTHER_EMAIL_ADDRESS \
  --service-address-cidr-blocks=SERVICE_CIDR_BLOCK \
  --pod-address-cidr-blocks=POD_CIDR_BLOCK \
  --metal-lb-config-address-pools='pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
  --control-plane-vip=CONTROL_PLANE_VIP \
  --ingress-vip=INGRESS_VIP \
  --static-ip-config-ip-blocks='gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1;IP_ADDRESS_2 HOST_2;...' \
  --dns-servers=DNS_SERVER,... \
  --dns-search-domains=DNS_SEARCH_DOMAIN,... \
  --ntp-servers=NTP_SERVER,...

Ganti kode berikut:

  • USER_CLUSTER_NAME: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:
    • berisi maksimal 40 karakter
    • hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (-)
    • diawali dengan karakter alfabet
    • diakhiri dengan karakter alfanumerik
  • FLEET_HOST_PROJECT_ID: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin didaftarkan. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.
  • ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Dalam flag --admin-cluster-membership, Anda dapat menggunakan nama cluster yang ditentukan secara lengkap, yang memiliki format berikut:
        projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME

    Atau, Anda dapat menetapkan --admin-cluster-membership ke nama cluster admin, seperti pada contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan --admin-cluster-membership-project dan lokasinya dengan --admin-cluster-membership-location. Lokasi cluster admin adalah global atau region Google Cloud. Jika Anda perlu menemukan region, jalankan gcloud container fleet memberships list.

  • REGION: Region Google Cloud tempat GKE On-Prem API (gkeonprem.googleapis.com), layanan Fleet (gkehub.googleapis.com), dan layanan Connect (gkeconnect.googleapis.com) dijalankan. Tentukan us-west1 atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat hal berikut disimpan:
    • Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
    • Data Cloud Logging dan Cloud Monitoring dari komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

    Nama cluster, project, dan lokasi bersama-sama mengidentifikasi cluster secara unik di Google Cloud.

  • VERSION: Versi GKE di VMware untuk cluster pengguna Anda.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika tanda --admin-users tidak disertakan, sebagai pembuat cluster, Anda akan diberi hak istimewa admin cluster secara default. Namun, jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan harus menyertakan alamat email Anda serta alamat email administrator lainnya. Misalnya, untuk menambahkan dua administrator:
        --admin-users=sara@example.com \
        --admin-users=amal@example.com

    Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster tersebut untuk memberi Anda dan pengguna admin lainnya peran clusterrole/cluster-admin Kubernetes, yang memberikan akses penuh ke setiap resource dalam cluster di semua namespace.

  • SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Minimal rentang /24.

    Contoh: --service-address-cidr-blocks=10.96.0.0/20

  • POD_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Minimal rentang /18.

    Contoh: --pod-address-cidr-blocks=192.168.0.0/16

  • --metal-lb-config-address-pools: Menyertakan tanda ini untuk menentukan konfigurasi bagi kumpulan alamat yang akan digunakan oleh load balancer MetalLB. Nilai untuk flag memiliki format berikut:
    --metal-lb-config-address-pool 'pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \

    Nilai ini memiliki segmen yang diawali dengan kata kunci pool, avoid-buggy-ip, manual-assign, dan addresses. Pisahkan setiap segmen dengan koma.

    • pool: Nama kolam renang pilihan Anda.
    • avoid-buggy-ips1: Jika Anda menetapkannya ke True, pengontrol MetalLB tidak akan menetapkan alamat IP yang diakhiri dengan .0 atau .255 ke Layanan. Hal ini untuk menghindari masalah perangkat konsumen yang memiliki bug dan secara keliru menurunkan traffic yang dikirim ke alamat IP khusus tersebut. Jika tidak ditentukan, defaultnya adalah False.
    • manual-assign: Jika Anda tidak ingin pengontrol MetalLB menetapkan alamat IP secara otomatis dari kumpulan ini ke Layanan, tetapkan ini ke True. Kemudian, developer dapat membuat Service jenis LoadBalancer dan menentukan salah satu alamat dari kumpulan secara manual. Jika tidak ditentukan, manual-assign akan ditetapkan ke False.
    • Dalam daftar addresses: Setiap alamat harus berupa rentang dalam notasi CIDR atau format rentang dengan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (seperti untuk VIP masuk), gunakan /32 dalam notasi CIDR, misalnya: 192.0.2.1/32.

    Perhatikan hal-hal berikut:

    • Letakkan seluruh nilai dalam tanda kutip tunggal.
    • Spasi kosong tidak diizinkan.
    • Pisahkan setiap rentang alamat IP dengan titik koma.

    Contoh:

    --metal-lb-config-address-pool 'pool=pool1,avoid-buggy-ips=True,manual-assign=True,addresses=10.251.134.80/32;192.168.1.0/26;192.168.1.2-192.168.1.3'
  • CONTROL_PLANE_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk server Kubernetes API cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

  • INGRESS_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy masuk.

    Contoh: --ingress-vip=10.251.134.80

    Alamat IP untuk VIP ingress harus berada dalam salah satu kumpulan alamat MetalLB.

  • --static-ip-config-ip-blocks: Menentukan gateway default, subnet mask, dan daftar alamat IP statis untuk node pekerja di cluster pengguna. Nilai untuk flag memiliki format berikut:
    --static-ip-config-ip-blocks 'gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1;IP_ADDRESS_2 HOST_2;...'

    Nilai ini memiliki segmen yang dimulai dengan kata kunci gateway, netmask, dan ips. Pisahkan segmen dengan koma.

    Perhatikan hal-hal berikut:

    • Letakkan seluruh nilai dalam tanda kutip tunggal.
    • Spasi kosong tidak diizinkan, kecuali antara alamat IP dan nama host.

    Dalam daftar alamat IP:

    • Anda dapat menentukan alamat IP individual atau blok CIDR alamat IP.
    • Pisahkan setiap alamat IP atau blok CIDR dengan titik koma.
    • Untuk alamat IP individual, Anda dapat menentukan nama host setelah alamat IP (opsional). Pisahkan alamat IP dan nama host dengan spasi. Jika Anda tidak menentukan nama host, GKE di VMware akan menggunakan nama VM dari vSphere sebagai nama host.
    • Jika Anda menentukan blok CIDR, jangan tentukan nilai untuk nama host.

    Contoh:

    --static-ip-config-ip-blocks 'gateway=172.16.23.254,netmask=255.255.252.0,ips=172.16.20.10;172.16.20.11 host2;172.16.20.12/30'
  • DNS_SERVER: Daftar yang dipisahkan koma dari alamat IP server DNS untuk VM.
  • DNS_SEARCH_DOMAIN: Daftar domain penelusuran DNS yang dipisahkan koma untuk digunakan oleh host. Domain ini digunakan sebagai bagian dari daftar penelusuran domain.

    Contoh:

    --dns-search-domains example.com,examplepetstore.com
  • NTP_SERVER: Daftar yang dipisahkan koma dari alamat IP server waktu yang akan digunakan oleh VM.

F5 BIG-IP & DHCP

Contoh ini menunjukkan cara membuat cluster pengguna dengan load balancer BESAR F5 dan menggunakan server DHCP untuk mendapatkan alamat IP bagi node cluster Anda.

Anda dapat menggunakan F5 untuk cluster pengguna hanya jika cluster admin Anda menggunakan F5. Pastikan untuk menginstal dan mengonfigurasi ADC F5 BIG-IP sebelum mengintegrasikannya dengan GKE di VMware. Lihat panduan penginstalan ADC F5 BIG-IP untuk mengetahui informasi selengkapnya. Nama pengguna dan sandi F5 diwariskan dari cluster admin.

Pastikan men-scroll ke atas jika perlu guna mengisi placeholder ADMIN_CLUSTER_NAME untuk tanda --admin-cluster-membership. Contoh ini menggunakan nama cluster admin yang ditentukan secara lengkap, sehingga Anda tidak perlu menyertakan --admin-cluster-membership-location dan --admin-cluster-membership-project.

gcloud container vmware clusters create USER_CLUSTER_NAME \
  --project=FLEET_HOST_PROJECT_ID \
  --admin-cluster-membership=projects/FLEET_HOST_PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
  --location=REGION \
  --version=VERSION \
  --admin-users=YOUR_EMAIL_ADDRESS \
  --admin-users=ANOTHER_EMAIL_ADDRESS \
  --service-address-cidr-blocks=SERVICE_CIDR_BLOCK \
  --pod-address-cidr-blocks=POD_CIDR_BLOCK \
  --f5-config-address=F5_CONFIG_ADDRESS \
  --f5-config-partition=F5_CONFIG_PARTITION \
  --f5-config-snat-pool=F5_CONFIG_SNAT_POOL \
  --control-plane-vipCONTROL_PLANE_VIP \
  --ingress-vip=INGRESS_VIP \
  --enable-dhcp
  • USER_CLUSTER_NAME: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:
    • berisi maksimal 40 karakter
    • hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (-)
    • diawali dengan karakter alfabet
    • diakhiri dengan karakter alfanumerik
  • FLEET_HOST_PROJECT_ID: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin didaftarkan. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.
  • ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Dalam flag --admin-cluster-membership, Anda dapat menggunakan nama cluster yang ditentukan secara lengkap, yang memiliki format berikut:
        projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME

    Atau, Anda dapat menetapkan --admin-cluster-membership ke nama cluster admin, seperti pada contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan --admin-cluster-membership-project dan lokasinya dengan --admin-cluster-membership-location. Lokasi cluster admin adalah global atau region Google Cloud. Jika Anda perlu menemukan region, jalankan gcloud container fleet memberships list.

  • REGION: Region Google Cloud tempat GKE On-Prem API (gkeonprem.googleapis.com), layanan Fleet (gkehub.googleapis.com), dan layanan Connect (gkeconnect.googleapis.com) dijalankan. Tentukan us-west1 atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat hal berikut disimpan:
    • Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
    • Data Cloud Logging dan Cloud Monitoring dari komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

    Nama cluster, project, dan lokasi bersama-sama mengidentifikasi cluster secara unik di Google Cloud.

  • VERSION: Versi GKE di VMware untuk cluster pengguna Anda.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika tanda --admin-users tidak disertakan, sebagai pembuat cluster, Anda akan diberi hak istimewa admin cluster secara default. Namun, jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan harus menyertakan alamat email Anda serta alamat email administrator lainnya. Misalnya, untuk menambahkan dua administrator:
        --admin-users=sara@example.com \
        --admin-users=amal@example.com

    Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster tersebut untuk memberi Anda dan pengguna admin lainnya peran clusterrole/cluster-admin Kubernetes, yang memberikan akses penuh ke setiap resource dalam cluster di semua namespace.

  • SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Minimal rentang /24.

    Contoh: --service-address-cidr-blocks=10.96.0.0/20

  • POD_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Minimal rentang /18.

    Contoh: --pod-address-cidr-blocks=192.168.0.0/16

  • F5_CONFIG_ADDRESS: Alamat load balancer Big-IP F5 Anda.

  • F5_CONFIG_PARTITION:Nama partisi BIG-IP yang Anda buat untuk cluster pengguna.

  • F5_CONFIG_SNAT_POOL: Nama kumpulan SNAT Anda, jika ada.

  • CONTROL_PLANE_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk server Kubernetes API cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

  • INGRESS_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy masuk.

    Contoh: --ingress-vip=10.251.134.80

    Alamat IP untuk VIP ingress harus berada dalam salah satu kumpulan alamat MetalLB.

  • --enable-dhcp: Sertakan --enable-dhcp jika Anda ingin node cluster Anda mendapatkan alamat IP-nya dari server DHCP yang Anda sediakan. Jangan sertakan flag ini jika Anda ingin memberikan alamat IP statis untuk node cluster, atau jika Anda ingin menyiapkan load balancing manual.

LB & IP Statis Manual

Contoh ini menunjukkan cara membuat cluster pengguna dengan load balancer manual dan menetapkan alamat IP statis ke node cluster Anda.

Anda dapat menggunakan load balancer manual untuk cluster pengguna hanya jika cluster admin menggunakan load balancer manual. Di GKE di VMware, server Kubernetes API, ingress proxy, dan layanan add-on untuk agregasi log masing-masing diekspos oleh Layanan Kubernetes jenis LoadBalancer. Pilih nilai nodePort Anda sendiri dalam rentang 30000 - 32767 untuk Layanan ini. Untuk proxy masuk, pilih nilai nodePort untuk traffic HTTP dan HTTPS. Lihat Mengaktifkan mode load balancing manual untuk mengetahui informasi selengkapnya.

Pastikan men-scroll ke atas jika perlu guna mengisi placeholder ADMIN_CLUSTER_NAME untuk tanda --admin-cluster-membership. Contoh ini menggunakan nama cluster admin yang ditentukan secara lengkap, sehingga Anda tidak perlu menyertakan --admin-cluster-membership-location dan --admin-cluster-membership-project.

gcloud container vmware clusters create USER_CLUSTER_NAME \
  --project=FLEET_HOST_PROJECT_ID \
  --admin-cluster-membership=projects/FLEET_HOST_PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
  --location=REGION \
  --version=VERSION \
  --admin-users=YOUR_EMAIL_ADDRESS \
  --admin-users=ANOTHER_EMAIL_ADDRESS \
  --service-address-cidr-blocks=SERVICE_CIDR_BLOCK \
  --pod-address-cidr-blocks=POD_CIDR_BLOCK \
  --control-plane-vip=CONTROL_PLANE_VIP \
  --control-plane-node-port=CONTROL_PLANE_NODE_PORT \
  --ingress-vip=INGRESS_VIP \
  --ingress-http-node-port=INGRESS_HTTP_NODE_PORT \
  --ingress-https-node-port=INGRESS_HTTPS_NODE_PORT \
  --konnectivity-server-node-port=KONNECTIVITY_SERVER_NODE_PORT

Ganti kode berikut:

  • USER_CLUSTER_NAME: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:
    • berisi maksimal 40 karakter
    • hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (-)
    • diawali dengan karakter alfabet
    • diakhiri dengan karakter alfanumerik
  • FLEET_HOST_PROJECT_ID: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin didaftarkan. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.
  • ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Dalam flag --admin-cluster-membership, Anda dapat menggunakan nama cluster yang ditentukan secara lengkap, yang memiliki format berikut:
        projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME

    Atau, Anda dapat menetapkan --admin-cluster-membership ke nama cluster admin, seperti pada contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan --admin-cluster-membership-project dan lokasinya dengan --admin-cluster-membership-location. Lokasi cluster admin adalah global atau region Google Cloud. Jika Anda perlu menemukan region, jalankan gcloud container fleet memberships list.

  • REGION: Region Google Cloud tempat GKE On-Prem API (gkeonprem.googleapis.com), layanan Fleet (gkehub.googleapis.com), dan layanan Connect (gkeconnect.googleapis.com) dijalankan. Tentukan us-west1 atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat hal berikut disimpan:
    • Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
    • Data Cloud Logging dan Cloud Monitoring dari komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

    Nama cluster, project, dan lokasi bersama-sama mengidentifikasi cluster secara unik di Google Cloud.

  • VERSION: Versi GKE di VMware untuk cluster pengguna Anda.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika tanda --admin-users tidak disertakan, sebagai pembuat cluster, Anda akan diberi hak istimewa admin cluster secara default. Namun, jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan harus menyertakan alamat email Anda serta alamat email administrator lainnya. Misalnya, untuk menambahkan dua administrator:
        --admin-users=sara@example.com \
        --admin-users=amal@example.com

    Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster tersebut untuk memberi Anda dan pengguna admin lainnya peran clusterrole/cluster-admin Kubernetes, yang memberikan akses penuh ke setiap resource dalam cluster di semua namespace.

  • SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Minimal rentang /24.

    Contoh: --service-address-cidr-blocks=10.96.0.0/20

  • POD_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Minimal rentang /18.

    Contoh: --pod-address-cidr-blocks=192.168.0.0/16

  • CONTROL_PLANE_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk server Kubernetes API cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

  • CONTROL_PLANE_NODE_PORT: Nilai nodePort untuk server Kubernetes API.

  • INGRESS_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy masuk.

    Contoh: --ingress-vip=203.0.113.4

  • INGRESS_HTTP_NODE_PORT: Nilai nodePort untuk traffic HTTP ke proxy masuk.

  • INGRESS_HTTPS_NODE_PORT: Nilai nodePort untuk traffic HTTPS ke proxy masuk.

  • KONNECTIVITY_SERVER_NODE_PORT: Nilai nodePort untuk server Konnectivity.

  • --static-ip-config-ip-blocks: Menentukan gateway default, subnet mask, dan daftar alamat IP statis untuk node pekerja di cluster pengguna. Nilai untuk flag memiliki format berikut:
    --static-ip-config-ip-blocks 'gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1;IP_ADDRESS_2 HOST_2;...'

    Nilai ini memiliki segmen yang dimulai dengan kata kunci gateway, netmask, dan ips. Pisahkan segmen dengan koma.

    Perhatikan hal-hal berikut:

    • Letakkan seluruh nilai dalam tanda kutip tunggal.
    • Spasi kosong tidak diizinkan, kecuali antara alamat IP dan nama host.

    Dalam daftar alamat IP:

    • Anda dapat menentukan alamat IP individual atau blok CIDR alamat IP.
    • Pisahkan setiap alamat IP atau blok CIDR dengan titik koma.
    • Untuk alamat IP individual, Anda dapat menentukan nama host setelah alamat IP (opsional). Pisahkan alamat IP dan nama host dengan spasi. Jika Anda tidak menentukan nama host, GKE di VMware akan menggunakan nama VM dari vSphere sebagai nama host.
    • Jika Anda menentukan blok CIDR, jangan tentukan nilai untuk nama host.

    Contoh:

    --static-ip-config-ip-blocks 'gateway=172.16.23.254,netmask=255.255.252.0,ips=172.16.20.10;172.16.20.11 host2;172.16.20.12/30'
  • DNS_SERVER: Daftar yang dipisahkan koma dari alamat IP server DNS untuk VM.
  • DNS_SEARCH_DOMAIN: Daftar domain penelusuran DNS yang dipisahkan koma untuk digunakan oleh host. Domain ini digunakan sebagai bagian dari daftar penelusuran domain.

    Contoh:

    --dns-search-domains example.com,examplepetstore.com
  • NTP_SERVER: Daftar yang dipisahkan koma dari alamat IP server waktu yang akan digunakan oleh VM.

Untuk mengetahui daftar lengkap flag dan deskripsinya, baca referensi gcloud CLI.

Tanda bidang kontrol

Jika Anda ingin menggunakan nilai non-default untuk konfigurasi bidang kontrol, sertakan satu atau beberapa tanda berikut:

  • --cpus=vCPUS: Jumlah vCPU (minimal 4) untuk setiap node bidang kontrol untuk cluster pengguna Anda. Jika tidak ditentukan, jumlah defaultnya adalah 4 vCPU.

  • --memory=MEMORY: Ukuran memori dalam mebibyte (MiB) untuk setiap bidang kontrol untuk cluster pengguna Anda. Nilai minimumnya adalah 8192 dan harus kelipatan 4. Jika tidak ditentukan, defaultnya adalah 8192.

  • --replicas=NODES: Jumlah node bidang kontrol untuk cluster pengguna Anda. Misalnya, Anda dapat memilih 1 node bidang kontrol untuk lingkungan pengembangan dan 3 node bidang kontrol untuk lingkungan produksi dengan ketersediaan tinggi.

  • --enable-auto-resize: Jika Anda ingin mengaktifkan pengubahan ukuran otomatis node bidang kontrol untuk cluster pengguna, sertakan --enable-auto-resize. Perubahan ukuran berarti resource vCPU dan memori yang ditetapkan ke node disesuaikan secara otomatis. Jika diaktifkan, node bidang kontrol untuk cluster pengguna akan diubah ukurannya sesuai dengan jumlah worker node di cluster pengguna. Jadi, saat Anda menambahkan lebih banyak worker node ke cluster pengguna, ukuran node bidang kontrol akan bertambah.

  • --enable-control-plane-v2: Jika Anda ingin mengaktifkan Controlplane V2, sertakan --enable-control-plane-v2. Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna akan berjalan pada satu atau beberapa node di cluster pengguna itu sendiri. Secara default, bidang kontrol untuk cluster pengguna berjalan pada satu atau beberapa node di cluster admin (disebut sebagai model kubeception). Jika Controlplane V2 diaktifkan, nilai untuk --cpus dan --memory berlaku untuk node bidang kontrol di cluster pengguna. Jumlah node ditentukan oleh jumlah alamat IP yang Anda masukkan di --control-plane-ip-block. Jika Controlplane V2 tidak diaktifkan, nilai untuk --cpus, --memory, dan --replicas berlaku untuk node bidang kontrol di cluster admin. Pastikan Anda menyisihkan alamat IP yang cukup untuk cluster admin.

    Jika mengaktifkan Controlplane V2, Anda juga harus menentukan tanda berikut:

    • --dns-servers=DNS_SERVER_1,...: Daftar alamat IP server DNS untuk VM yang dipisahkan koma.

    • --ntp-servers=NTP_SERVER_1,...: Daftar alamat IP server waktu yang dipisahkan koma untuk digunakan oleh VM.

    • --control-plane-ip-block, yang memiliki format berikut:

      --control-plane-ip-block 'gateway=CP_GATEWAY,netmask=CP_NETMASK,ips=CP_IP_ADDRESS_1;CP_IP_ADDRESS_2 CP_HOST_2'

      Nilai ini memiliki segmen yang dimulai dengan kata kunci gateway, netmask, dan ips. Pisahkan segmen dengan koma.

      Perhatikan hal-hal berikut:

      • Letakkan seluruh nilai dalam tanda kutip tunggal.
      • Spasi kosong tidak diizinkan, kecuali antara alamat IP dan nama host.

      Dalam daftar alamat IP:

      • Anda dapat menentukan alamat IP individual atau blok CIDR alamat IP.

      • Pisahkan setiap alamat IP atau blok CIDR dengan titik koma.

      • Untuk setiap alamat IP, Anda dapat menentukan nama host setelah alamat IP (opsional). Pisahkan alamat IP dan nama host dengan spasi.

      • Jika Anda menentukan blok CIDR, jangan tentukan nilai untuk nama host.

      Contoh:

      --control-plane-ip-block 'gateway=192.168.0.1,netmask=255.0.0.0,ips=192.168.1.1;192.168.1.2 hostname-2;192.168.2.2/28`
      
    • Opsional: --dns-search-domains=DNS_SEARCH_DOMAIN_1,...: Daftar domain penelusuran DNS yang dipisahkan koma untuk digunakan oleh host. Domain ini digunakan sebagai bagian dari daftar penelusuran domain.

      Contoh:

      --dns-search-domains example.com,examplepetstore.com

Untuk mengetahui daftar lengkap flag dan deskripsinya, baca referensi gcloud CLI.

Tanda vSphere

Tentukan flag opsional berikut jika diperlukan:

  • --disable-aag-config: Jika Anda tidak menyertakan flag ini, aturan anti-afinitas VMware Distributed Resource Scheduler (DRS) akan otomatis dibuat untuk node cluster pengguna, sehingga menyebabkan node tersebut tersebar di setidaknya 3 host fisik di pusat data Anda. Pastikan lingkungan vSphere Anda memenuhi persyaratan. Jika cluster tidak memenuhi persyaratan, sertakan flag ini.

  • --disable-vsphere-csi: Jika Anda tidak menyertakan tanda ini, komponen Antarmuka Penyimpanan Container (CSI) vSphere akan di-deploy di cluster pengguna. Driver CSI berjalan di cluster Kubernetes native yang di-deploy di vSphere untuk menyediakan volume persisten pada penyimpanan vSphere. Untuk informasi selengkapnya, lihat Menggunakan driver Antarmuka Penyimpanan Container vSphere. Jika Anda tidak ingin men-deploy komponen CSI, sertakan flag ini.

Untuk mengetahui daftar lengkap flag dan deskripsinya, baca referensi gcloud CLI

Sebelum menjalankan perintah gcloud untuk membuat cluster, sebaiknya Anda menyertakan --validate-only untuk memvalidasi konfigurasi yang ditentukan dalam flag ke perintah gcloud. Jika Anda sudah siap untuk membuat cluster, hapus flag ini dan jalankan perintahnya.

Output dari perintah ini mirip dengan berikut ini:

Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.

Dalam contoh output, string operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179 adalah OPERATION_ID dari operasi yang berjalan lama. Anda dapat mengetahui status operasi dengan perintah berikut:

gcloud container vmware operations describe OPERATION_ID \
  --project=FLEET_HOST_PROJECT_ID \
  --location=REGION

Untuk mengetahui informasi selengkapnya, baca artikel gcloud container vmware operations.

Perlu waktu 15 menit atau lebih untuk membuat cluster pengguna. Anda dapat melihat cluster tersebut di Konsol Google Cloud di halaman Cluster Anthos.

Membuat node pool

Setelah cluster dibuat, Anda perlu membuat setidaknya satu kumpulan node sebelum men-deploy workload.

gcloud container vmware node-pools create NODE_POOL_NAME \
--cluster=USER_CLUSTER_NAME  \
--project=FLEET_HOST_PROJECT_ID \
--location=REGION \
--image-type=IMAGE_TYPE  \
--boot-disk-size=BOOT_DISK_SIZE \
--cpus=vCPUS \
--memory=MEMORY \
--replicas=NODES \
--enable-load-balancer

Ganti kode berikut:

  • NODE_POOL_NAME: Nama pilihan Anda untuk kumpulan node. Namanya harus:

    • berisi maksimal 40 karakter
    • hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (-)
    • diawali dengan karakter alfabet
    • diakhiri dengan karakter alfanumerik
  • USER_CLUSTER_NAME: Nama cluster pengguna yang baru dibuat.

  • FLEET_HOST_PROJECT_ID: ID project tempat cluster didaftarkan.

  • REGION: Lokasi Google Cloud yang Anda tentukan saat membuat cluster.

  • IMAGE_TYPE: Jenis OS image yang akan dijalankan pada VM di kumpulan node. Tetapkan ke salah satu pilihan berikut: ubuntu_containerd atau cos.

  • BOOT_DISK_SIZE: Ukuran boot disk dalam gigabyte (GiB) untuk setiap node dalam kumpulan. Minimum adalah 40 GiB.

  • vCPUs: Jumlah vCPU untuk setiap node di kumpulan node. Minimumnya adalah 4.

  • MEMORY: Ukuran memori dalam mebibyte (MiB) untuk setiap node di kumpulan. Nilai minimumnya adalah 8.192 MiB per node pekerja cluster pengguna dan nilainya harus kelipatan 4.

  • NODES: Jumlah node di node pool. Jumlah minimumnya adalah 3.

  • Jika Anda menggunakan MetalLB sebagai load balancer, Anda juga dapat menyertakan --enable-load-balancer jika ingin mengizinkan speaker MetalLB berjalan pada node dalam kumpulan. MetalLB harus diaktifkan di minimal satu kumpulan node. Jika tidak menyertakan tanda ini, Anda harus membuat kumpulan node lain untuk digunakan oleh MetalLB.

Untuk mengetahui informasi tentang flag opsional, baca Menambahkan kumpulan node dan referensi CLI gcloud.

Terraform

Anda dapat menggunakan contoh konfigurasi dasar berikut untuk membuat cluster pengguna dengan load balancer MetalLB yang dipaketkan dan satu kumpulan node.

Untuk mengetahui informasi selengkapnya dan contoh lainnya, lihat dokumentasi referensi google_gkeonprem_vmware_cluster.

  1. Clone repositori anthos-samples dan ubah ke direktori tempat sampel Terraform berada:

    git clone https://github.com/GoogleCloudPlatform/anthos-samples
    cd anthos-samples/anthos-onprem-terraform/avmw_user_cluster_metallb
    

Menetapkan variabel di terraform.tfvars

Contoh ini menyediakan contoh file variabel untuk diteruskan ke main.tf, yang menunjukkan cara mengonfigurasi load balancer MetalLB yang dipaketkan dan memungkinkan node cluster Anda untuk mendapatkan alamat IP-nya dari server DHCP yang Anda berikan.

  1. Buat salinan file terraform.tfvars.sample:

    cp terraform.tfvars.sample terraform.tfvars
    
  2. Ubah nilai parameter di terraform.tfvars.

    project_id                  = "FLEET_HOST_PROJECT_ID"
    region                      = "REGION"
    admin_cluster_name          = "ADMIN_CLUSTER_NAME"
    on_prem_version             = "VERSION"
    admin_user_emails           = ["YOUR_EMAIL_ADDRESS", "ADMIN_2_EMAIL_ADDRESS"]
    cluster_name                = "avmw-user-cluster-metallb"
    control_plane_node_cpus     = 4
    control_plane_node_memory   = 8192
    control_plane_node_replicas = 3
    control_plane_vip           = "CONTROL_PLANE_VIP"
    ingress_vip                 = "INGRESS_VIP"
    lb_address_pools            = [
        { name = "lbpool_1", addresses = ["10.200.0.51-10.200.0.70"] }
    ]
    

    Daftar berikut mendeskripsikan variabel:

    • project_id: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin terdaftar. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.

    • region: Region Google Cloud tempat GKE On-Prem API dijalankan. Tentukan us-west1 atau wilayah lain yang didukung.

    • admin_cluster_name: Nama cluster admin yang mengelola cluster pengguna.

    • on_prem_version: GKE di versi VMware untuk cluster pengguna Anda. Biasanya, Anda menentukan versi yang sama dengan cluster admin. Untuk menentukan versi yang lebih baru, Instal versi cluster yang lebih baru dari versi cluster admin. Jika Anda tidak mengetahui versi cluster admin, jalankan gcloud container vmware clusters query-version-config, yang merupakan langkah pertama dalam Menginstal versi cluster yang lebih baru dari versi cluster admin.

    • admin_user_emails: Daftar alamat email pengguna yang akan diberi hak istimewa administratif di cluster. Pastikan untuk menambahkan alamat email jika Anda ingin mengelola cluster.

      Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan kontrol akses berbasis peran Kubernetes (RBAC) ke cluster untuk memberi pengguna admin peran clusterrole/cluster-admin Kubernetes, yang memberikan akses penuh ke setiap resource dalam cluster di semua namespace. Dengan begitu, pengguna juga dapat login ke konsol menggunakan identitas Google.

    • cluster_name: Nama cluster pengguna Anda. Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:

      • berisi maksimal 40 karakter
      • hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (-)
      • diawali dengan karakter alfabet
      • diakhiri dengan karakter alfanumerik
    • control_plane_node_cpus: Jumlah vCPU untuk setiap node bidang kontrol untuk cluster pengguna Anda. Minimum adalah 4 vCPU.

    • control_plane_node_memory: Ukuran memori dalam mebibyte (MiB) untuk setiap bidang kontrol untuk cluster pengguna Anda. Nilai minimumnya adalah 8192 dan harus kelipatan 4.

    • control_plane_node_replicas: Jumlah node bidang kontrol untuk cluster pengguna Anda. Misalnya, Anda dapat memasukkan 1 node bidang kontrol untuk lingkungan pengembangan dan 3 node bidang kontrol untuk lingkungan produksi dengan ketersediaan tinggi.

    • control_plane_vip: Alamat IP virtual (VIP) yang telah Anda pilih untuk dikonfigurasi di load balancer untuk server Kubernetes API pada cluster pengguna.

    • ingress_vip: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy ingress.

    • lb_address_pools: Daftar peta yang menentukan kumpulan alamat yang akan digunakan oleh load balancer MetalLB. VIP masuk harus berada di salah satu kumpulan ini. Tentukan nilai berikut:

      • name: Nama untuk kumpulan.
      • addresses: Rentang alamat dalam notasi CIDR atau format rentang tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (misalnya untuk VIP masuk), gunakan /32 dalam notasi CIDR, misalnya: 192.0.2.1/32.

      Ganti contoh alamat IP dengan nilai Anda, dan tambahkan kumpulan alamat tambahan jika diperlukan.

  3. Simpan perubahan di terraform.tfvars. Jika Anda tidak ingin membuat perubahan opsional pada main.tf, lanjutkan ke bagian berikut, Membuat cluster dan satu kumpulan node.

Opsional: Konfigurasi setelan cluster di main.tf

Bagian ini menjelaskan beberapa perubahan konfigurasi opsional yang dapat Anda buat di main.tf. Sebelum melakukan perubahan, cadangkan main.tf:

cp main.tf main.tf.bak

Mode penentuan alamat IP node pekerja

Secara default, main.tf akan mengonfigurasi cluster agar menggunakan server DHCP yang Anda berikan untuk menetapkan alamat IP ke worker node cluster. DHCP dikonfigurasi dengan menyertakan peta dhcp_config dalam blok network_config. Jika Anda ingin memberikan alamat IP statis untuk worker node, buat perubahan berikut pada main.tf:

  1. Ganti blok network_config dan sertakan blok static_ip_config. Contoh:

    network_config {
      service_address_cidr_blocks = ["10.96.0.0/12"]
      pod_address_cidr_blocks = ["192.168.0.0/16"]
      host_config {
        dns_servers = ["10.254.41.1"]
        ntp_servers = ["216.239.35.8"]
      }
      static_ip_config {
        ip_blocks {
          netmask = "255.255.252.0"
          gateway = "10.251.31.254"
          ips {
            ip = "10.251.30.153"
            hostname = "vm-1"
          }
          ips {
            ip = "10.251.31.206"
            hostname = "vm-2"
          }
          ips {
            ip = "10.251.31.193"
            hostname = "vm-3"
          }
          ips {
            ip = "10.251.30.230"
            hostname = "vm-4"
          }
        }
      }
    }
    
  2. Ganti nilai berikut dengan nilai Anda:

    • service_address_cidr_blocks: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Minimal rentang /24.

    • pod_address_cidr_blocks: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Minimal rentang /18.

    • dns_servers: Daftar alamat IP server DNS untuk VM.

    • ntp_servers: Daftar alamat IP server waktu yang akan digunakan oleh VM.

    • Di blok static_ip_config, ganti nilai untuk netmask dan gateway dengan alamat untuk jaringan Anda. Ganti ip dan hostname dengan alamat IP dan nama host node pekerja Anda.

Konfigurasi Controlplane V2

Secara default, main.tf mengonfigurasi bidang kontrol untuk cluster pengguna agar berjalan pada satu atau beberapa node di cluster admin (disebut sebagai model kubeception). Jika ingin, Anda dapat mengaktifkan Controlplane V2. Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna akan berjalan pada satu atau beberapa node di cluster pengguna itu sendiri. Untuk mengonfigurasi Controlplane V2, buat perubahan berikut pada main.tf:

  1. Tambahkan baris berikut setelah baris dengan admin_cluster_membership:

    enable_control_plane_v2 = "true"
    
  2. Tambahkan peta control_plane_v2_config ke blok network_config, misalnya:

    control_plane_v2_config {
      control_plane_ip_block {
        netmask = "255.255.252.0"
        gateway = "10.250.71.254"
        ips {
          ip = "10.250.68.54"
          hostname = "cpv2-vm1"
        }
        ips {
          ip = "10.250.68.128"
          hostname = "cpv2-vm2"
        }
        ips {
          ip = "10.250.71.50"
          hostname = "cpv2-vm3"
        }
      }
    }
    
  3. Ganti nilai untuk netmask dan gateway dengan alamat IP dari jaringan Anda. Ganti ip dan hostname dengan alamat IP node bidang kontrol Anda.

Membuat cluster dan satu kumpulan node

  1. Lakukan inisialisasi dan buat paket Terraform:

    terraform init
    

    Terraform menginstal semua library yang diperlukan, seperti penyedia Google Cloud.

  2. Tinjau konfigurasi dan buat perubahan jika diperlukan:

    terraform plan
    
  3. Terapkan paket Terraform untuk membuat cluster pengguna:

    terraform apply
    

    Perlu waktu sekitar 15 menit atau lebih untuk membuat cluster pengguna dan 15 menit lagi untuk membuat kumpulan node. Anda dapat melihat cluster tersebut di Konsol Google Cloud di halaman Cluster Anthos.

Menghubungkan ke cluster pengguna

Saat membuat cluster pengguna menggunakan klien GKE On-Prem API, Anda memiliki opsi untuk menambahkan diri Anda dan pengguna lain sebagai adimistrator cluster dengan menentukan alamat email akun Google Cloud:

  • Di konsol, alamat email Anda akan ditambahkan secara otomatis di halaman Dasar-dasar Cluster di bagian Authorization, dan Anda memiliki opsi untuk menambahkan pengguna admin cluster lainnya.

  • Dengan gcloud CLI, sertakan flag --admin-users yang ditetapkan ke alamat email Anda. Flag ini tidak mengambil daftar. Tambahkan flag --admin-users untuk setiap pengguna admin cluster.

  • Dengan contoh Terraform, Anda dapat menentukan diri Anda sendiri dan pengguna admin lainnya dalam variabel admin_user_emails di file terraform.tvars.sample.

Cluster ini dikonfigurasi dengan kebijakan kontrol akses berbasis peran (RBAC) Kubernetes yang memberikan peran cluster-admin kepada pengguna admin dan memungkinkan mereka login ke cluster dari konsol menggunakan Google Cloud Identity mereka. Untuk mengetahui informasi selengkapnya, baca artikel Menyiapkan autentikasi identitas Google.

Semua cluster memiliki endpoint kanonis. Endpoint mengekspos server Kubernetes API yang digunakan kubectl dan layanan lainnya untuk berkomunikasi dengan bidang kontrol cluster melalui TCP port 443. Endpoint ini tidak dapat diakses di internet publik. Jika Anda memiliki akses ke endpoint pribadi cluster melalui VPC, Anda dapat terhubung langsung ke endpoint pribadi dan membuat file kubeconfig secara langsung. Jika tidak, Anda dapat menggunakan gateway Connect. Dalam hal ini, kubectl menggunakan Connect, yang kemudian meneruskan traffic dengan aman ke endpoint pribadi atas nama Anda.

Untuk mengakses cluster pengguna dari command line, Anda memerlukan file kubeconfig. Ada dua cara untuk mendapatkan file kubeconfig:

  • Gunakan gateway Connect untuk mengakses cluster dari komputer yang telah menginstal Google Cloud CLI. Gateway Connect memungkinkan Anda mengelola cluster dengan mudah dan aman. Untuk mengetahui informasi selengkapnya, lihat Menghubungkan ke cluster terdaftar dengan gateway Connect.

  • Untuk akses langsung ke endpoint pribadi, buat file kubeconfig di workstation admin dan kelola cluster dari workstation admin.

Pastikan untuk menunggu hingga konsol menunjukkan bahwa status cluster pengguna responsif.

Hubungkan gateway

  1. initialize gcloud CLI untuk digunakan dengan project fleet host, atau jalankan perintah berikut untuk login dengan Akun Google Anda, tetapkan project host fleet Anda sebagai default, dan perbarui komponen:

    gcloud auth login
    gcloud config set project PROJECT_ID
    gcloud components update
    
  2. Ambil kredensial cluster yang digunakan untuk berinteraksi dengan gateway Connect. Dalam perintah berikut, ganti MEMBERSHIP_NAME dengan nama cluster Anda. Di GKE di VMware, nama keanggotaannya sama dengan nama cluster.

    gcloud container fleet memberships get-credentials MEMBERSHIP_NAME
    

    Perintah ini menampilkan kubeconfig khusus gateway Connect khusus yang memungkinkan Anda terhubung ke cluster melalui gateway.

    Setelah memiliki kredensial yang diperlukan, Anda dapat menjalankan perintah menggunakan kubectl seperti biasa untuk cluster Kubernetes mana pun, dan Anda tidak perlu menentukan nama file kubeconfig, misalnya:

    kubectl get namespaces
    

Workstation admin

Untuk membuat file kubeconfig cluster pengguna di workstation admin, jalankan perintah berikut guna menyimpan file kubeconfig baru untuk cluster pengguna secara lokal. Ganti kode berikut:

  • CLUSTER_NAME: nama cluster pengguna yang baru dibuat
  • ADMIN_CLUSTER_KUBECONFIG: jalur ke file kubeconfig cluster admin
  • USER_CLUSTER_KUBECONFIG: nama file kubeconfig cluster pengguna yang dihasilkan oleh perintah
kubectl get secret admin \
  --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
  -n CLUSTER_NAME \
  -o=jsonpath='{.data.admin\.conf}' | base64 -d > USER_CLUSTER_KUBECONFIG

Setelah file disimpan, Anda dapat mulai mengakses cluster pengguna menggunakan kubectl di workstation admin, misalnya:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get namespaces

Instal versi yang lebih baru dari versi cluster admin

Cluster admin dapat mengelola cluster pengguna pada versi yang berbeda. Jika ingin membuat cluster pengguna yang merupakan versi yang lebih baru dari cluster admin, Anda harus mendownload dan men-deploy komponen yang diperlukan cluster admin untuk mengelola cluster pengguna dari versi tersebut, sebagai berikut:

  1. Dapatkan daftar versi yang tersedia:

    gcloud container vmware clusters query-version-config \
        --admin-cluster-membership=ADMIN_CLUSTER_NAME \
        --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \
        --location=REGION
    

    Ganti kode berikut:

    • ADMIN_CLUSTER_NAME: Nama cluster admin.

    • FLEET_HOST_PROJECT_ID: ID project tempat cluster admin didaftarkan.

    • REGION: Region Google Cloud tempat GKE On-Prem API dijalankan. Ini adalah region yang akan Anda tentukan saat membuat cluster pengguna. Tentukan us-west1 atau wilayah lain yang didukung.

    Output perintah ini akan mirip dengan berikut ini:

    versions:
    - isInstalled: true
      version: 1.14.3-gke.25
    - version: 1.14.4-gke.54
    - version: 1.15.0-gke.581
    

    Versi yang diinstal di cluster admin dianotasi dengan isInstalled=true.

  2. Jika belum melakukannya, daftarkan cluster admin di GKE On-Prem API. Setelah cluster didaftarkan di GKE On-Prem API, Anda tidak perlu melakukan langkah ini lagi.

  3. Download komponen versi baru dan deploy di cluster admin:

    gcloud beta vmware admin-clusters update ADMIN_CLUSTER_NAME \
        --project=FLEET_HOST_PROJECT_ID \
        --location=REGION \
        --required-platform-version=VERSION
    

    Perintah ini akan mendownload versi komponen yang Anda tentukan dalam --required-platform-version ke cluster admin, lalu men-deploy komponen tersebut. Sekarang Anda dapat membuat cluster pengguna dengan versi yang ditentukan.

Langkah selanjutnya