Membuat cluster pengguna

Di GKE di VMware, workload Anda dijalankan di satu atau beberapa cluster pengguna. Dokumen ini menunjukkan cara membuat cluster pengguna.

Ada beberapa alat yang dapat Anda gunakan untuk membuat cluster pengguna:

  • gkectl
  • Konsol Google Cloud
  • Google Cloud CLI
  • Terraform

Tiga dari alat ini (konsol, gcloud CLI, dan Terraform) merupakan klien GKE On-Prem API.

Untuk panduan mengenai alat yang mungkin ingin Anda gunakan, lihat Memilih alat untuk mengelola siklus proses cluster.

Sebelum memulai

  • Jika Anda belum melakukannya, siapkan resource Google Cloud seperti yang dijelaskan dalam dokumen berikut:

    Saat menyiapkan project host fleet, ingat pilihan alat Anda, karena jika Anda telah memilih salah satu klien GKE On-Prem API, ada API tambahan yang harus Anda aktifkan.

  • Sebelum membuat cluster pengguna, Anda harus memiliki cluster admin untuk mengelola cluster pengguna. Jika belum melakukannya, buat workstation admin dan cluster admin.

    Jika memilih untuk menggunakan salah satu klien GKE On-Prem API, Anda harus mengaktifkan logging audit dan Cloud logging untuk cluster admin.

  • Tentukan versi cluster pengguna yang ingin diinstal. Saat membuat cluster pengguna, Anda biasanya menginstal versi yang cocok dengan versi cluster admin. Namun, Anda dapat menginstal versi patch yang lebih baru atau versi minor yang lebih baru. Untuk mengetahui informasi selengkapnya, lihat Menginstal versi cluster yang lebih baru dari versi cluster admin.

  • Pikirkan apakah Anda ingin cluster pengguna mengaktifkan Controlplane V2. Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna akan berjalan pada satu atau beberapa node di cluster pengguna itu sendiri. Sebaiknya aktifkan Controlplane V2. Alternatifnya, Anda dapat membuat cluster pengguna yang menggunakan kubeception. Dalam kasus kubeception, bidang kontrol untuk cluster pengguna berjalan pada satu atau beberapa node dalam cluster admin.

  • Tinjau dokumen perencanaan alamat IP, dan pastikan Anda memiliki alamat IP yang cukup.

  • Tinjau ringkasan load balancing dan tinjau kembali keputusan Anda tentang jenis load balancer yang ingin digunakan. Anda dapat menggunakan load balancer MetalLB yang dipaketkan, atau mengonfigurasi load balancer pilihan Anda secara manual. Untuk load balancing manual, Anda harus menyiapkan load balancer sebelum membuat cluster pengguna.

  • Pikirkan jumlah kumpulan node yang Anda butuhkan dan sistem operasi yang ingin Anda jalankan di setiap kumpulan node tersebut.

  • Pikirkan apakah Anda ingin menggunakan cluster vSphere terpisah untuk cluster admin dan cluster pengguna, serta apakah Anda ingin menggunakan pusat data yang terpisah. Pertimbangkan juga apakah Anda ingin menggunakan instance Server vCenter terpisah.

Membuat cluster pengguna

Gkectl

Ringkasan prosedur

Berikut adalah langkah utama yang terlibat dalam penggunaan gkectl untuk membuat cluster pengguna:

  1. Menghubungkan ke workstation admin
    Workstation admin adalah mesin yang memiliki alat yang diperlukan untuk membuat cluster pengguna.
  2. Isi file konfigurasi Anda
    Tentukan detail untuk cluster baru Anda dengan mengisi file konfigurasi cluster pengguna, file konfigurasi kredensial, dan mungkin file blok IP.
  3. (Opsional) Impor OS image ke vSphere, dan dorong image container ke registry pribadi jika berlaku.
    Jalankan gkectl prepare.
  4. Membuat cluster pengguna
    Jalankan gkectl create cluster untuk membuat cluster seperti yang ditentukan dalam file konfigurasi Anda.
  5. Memastikan cluster pengguna berjalan
    Gunakan kubectl untuk melihat node cluster Anda.

Di akhir prosedur, Anda akan memiliki cluster pengguna yang berjalan tempat Anda dapat men-deploy beban kerja.

Jika menggunakan Kontrol Layanan VPC, Anda mungkin melihat error saat menjalankan beberapa perintah gkectl, seperti "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services". Untuk menghindari error ini, tambahkan parameter --skip-validation-gcp ke perintah Anda.

Isi file konfigurasi Anda

Lakukan langkah-langkah berikut di komputer admin Anda.

Saat membuat workstation admin, gkeadm membuat file konfigurasi bernama user-cluster.yaml. File konfigurasi ini digunakan untuk membuat cluster pengguna Anda.

Pahami file konfigurasi dengan memindai dokumen file konfigurasi cluster pengguna. Sebaiknya biarkan dokumen ini terbuka di tab atau jendela terpisah, karena Anda akan merujuknya saat menyelesaikan langkah-langkah berikut.

name

Tetapkan kolom name ke nama pilihan Anda untuk cluster pengguna.

gkeOnPremVersion

Bidang ini sudah diisi untuk Anda. Solusi ini menentukan versi GKE di VMware. Misalnya, 1.28.300-gke.123.

enableControlplaneV2

Untuk membuat cluster pengguna yang mengaktifkan Controlplane V2, tetapkan enableControlplaneV2 ke true.

Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna akan berjalan pada node dalam cluster pengguna itu sendiri. Sebaiknya aktifkan Controlplane V2.

Kubeception

Jika Anda menetapkan kolom ini ke false, cluster akan menggunakan kubecetption. Dengan kubeception, bidang kontrol untuk cluster pengguna berjalan pada node di cluster admin.

Untuk cluster kubeception:

  • Tetapkan enableControlplaneV2 ke false.

  • Jangan isi bagian controlPlaneIPBlock.

  • Tentukan alamat IP untuk node bidang kontrol cluster pengguna di file blok IP cluster admin.

enableDataplaneV2

Tetapkan enableDataplaneV2 ke true.

vCenter

Nilai yang Anda tetapkan di bagian vCenter pada file konfigurasi cluster admin bersifat global. Artinya, hal itu berlaku untuk cluster admin Anda dan cluster pengguna terkaitnya.

Untuk setiap cluster pengguna yang dibuat, Anda memiliki opsi untuk mengganti beberapa nilai vCenter global.

Untuk mengganti salah satu nilai vCenter global, isi kolom yang relevan di bagian vCenter file konfigurasi cluster pengguna Anda.

Secara khusus, Anda mungkin ingin menggunakan cluster vSphere terpisah untuk cluster admin dan cluster pengguna, serta mungkin ingin menggunakan pusat data terpisah untuk cluster admin dan cluster pengguna.

Menggunakan satu pusat data dan satu cluster vSphere

Opsi defaultnya adalah menggunakan satu pusat data dan satu cluster vSphere untuk cluster admin dan cluster pengguna. Untuk opsi ini, jangan tetapkan nilai vCenter apa pun dalam file konfigurasi cluster pengguna. Nilai vCenter akan diwarisi dari cluster admin.

Menggunakan cluster vSphere terpisah

Jika ingin membuat cluster pengguna yang berada di cluster vSphere-nya sendiri, tentukan nilai untuk vCenter.cluster di file konfigurasi cluster pengguna.

Jika cluster admin dan cluster pengguna berada di cluster vSphere terpisah, cluster tersebut dapat berada di pusat data yang sama atau pusat data yang berbeda.

Menggunakan pusat data vSphere terpisah

Cluster pengguna dan cluster admin dapat berada di pusat data yang berbeda. Dalam hal ini, mereka juga berada di cluster vSphere terpisah.

Jika menentukan vCenter.datacenter dalam file konfigurasi cluster pengguna, Anda juga harus menentukan:

  • vCenter.networkName
  • Berupa vCenter.datastore atau vCenter.storagePolicyName
  • Berupa vCenter.cluster atau vCenter.resourcePool

Menggunakan akun vCenter terpisah

Cluster pengguna dapat menggunakan akun vCenter yang berbeda, dengan vCenter.credentials yang berbeda, dari cluster admin. Akun vCenter untuk cluster admin memerlukan akses ke pusat data cluster admin, sedangkan akun vCenter untuk cluster pengguna hanya memerlukan akses ke pusat data cluster pengguna.

Menggunakan instance terpisah dari Server vCenter

Dalam situasi tertentu, sebaiknya buat cluster pengguna yang menggunakan instance Server vCenter-nya sendiri. Artinya, cluster admin dan cluster pengguna terkait menggunakan instance Server vCenter yang berbeda.

Misalnya, di lokasi edge, Anda mungkin ingin memiliki mesin fisik yang menjalankan vCenter Server dan satu atau beberapa mesin fisik yang menjalankan ESXi. Kemudian, Anda dapat menggunakan instance lokal vCenter Server untuk membuat hierarki objek vSphere, yang mencakup pusat data, cluster, kumpulan resource, datastore, dan folder.

Isi seluruh bagian vCenter file konfigurasi cluster pengguna Anda. Secara khusus, tentukan nilai untuk vCenter.address yang berbeda dengan alamat Server vCenter yang Anda tentukan dalam file konfigurasi cluster admin. Contoh:

vCenter:
  address: "vc-edge.example"
  datacenter: "vc-edge"
  cluster: "vc-edge-workloads"
  resourcePool: "vc-edge-pool
  datastore: "vc-edge-datastore
  caCertPath: "/usr/local/google/home/me/certs/edge-cacert.pem"
  credentials:
    fileRef:
      path: "credential.yaml"
      entry: "vCenter-edge"
  folder: "edge-vm-folder"

Juga isi kolom network.vCenter.networkName.

network

Tentukan cara Anda ingin worker node mendapatkan alamat IP. Opsinya adalah:

  • Dari server DHCP yang Anda siapkan sebelumnya. Tetapkan network.ipMode.type ke "dhcp".

  • Dari daftar alamat IP statis yang Anda berikan. Tetapkan network.ipMode.type ke "static", dan buat file blok IP yang menyediakan alamat IP statis. Untuk contoh file blok IP, lihat Contoh file konfigurasi yang terisi.

Jika Anda telah memutuskan untuk menggunakan alamat IP statis untuk worker node Anda, isi kolom network.ipMode.ipBlockFilePath.

Node bidang kontrol untuk cluster pengguna harus mendapatkan alamat IP dari daftar alamat statis yang Anda berikan. Meski demikian, walaupun node pekerja Anda mendapatkan alamat mereka dari server DHCP. Untuk menentukan alamat IP statis bagi node bidang kontrol, isi bagian network.controlPlaneIPBlock. Jika Anda menginginkan cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP. Jika tidak, tentukan satu alamat IP.

Tentukan server DNS dan NTP dengan mengisi bagian hostConfig. Server DNS dan NTP ini adalah untuk {i>node<i} bidang kontrol. Jika Anda menggunakan alamat IP statis untuk node pekerja, server DNS dan NTP ini juga akan digunakan untuk node pekerja.

network.podCIDR dan network.serviceCIDR memiliki nilai yang telah diisi otomatis dan tidak perlu diubah, kecuali jika keduanya bertentangan dengan alamat yang sudah digunakan di jaringan Anda. Kubernetes menggunakan rentang ini untuk menetapkan alamat IP ke Pod dan Service di cluster Anda.

Terlepas dari apakah Anda mengandalkan server DHCP atau menentukan daftar alamat IP statis, Anda harus memiliki cukup alamat IP yang tersedia untuk cluster pengguna Anda. Untuk mendapatkan penjelasan tentang jumlah alamat IP yang Anda perlukan, lihat Merencanakan alamat IP.

loadBalancer

Sisihkan VIP untuk server Kubernetes API pada cluster pengguna Anda. Sediakan VIP lain untuk layanan ingress cluster pengguna Anda. Berikan VIP Anda sebagai nilai untuk loadBalancer.vips.controlPlaneVIP dan loadBalancer.vips.ingressVIP.

Tentukan jenis load balancing yang ingin Anda gunakan. Opsinya adalah:

Untuk mengetahui informasi selengkapnya tentang opsi load balancing, baca Ringkasan load balancing.

advancedNetworking

Jika Anda berencana membuat gateway NAT keluar, tetapkan advancedNetworking ke true.

multipleNetworkInterfaces

Putuskan apakah Anda ingin mengonfigurasi beberapa antarmuka jaringan untuk Pod, dan tetapkan multipleNetworkInterfaces sesuai dengan keinginan Anda.

storage

Jika ingin menonaktifkan deployment komponen CSI vSphere, tetapkan storage.vSphereCSIDisabled ke true.

masterNode

Di bagian masterNode, Anda dapat menentukan jumlah node bidang kontrol yang diinginkan untuk cluster pengguna: satu atau tiga. Anda juga dapat menentukan datastore untuk node bidang kontrol dan apakah ingin mengaktifkan pengubahan ukuran otomatis untuk node bidang kontrol.

Ingat bahwa Anda telah menentukan alamat IP untuk node bidang kontrol di bagian network.controlPlaneIPBlock.

nodePools

Kumpulan node adalah sekumpulan node dalam cluster yang semuanya memiliki konfigurasi yang sama. Misalnya, node dalam satu kumpulan dapat menjalankan Windows dan node di kumpulan lain dapat menjalankan Linux.

Anda harus menentukan setidaknya satu kumpulan node dengan mengisi bagian nodePools.

Untuk mengetahui informasi selengkapnya, lihat Node pool serta Membuat dan mengelola node pool.

antiAffinityGroups

Tetapkan antiAffinityGroups.enabled ke true atau false.

Kolom ini menentukan apakah GKE di VMware membuat aturan anti-afinitas Distributed Resource Scheduler (DRS) untuk node pekerja Anda, yang menyebabkannya tersebar di setidaknya tiga host fisik di pusat data Anda.

stackdriver

Jika ingin mengaktifkan Cloud Logging dan Cloud Monitoring untuk cluster Anda, isi bagian stackdriver.

Bagian ini wajib ada secara default. Artinya, jika tidak mengisi bagian ini, Anda harus menyertakan flag --skip-validation-stackdriver saat menjalankan gkectl create cluster.

Perhatikan persyaratan berikut untuk cluster baru:

  • ID di stackdriver.projectID harus sama dengan ID di gkeConnect.projectID dan cloudAuditLogging.projectID.

  • Region Google Cloud yang ditetapkan di stackdriver.clusterLocation harus sama dengan region yang ditetapkan di cloudAuditLogging.clusterLocation dan gkeConnect.location (jika kolom tersebut disertakan dalam file konfigurasi Anda.) Selain itu, jika gkeOnPremAPI.enabled adalah true, region yang sama harus ditetapkan di gkeOnPremAPI.location.

Jika project ID dan region tidak sama, pembuatan cluster akan gagal.

gkeConnect

Cluster pengguna Anda harus terdaftar ke fleet Google Cloud.

Isi bagian gkeConnect untuk menentukan project host fleet dan akun layanan terkait. ID di gkeConnect.projectID harus sama dengan ID yang ditetapkan di stackdriver.projectID dan cloudAuditLogging.projectID. Jika project ID tidak sama, pembuatan cluster akan gagal.

Pada versi 1.28 dan yang lebih baru, Anda dapat secara opsional menentukan region tempat layanan Fleet dan Connect dijalankan di gkeConnect.location. Jika Anda tidak menyertakan kolom ini, cluster akan menggunakan instance global dari layanan ini.

Jika Anda menyertakan gkeConnect.location dalam file konfigurasi, region yang Anda tentukan harus sama dengan region yang dikonfigurasi di cloudAuditLogging.clusterLocation, stackdriver.clusterLocation, dan gkeOnPremAPI.location. Jika region tidak sama, pembuatan cluster akan gagal.

gkeOnPremAPI

Pada versi 1.16 dan yang lebih baru, jika GKE On-Prem API diaktifkan di project Google Cloud Anda, semua cluster dalam project akan terdaftar di GKE On-Prem API secara otomatis di region yang dikonfigurasi di stackdriver.clusterLocation. Region gkeOnPremAPI.location harus sama dengan region yang ditentukan dalam cloudAuditLogging.clusterLocation, gkeConnect.location (jika kolom disertakan dalam file konfigurasi Anda), dan stackdriver.clusterLocation.

  • Jika ingin mendaftarkan semua cluster dalam project di GKE On-Prem API, pastikan Anda melakukan langkah-langkah di Sebelum memulai untuk mengaktifkan dan menggunakan GKE On-Prem API dalam project.

  • Jika Anda tidak ingin mendaftarkan cluster di GKE On-Prem API, sertakan bagian ini dan tetapkan gkeOnPremAPI.enabled ke false. Jika Anda tidak ingin mendaftarkan cluster apa pun dalam project, nonaktifkan gkeonprem.googleapis.com (nama layanan untuk GKE On-Prem API) di project tersebut. Untuk mengetahui petunjuknya, lihat Menonaktifkan layanan.

usageMetering

Jika ingin mengaktifkan pengukuran penggunaan untuk cluster Anda, isi bagian usageMetering.

cloudAuditLogging

Jika Anda ingin mengintegrasikan log audit dari server Kubernetes API cluster Anda dengan Cloud Audit Logs, isi bagian cloudAuditLogging.

Perhatikan persyaratan berikut untuk cluster baru:

  • ID di cloudAuditLogging.projectID harus sama dengan ID di gkeConnect.projectID dan stackdriver.projectID.

  • Region di cloudAuditLogging.clusterLocation harus sama dengan region yang ditetapkan di gkeConnect.location (jika kolom disertakan dalam file konfigurasi Anda) dan stackdriver.clusterLocation. Selain itu, jika gkeOnPremAPI.enabled adalah true, region yang sama harus ditetapkan di gkeOnPremAPI.location.

Jika project ID dan region tidak sama, pembuatan cluster akan gagal.

Contoh file konfigurasi yang terisi

Berikut adalah contoh file blok IP dan file konfigurasi cluster pengguna;

user-ipblock.yaml

blocks:
  - netmask: 255.255.255.0
    gateway: 172.16.21.1
    ips:
    - ip: 172.16.21.2
      hostname: worker-vm-1
    - ip: 172.16.21.3
      hostname: worker-vm-2
    - ip: 172.16.21.4
      hostname: worker-vm-3
    - ip: 172.16.21.5
      hostname: worker-vm-4

user-cluster.yaml

cat user-cluster.yaml
apiVersion: v1
kind: UserCluster
name: "my-user-cluster"
gkeOnPremVersion: 1.28.300-gke.123
enableControlplaneV2: true
enableDataplaneV2: true
network:
  hostConfig:
    dnsServers:
    - "203.0.113.2"
    - "198.51.100.2"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
    ipBlockFilePath: "user-ipblock.yaml"
  serviceCIDR: 10.96.0.0/20
  podCIDR: 192.168.0.0/16
  controlPlaneIPBlock:
    netmask: "255.255.255.0"
    gateway: "172.16.21.1"
    ips:
    - ip: "172.16.21.6"
      hostname: "cp-vm-1"
    - ip: "172.16.21.7"
      hostname: "cp-vm-2"
    - ip: "172.16.21.8"
      hostname: "cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.21.40"
    ingressVIP: "172.16.21.30"
  kind: MetalLB
  metalLB:
    addressPools:
    - name: "address-pool-1"
      addresses:
      - "172.16.21.30-172.16.21.39"
masterNode:
  cpus: 4
  memoryMB: 8192
  replicas: 3
nodePools:
- name: "worker-node-pool"
  cpus: 4
  memoryMB: 8192
  replicas: 3
  enableLoadBalancer: true
antiAffinityGroups:
  enabled: true
gkeConnect:
  projectID: "my-project-123"
  location: "us-central1"
  registerServiceAccountKeyPath: "connect-register-sa-2203040617.json"
stackdriver:
  projectID: "my-project-123"
  clusterLocation: "us-central1"
  enableVPC: false
  serviceAccountKeyPath: "log-mon-sa-2203040617.json"
autoRepair:
  enabled: true

Berikut ini adalah poin-poin penting yang harus dipahami dalam contoh sebelumnya:

  • Alamat IP statis untuk worker node ditentukan dalam file blok IP. File blok IP memiliki empat alamat meskipun hanya ada tiga node pekerja. Alamat IP tambahan diperlukan selama upgrade, update, dan perbaikan otomatis cluster.

  • Server DNS dan NTP ditentukan di bagian hostConfig. Dalam contoh ini, server DNS dan NTP ini ditujukan untuk node bidang kontrol dan node pekerja. Hal ini dikarenakan worker node memiliki alamat IP statis. Jika worker node mendapatkan alamat IP dari server DHCP, server DNS dan NTP ini hanya akan untuk node bidang kontrol.

  • Alamat IP statis untuk tiga node bidang kontrol ditentukan di bagian network.controlPlaneIPBlock pada file konfigurasi cluster pengguna. Tidak diperlukan alamat IP tambahan di blok ini.

  • Controlplane V2 diaktifkan.

  • Kolom masterNode.replicas disetel ke 3, sehingga cluster akan memiliki bidang kontrol ketersediaan tinggi.

  • VIP bidang kontrol dan VIP masuk, keduanya berada di VLAN yang sama dengan node pekerja dan node bidang kontrol.

  • VIP yang disisihkan untuk Layanan jenis LoadBalancer ditentukan di bagian loadBalancer.metalLB.addressPools pada file konfigurasi cluster pengguna. VIP ini berada di VLAN yang sama dengan node pekerja dan node bidang kontrol. Kumpulan VIP yang ditentukan di bagian ini harus menyertakan VIP masuk dan tidak boleh menyertakan VIP bidang kontrol.

  • File konfigurasi cluster pengguna tidak menyertakan bagian vCenter. Jadi, cluster pengguna menggunakan resource vSphere yang sama dengan cluster admin.

Memvalidasi file konfigurasi

Setelah Anda mengisi file konfigurasi cluster pengguna, jalankan gkectl check-config untuk memverifikasi bahwa file tersebut valid:

gkectl check-config --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Ganti kode berikut:

  • ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig untuk cluster admin Anda

  • USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna Anda

Jika perintah menampilkan pesan kegagalan, perbaiki masalah dan validasi lagi file tersebut.

Jika Anda ingin melewati validasi yang memakan waktu, teruskan flag --fast. Untuk melewati validasi satu per satu, gunakan flag --skip-validation-xxx. Untuk mempelajari perintah check-config lebih lanjut, lihat Menjalankan pemeriksaan preflight.

3. (Opsional) Mengimpor image OS ke vSphere, dan mengirim image container ke registry pribadi

Jalankan gkectl prepare jika salah satu hal berikut berlaku:

  • Cluster pengguna berada di pusat data vSphere yang berbeda dengan cluster admin.

  • Cluster pengguna Anda memiliki Server vCenter yang berbeda dari cluster admin.

  • Cluster pengguna Anda menggunakan container registry pribadi yang berbeda dengan registry pribadi yang digunakan oleh cluster admin Anda.

gkectl prepare --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --bundle-path BUNDLE \
    --user-cluster-config USER_CLUSTER_CONFIG

Ganti kode berikut:

  • ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig cluster admin Anda

  • BUNDLE: jalur file paket. File ini ada di workstation admin Anda di /var/lib/gke/bundles/. Contoh:

    /var/lib/gke/bundles/gke-onprem-vsphere-1.28.300-gke.123-full.tgz
    
  • USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna Anda

4. Membuat cluster pengguna

Buat cluster pengguna:

gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Jika menggunakan Kontrol Layanan VPC, Anda mungkin melihat error saat menjalankan beberapa perintah gkectl, seperti "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services". Untuk menghindari error ini, tambahkan parameter --skip-validation-gcp ke perintah Anda.

Menemukan file kubeconfig cluster pengguna

Perintah gkectl create cluster membuat file kubeconfig bernama USER_CLUSTER_NAME-kubeconfig di direktori saat ini. Anda akan memerlukan file kubeconfig ini nanti untuk berinteraksi dengan cluster pengguna.

File kubeconfig berisi nama cluster pengguna Anda. Untuk melihat nama cluster, Anda dapat menjalankan:

kubectl config get-clusters --kubeconfig USER_CLUSTER_KUBECONFIG

Output menunjukkan nama cluster. Contoh:

NAME
my-user-cluster

Jika mau, Anda dapat mengubah nama dan lokasi file kubeconfig Anda.

5. Memastikan cluster pengguna berjalan

Pastikan cluster pengguna Anda berjalan:

kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG

Ganti USER_CLUSTER_KUBECONFIG dengan jalur file kubeconfig cluster pengguna Anda.

Output menunjukkan node cluster pengguna. Contoh:

cp-vm-1       Ready    control-plane,master   18m
cp-vm-2       Ready    control-plane,master   18m
cp-vm-3       Ready    control-plane,master   18m
worker-vm-1   Ready                           6m7s
worker-vm-2   Ready                           6m6s
worker-vm-3   Ready                           6m14s

Konsol

Mulai

  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.

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 API dan layanan berikut dijalankan:

    • GKE On-Prem API (gkeonprem.googleapis.com)
    • Layanan armada (gkehub.googleapis.com)
    • Hubungkan layanan (gkeconnect.googleapis.com)

    Setelan ini juga mengontrol wilayah 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.

  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 untuk 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 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 and 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.

BESAR F5

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

Nama pengguna dan sandi F5 diwariskan dari cluster admin.

  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.

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 dan proxy ingress 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.

  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.

  1. Hal berikut diaktifkan secara otomatis dan tidak dapat dinonaktifkan:

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

  3. Klik Next untuk mengonfigurasi kumpulan node

Kumpulan node

Cluster Anda akan dibuat dengan minimal satu kumpulan node. Kumpulan node adalah template untuk sekelompok worker 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 setidaknya 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 bagi Anda untuk memperbaiki masalah konfigurasi, lalu coba lagi untuk membuat cluster.

    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. Dapatkan nama dan lokasi keanggotaan fleet cluster admin Anda:

    gcloud container fleet memberships list \
        --project=FLEET_HOST_PROJECT_ID
    

    Ganti FLEET_HOST_PROJECT_ID dengan ID project tempat cluster admin terdaftar.

    Outputnya mirip dengan hal berikut ini:

    NAME             EXTERNAL_ID                           LOCATION
    admin-cluster-1  bb7803b4-8438-4b22-859f-4559b4b29072  global
    admin-cluster-2  ee16ee2b-6ec0-49fc-9413-3c89cbc70854  global
    admin-cluster-3  fc2b7ef5-39ff-4b63-b919-04c5adc67be4  us-west1
    

    Lokasi menentukan tempat layanan Fleet dan Connect dijalankan. Cluster admin yang dibuat sebelum versi 1.28 dikelola oleh layanan Fleet and Connect global. Pada versi 1.28 dan yang lebih baru, Anda dapat menentukan global atau region Google Cloud saat membuat cluster admin. Anda menentukan region dalam flag --admin-cluster-membership-location dalam contoh perintah yang mengikutinya.

  2. 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 \
        --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \
        --location=REGION
    

    Ganti kode berikut:

    • ADMIN_CLUSTER_NAME: Nama cluster admin.

    • FLEET_HOST_PROJECT_ID: ID project tempat cluster admin didaftarkan.

    • ADMIN_CLUSTER_REGION: Region keanggotaan fleet cluster admin. Ini adalah region global atau Google Cloud. Gunakan lokasi untuk cluster admin dari output gcloud container fleet memberships list.

    • REGION: Region Google Cloud yang akan Anda gunakan saat membuat cluster. Ini adalah region tempat GKE On-Prem API dan layanan Fleet dan Connect dijalankan. 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 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.

gcloud container vmware clusters create USER_CLUSTER_NAME \
    --project=FLEET_HOST_PROJECT_ID \
    --admin-cluster-membership=ADMIN_CLUSTER_NAME \
    --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \
    --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \
    --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

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.

  • --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=ADMIN_CLUSTER_NAME \
    --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \
    --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \
    --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.

gcloud container vmware clusters create USER_CLUSTER_NAME \
    --project=FLEET_HOST_PROJECT_ID \
    --admin-cluster-membership=ADMIN_CLUSTER_NAME \
    --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \
    --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \
    --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 manual & IP statis

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.

gcloud container vmware clusters create USER_CLUSTER_NAME \
    --project=FLEET_HOST_PROJECT_ID \
    --admin-cluster-membership=ADMIN_CLUSTER_NAME \
    --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \
    --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \
    --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.

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 (HA).

  • --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: Region 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 gibibyte (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 dalam kumpulan. Nilai minimumnya adalah 8.192 MiB per node pekerja cluster pengguna dan nilainya harus kelipatan 4.

  • NODES: Jumlah node di node pool. Minimum 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.

Contoh perintah gcloud

MetalLB & DHCP

gcloud container vmware clusters create user-cluster-1 \
    --project=example-project-12345 \
    --location=us-west1 \
    --admin-cluster-membership=projects/example-project-12345/locations/global/memberships/admin-cluster-1 \
    --version=1.28.200-gke.111 \
    --admin-users=sara@example.com \
    --admin-users=amal@example.com \
    --enable-dhcp \
    --service-address-cidr-blocks=10.96.232.0/24 \
    --pod-address-cidr-blocks=192.168.0.0/16 \
    --metal-lb-config-address-pools='pool=lb-pool-1,manual-assign=False,avoid-buggy-ips=True,addresses=10.251.133.0/24;10.251.134.80/32;10.251.134.81/32' \
    --metal-lb-config-address-pools='pool=lb-pool-2,manual-assign=True,addresses=172.16.20.62/32' \
    --control-plane-vip=172.16.20.61 \
    --ingress-vip=172.16.20.62

Untuk deskripsi tanda --metal-lb-config-address-pools, lihat Load balancer.

MetalLB & IP statis

gcloud container vmware clusters create user-cluster-3 \
    --project=example-project-12345 \
    --location=europe-west1 \
    --admin-cluster-membership=projects/example-project-12345/locations/global/memberships/admin-cluster-1 \
    --version=1.28.200-gke.111 \
    --admin-users=sara@example.com \
    --admin-users=amal@example.com \
    --static-ip-config-ip-blocks='gateway=172.16.23.254,netmask=255.255.252.0,ips=172.16.20.10 user-vm-1;172.16.20.11 user-vm-2' \
    --static-ip-config-ip-blocks='gateway=172.16.23.255,netmask=255.255.252.0,ips=172.16.20.12 user-vm-3;172.16.20.13 extra-vm' \
    --dns-servers=203.0.113.1,198.51.100.1 \
    --dns-search-domains=example.com,altostrat.com \
    --ntp-servers=216.239.35.4,216.239.35.5 \
    --service-address-cidr-blocks=10.96.232.0/24 \
    --pod-address-cidr-blocks=192.168.0.0/16 \
    --metal-lb-config-address-pools='pool=lb-pool-1,manual-assign=False,avoid-buggy-ips=True,addresses=10.251.133.0/24;10.251.134.80/32;10.251.134.81/32' \
    --metal-lb-config-address-pools='pool=lb-pool-2,manual-assign=True,addresses=172.16.20.62/32' \
    --control-plane-vip=172.16.20.61 \
    --ingress-vip=172.16.20.62

F5 BIG-IP & DHCP

gcloud container vmware clusters create user-cluster-2 \
    --project=example-project-12345 \
    --location=us-west1 \
    --admin-cluster-membership=projects/example-project-12345/locations/global/memberships/admin-cluster-1 \
    --version=1.28.200-gke.111 \
    --admin-users=sara@example.com \
    --admin-users=amal@example.com \
    --enable-dhcp \
    --service-address-cidr-blocks=10.96.232.0/24 \
    --pod-address-cidr-blocks=192.168.0.0/16 \
    --f5-config-address=203.0.113.2 \
    --f5-config-partition=my-f5-admin-partition \
    --control-plane-vip=172.16.20.61 \
    --ingress-vip=172.16.20.62

Untuk mengetahui deskripsi flag F5, lihat Load balancer.

LB manual & IP statis

gcloud container vmware clusters create user-cluster-4 \
    --project=example-project-12345 \
    --location=asia-east1 \
    --admin-cluster-membership=projects/example-project-12345/locations/global/memberships/admin-cluster-1 \
    --version=1.28.200-gke.111 \
    --admin-users=sara@example.com \
    --admin-users=amal@example.com \
    --static-ip-config-ip-blocks='gateway=172.16.23.254,netmask=255.255.252.0,ips=172.16.20.10 user-vm-1;172.16.20.11 user-vm-2' \
    --static-ip-config-ip-blocks='gateway=172.16.23.255,netmask=255.255.252.0,ips=172.16.20.12 user-vm-3;172.16.20.13 extra-vm' \
    --dns-servers=203.0.113.1,198.51.100.1  \
    --ntp-servers=216.239.35.4,216.239.35.5 \
    --service-address-cidr-blocks=10.96.232.0/24 \
    --pod-address-cidr-blocks=192.168.0.0/16 \
    --control-plane-vip=172.16.20.61 \
    --control-plane-node-port=30968 \
    --ingress-vip=172.16.20.62 \
    --ingress-http-node-port=32527 \
    --ingress-https-node-port=30139 \
    --konnectivity-server-node-port=30969

Terraform

Sebelum memulai

  1. Dapatkan nama dan lokasi keanggotaan fleet cluster admin Anda:

    gcloud container fleet memberships list \
        --project=FLEET_HOST_PROJECT_ID
    

    Ganti FLEET_HOST_PROJECT_ID dengan ID project tempat cluster admin terdaftar.

    Outputnya mirip dengan hal berikut ini:

    NAME             EXTERNAL_ID                           LOCATION
    admin-cluster-1  bb7803b4-8438-4b22-859f-4559b4b29072  global
    admin-cluster-2  ee16ee2b-6ec0-49fc-9413-3c89cbc70854  global
    admin-cluster-3  fc2b7ef5-39ff-4b63-b919-04c5adc67be4  us-west1
    

    Lokasi menentukan tempat layanan Fleet dan Connect dijalankan. Cluster admin yang dibuat sebelum versi 1.28 dikelola oleh layanan Fleet and Connect global. Pada versi 1.28 dan yang lebih baru, Anda dapat menentukan global atau region Google Cloud saat membuat cluster.

  2. 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 \
        --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \
        --location=REGION
    

    Ganti kode berikut:

    • ADMIN_CLUSTER_NAME: Nama cluster admin.

    • FLEET_HOST_PROJECT_ID: ID project tempat cluster admin didaftarkan.

    • ADMIN_CLUSTER_REGION: Region keanggotaan fleet cluster admin. Ini adalah region global atau Google Cloud. Gunakan lokasi untuk cluster admin dari output gcloud container fleet memberships list.

    • REGION: Region Google Cloud yang akan Anda gunakan saat membuat cluster. Ini adalah region tempat GKE On-Prem API dan layanan Fleet dan Connect dijalankan. 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 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

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.

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. 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
    
  2. Buat salinan file terraform.tfvars.sample:

    cp terraform.tfvars.sample terraform.tfvars
    
  3. 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 (gkeonprem.googleapis.com), layanan Fleet (gkehub.googleapis.com), dan layanan Connect (gkeconnect.googleapis.com) dijalankan. Tentukan us-west1 atau wilayah lain yang didukung.

    • admin_cluster_name: Nama cluster admin yang mengelola cluster pengguna. Contoh ini mengasumsikan bahwa cluster admin menggunakan global sebagai region. Jika Anda memiliki cluster admin regional:

      1. Buka main.tf di editor teks.
      2. Telusuri admin_cluster_membership, yang terlihat seperti berikut:
      admin_cluster_membership = "projects/${var.project_id}/locations/global/memberships/${var.admin_cluster_name}"
      1. Ubah global ke region yang digunakan cluster admin dan simpan file tersebut.
    • 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.

  4. Simpan perubahan di terraform.tfvars. Jika Anda tidak ingin membuat perubahan opsional apa pun 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.

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 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. Anda kini dapat membuat cluster pengguna dengan versi yang ditentukan.

Pemecahan masalah

Lihat Memecahkan masalah pembuatan dan upgrade cluster.

Langkah selanjutnya