Membuat cluster pengguna

Di Google Distributed Cloud, 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 alat ini (konsol, gcloud CLI, dan Terraform) adalah klien GKE On-Prem API.

Untuk panduan tentang 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 perangkat, ingatlah 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 Anda instal. 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 yang lebih baru daripada versi cluster admin.

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

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

  • Tinjau ringkasan load balancing dan buka 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.

  • Pertimbangkan jumlah kumpulan node yang Anda perlukan dan sistem operasi yang ingin dijalankan di setiap kumpulan.

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

  • Pada versi 1.29 dan yang lebih baru, pemeriksaan preflight sisi server diaktifkan secara default. Pemeriksaan preflight sisi server memerlukan aturan firewall tambahan. Di Aturan firewall untuk cluster admin, telusuri "Pemeriksaan preflight" dan pastikan semua aturan firewall yang diperlukan sudah dikonfigurasi.

    Dengan pemeriksaan preflight sisi server, saat Anda membuat cluster pengguna menggunakan gkectl, pemeriksaan preflight dijalankan di cluster admin, bukan secara lokal di workstation admin. Pemeriksaan preflight sisi server juga dijalankan jika Anda menggunakan konsol Google Cloud, Google Cloud CLI, atau Terraform untuk membuat cluster pengguna.

Membuat cluster pengguna

Gkectl

Ringkasan prosedur

Berikut adalah langkah utama yang diperlukan 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. Mengisi file konfigurasi Anda
    Tentukan detail untuk cluster baru Anda dengan melengkapi file konfigurasi cluster pengguna, file konfigurasi kredensial, dan mungkin file blok IP.
  3. (Opsional) Impor OS image ke vSphere, dan kirim 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 Anda sudah berjalan
    Gunakan kubectl untuk melihat node cluster Anda.

Di akhir prosedur ini, Anda akan memiliki cluster pengguna yang berjalan untuk men-deploy workload Anda.

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.

Mengisi file konfigurasi Anda

Lakukan langkah-langkah ini di workstation admin Anda.

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

Pelajari file konfigurasi dengan memindai dokumen file konfigurasi cluster pengguna. Sebaiknya biarkan dokumen ini tetap terbuka di tab atau jendela terpisah, karena Anda akan merujuk ke dokumen tersebut saat menyelesaikan langkah-langkah berikut.

name

Tetapkan kolom name ke nama pilihan Anda untuk cluster pengguna.

gkeOnPremVersion

Kolom ini sudah diisi untuk Anda. Direktori ini menentukan versi Google Distributed Cloud. Misalnya, 1.29.100-gke.248.

enableControlplaneV2

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

Saat Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna 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

Setel enableDataplaneV2 ke true.

vCenter

Nilai yang Anda tetapkan di bagian vCenter pada file konfigurasi cluster admin bersifat global. Artinya, setelan ini berlaku untuk cluster admin Anda dan cluster pengguna terkait.

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 dalam 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 di 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 dalam file konfigurasi cluster pengguna.

Jika cluster admin dan cluster pengguna Anda berada di cluster vSphere yang 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, cluster tersebut juga berada di cluster vSphere terpisah.

Jika menentukan vCenter.datacenter di 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 server vCenter terpisah

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

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

Isi seluruh bagian vCenter pada file konfigurasi cluster pengguna Anda. Secara khusus, tentukan nilai untuk vCenter.address yang berbeda dengan alamat Server vCenter yang Anda tentukan di 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"

Isi juga kolom network.vCenter.networkName.

network

Tentukan cara worker node mendapatkan alamat IP mereka. Opsinya adalah:

  • Dari server DHCP yang telah 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 terisi.

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

Node bidang kontrol untuk cluster pengguna Anda harus mendapatkan alamat IP-nya dari daftar alamat statis yang Anda berikan. Hal ini tetap terjadi meskipun node pekerja Anda mendapatkan alamat dari server DHCP. Guna menentukan alamat IP statis untuk 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 digunakan untuk node bidang kontrol. Jika Anda menggunakan alamat IP statis untuk worker node, server DNS dan NTP ini juga digunakan untuk node pekerja.

network.podCIDR dan network.serviceCIDR memiliki nilai yang terisi otomatis dan tidak dapat diubah kecuali jika 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 menyediakan alamat IP yang cukup untuk cluster pengguna Anda. Untuk mengetahui penjelasan mengenai jumlah alamat IP yang diperlukan, lihat Merencanakan alamat IP.

loadBalancer

Menyisihkan VIP untuk server Kubernetes API cluster pengguna Anda. Menyisihkan VM lain untuk layanan masuk cluster pengguna Anda. Berikan VIP Anda sebagai nilai untuk loadBalancer.vips.controlPlaneVIP dan loadBalancer.vips.ingressVIP.

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

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

advancedNetworking

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

multipleNetworkInterfaces

Tentukan apakah Anda ingin mengonfigurasi beberapa antarmuka jaringan untuk Pod, dan menetapkan multipleNetworkInterfaces sebagaimana mestinya.

storage

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

masterNode

Di bagian masterNode, Anda dapat menentukan jumlah node bidang kontrol yang Anda inginkan 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 kembali bahwa Anda telah menentukan alamat IP untuk node bidang kontrol di bagian network.controlPlaneIPBlock.

nodePools

Kumpulan node adalah sekelompok node dalam sebuah cluster yang semuanya memiliki konfigurasi yang sama. Misalnya, node dalam satu kumpulan dapat menjalankan Windows, dan node di kumpulan lainnya 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 Google Distributed Cloud akan membuat aturan anti-afinitas Distributed Resource Scheduler (DRS) untuk node pekerja Anda, sehingga akan tersebar di setidaknya tiga host fisik di pusat data.

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 pada stackdriver.projectID harus sama dengan ID pada 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 dalam 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 perangkat dan akun layanan yang terkait. ID pada gkeConnect.projectID harus sama dengan ID yang ditetapkan dalam 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 berjalan di gkeConnect.location. Jika Anda tidak menyertakan kolom ini, cluster akan menggunakan instance global 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 bagian 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) pada 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 pada cloudAuditLogging.projectID harus sama dengan ID pada 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.29.100-gke.248
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 adalah hal-hal penting yang perlu 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 terjadi karena node pekerja memiliki alamat IP statis. Jika node pekerja mendapatkan alamat IP dari server DHCP, server DNS dan NTP ini hanya akan ditujukan untuk node bidang kontrol.

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

  • Controlplane V2 diaktifkan.

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

  • VIP bidang kontrol dan VIP masuk 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 file konfigurasi cluster pengguna. VIP ini berada di VLAN yang sama dengan worker node 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 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 tersebut menampilkan pesan kegagalan, perbaiki masalah tersebut dan validasi file lagi.

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

3. (Opsional) Impor OS image ke vSphere, dan kirim image container ke registry pribadi

Jalankan gkectl prepare jika salah satu kondisi berikut terpenuhi:

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

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

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

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.29.100-gke.248-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 akan menampilkan nama cluster. Contoh:

NAME
my-user-cluster

Jika mau, Anda dapat mengubah nama dan lokasi file {i>kubeconfig<i} Anda.

5. Memastikan cluster pengguna Anda sudah 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

Memulai

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

    Buka Create a GKE on VMware cluster

  2. Pilih project Google Cloud tempat Anda ingin membuat cluster. Project yang dipilih juga digunakan sebagai project host fleet. Project ini harus sama dengan project yang didaftarkan ke cluster admin. 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 Admin cluster, 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 Anda:

    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 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 komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

    Semua nama cluster, project, dan lokasi secara unik mengidentifikasi cluster di Google Cloud.

  4. Pilih versi Google Distributed Cloud 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 Pengguna admin cluster di bagian Otorisasi.

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

  6. Klik Berikutnya untuk membuka bagian Bidang kontrol.

Bidang Kontrol

Semua kolom di bagian Bidang kontrol ditetapkan dengan nilai default. Tinjau setelan default dan jika perlu, 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 Node bidang kontrol, pilih jumlah node bidang kontrol untuk cluster pengguna. Misalnya, Anda dapat memilih 1 node bidang kontrol untuk lingkungan pengembangan dan 3 node bidang kontrol untuk lingkungan produksi dengan ketersediaan tinggi (HA).

  4. Pilih Pengubahan ukuran node otomatis (opsional). Mengubah ukuran berarti resource vCPU dan memori yang ditetapkan ke node akan 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 akan bertambah besar.

  5. Atau, pilih Aktifkan bidang kontrol v2. Mengaktifkan Controlplane 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).

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

    Saat Controlplane V2 diaktifkan, kolom vCPU dan memori 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 Berikutnya untuk membuka bagian Jaringan.

Networking

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

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

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

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

  2. Jika Anda memilih DHCP, lanjutkan ke langkah berikutnya untuk menentukan CID Layanan dan Pod. 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 di cluster pengguna. Anda dapat memasukkan alamat IP v4 individual (seperti 192.0.2.1) atau blok CIDR alamat IPv4 (seperti 192.0.2.0/24).

      • Jika Anda memasukkan blok CIDR, jangan masukkan nama host.

      • Jika Anda memasukkan alamat IP individu, Anda dapat memasukkan nama host secara opsional. Jika Anda tidak memasukkan nama host, Google Distributed Cloud akan menggunakan nama VM dari vSphere sebagai nama host.

    4. Klik + Tambahkan Alamat IP sesuai kebutuhan untuk memasukkan alamat IP lainnya.

  3. Di bagian Layanan dan CIDR Pod, konsol menyediakan rentang alamat berikut untuk Pod dan Layanan Kubernetes:

    • CIDR Layanan: 10.96.0.0/20
    • CIDR pod: 192.168.0.0/16

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

  4. Jika Anda memilih Static IP mode atau Enable control field v2, tentukan informasi berikut di bagian Host config:

    1. Masukkan alamat IP server DNS.
    2. Masukkan alamat IP server NTP.
    3. Atau, masukkan domain penelusuran DNS.
  5. Klik Berikutnya 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 Jenis load balancer dari daftar.

Sepaket 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 node cluster Anda dan tidak memerlukan VM tambahan. Untuk mengetahui informasi selengkapnya tentang manfaat penggunaan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Load balancing paket dengan MetalLB.

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

    1. Masukkan nama untuk kumpulan alamat.

    2. Masukkan rentang alamat IP yang berisi VIP masuk dalam salah satu notasi CIDR (misalnya, 192.0.2.0/26) atau notasi rentang (mis. 192.0.2.64-192.0.2.72). Untuk menentukan satu alamat IP 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 yang lain.

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

    4. Di bagian Assignment of IP addresses, pilih salah satu opsi berikut:

      • Otomatis: Pilih opsi ini jika Anda ingin pengontrol MetalLB menetapkan alamat IP secara otomatis dari kumpulan alamat ke Layanan jenis LoadBalancer

      • Manual: Pilih opsi ini jika Anda ingin menggunakan alamat dari kumpulan untuk menentukan alamat secara manual untuk jenis Layanan LoadBalancer

    5. Klik Hindari alamat IP yang berisi bug jika Anda ingin pengontrol MetalLB tidak menggunakan alamat dari kumpulan yang diakhiri dengan .0 atau .255. Hal ini untuk menghindari masalah perangkat konsumen yang memiliki 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 IPs, masukkan berikut ini:

    • Bidang kontrol VIP: 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 menambahkan alamat ini di bagian Kumpulan alamat.

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

  4. Klik Continue.

F5 BIG-IP

Anda dapat menggunakan F5 BIG-IP untuk cluster pengguna hanya jika cluster admin Anda menggunakan F5 BIG-IP. Pastikan untuk menginstal dan mengonfigurasi F5 BIG-IP ADC sebelum mengintegrasikannya dengan Google Distributed Cloud.

Nama pengguna dan sandi F5 diwarisi dari cluster admin.

  1. Di bagian Virtual IPs, masukkan berikut ini:

    • Bidang kontrol VIP: 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 F5 BIG-IP Anda.

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

  4. Di kolom nama kumpulan sNAT, masukkan nama kumpulan SNAT Anda, jika sesuai.

  5. Klik Continue.

Manual

Anda dapat menggunakan load balancer manual untuk cluster pengguna hanya jika cluster admin Anda menggunakan load balancer manual. Di Google Distributed Cloud, server Kubernetes API dan proxy masuknya 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 IPs, masukkan berikut ini:

    • Bidang kontrol VIP: 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 masuk, masukkan nilai nodePort untuk traffic HTTPS ke proxy masuk.

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

  6. Klik Continue.

Fitur

Bagian ini menampilkan fitur dan operasi yang diaktifkan di cluster.

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

  2. Hal-hal berikut diaktifkan secara default, tetapi Anda dapat menonaktifkannya:

    • Aktifkan driver vSphere CSI: Juga disebut sebagai Plug-in Container Storage vSphere. Driver Container Storage Interface (CSI) berjalan di cluster Kubernetes yang di-deploy di vSphere untuk menyediakan volume persisten di 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, sehingga menyebabkan node tersebut tersebar di minimal 3 host fisik di pusat data Anda. Pastikan lingkungan vSphere Anda memenuhi persyaratan.

  3. Klik Berikutnya 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 dalam cluster ini. Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola kumpulan node .

  1. Di bagian Default kumpulan node, selesaikan langkah-langkah berikut:

    1. Masukkan Nama kumpulan node atau gunakan "default-pool" sebagai namanya.
    2. Masukkan jumlah vCPUs untuk setiap node dalam kumpulan (minimal 4 per worker cluster pengguna).
    3. Masukkan ukuran memory 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 IP Node 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 gibibyte (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 untuk MetalLB.
  2. Di bagian Metadata kumpulan node (opsional), jika Anda ingin menambahkan label dan taint Kubernetes, lakukan hal berikut:

    1. Klik + Add Kubernetes Labels. Masukkan Kunci dan Nilai untuk label. Ulangi jika perlu.
    2. Klik + Add Taint. Masukkan Key, Value, dan Effect untuk taint. Ulangi jika perlu.
  3. Klik Verify and Complete 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 harus cukup jelas bagi Anda untuk memperbaiki masalah konfigurasi, lalu mencoba membuat cluster lagi.

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

gcloud CLI

Gunakan perintah berikut untuk membuat cluster pengguna:

gcloud container vmware clusters create

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

gcloud container vmware node-pools create

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

Sebelum memulai

  1. Mendapatkan 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 di flag --admin-cluster-membership-location pada 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 fisik cluster admin. Opsi ini dapat bersifat global atau region 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 serta 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 versi tersebut. Jika Anda ingin membuat cluster pengguna dengan versi lain yang tersedia, lihat Menginstal versi yang lebih baru daripada versi cluster admin.

Contoh

Contoh berikut menunjukkan cara membuat cluster pengguna dengan berbagai load balancer. 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 default-nya, sertakan flag yang dijelaskan di bagian Kontrol flag bidang. Jika diperlukan, 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 untuk node cluster.

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 di node cluster Anda dan tidak memerlukan VM tambahan. Untuk mengetahui informasi selengkapnya tentang manfaat penggunaan 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 yang didaftarkan cluster admin. 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 sepenuhnya, 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 dalam perintah contoh. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan --admin-cluster-membership-project dan lokasi 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 lain yang didukung. 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 komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

    Semua nama cluster, project, dan lokasi secara unik mengidentifikasi cluster di Google Cloud.

  • VERSION: Versi GKE di VMware untuk cluster pengguna Anda.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika tidak menyertakan flag --admin-users, sebagai pembuat cluster, Anda diberi hak istimewa admin cluster secara default. Namun, jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda harus mengganti alamat 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 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 di 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: Sertakan tanda ini guna menentukan konfigurasi untuk kumpulan alamat yang akan digunakan oleh load balancer MetalLB. Nilai untuk tanda 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 pilihan Anda untuk kolam renang.
    • 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 menghindari masalah perangkat konsumen yang memiliki bug dan secara tidak sengaja menurunkan traffic yang dikirim ke alamat IP khusus tersebut. Jika tidak ditentukan, nilai defaultnya adalah False.
    • manual-assign: Jika Anda tidak ingin pengontrol MetalLB menetapkan alamat IP secara otomatis dari kumpulan ini ke Layanan, tetapkan ke True. Kemudian, developer dapat membuat Layanan jenis LoadBalancer dan menentukan salah satu alamat secara manual dari kumpulan. 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:

    • Mengapit 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 pada load balancer untuk server Kubernetes API dari cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

  • INGRESS_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi pada load balancer untuk proxy masuknya.

    Contoh: --ingress-vip=10.251.134.80

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

  • --enable-dhcp: Sertakan --enable-dhcp jika Anda ingin node cluster mendapatkan alamat IP dari server DHCP yang Anda sediakan. Jangan sertakan flag ini jika Anda ingin memberikan alamat IP statis untuk node cluster, atau jika 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 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 di node cluster Anda dan tidak memerlukan VM tambahan. Untuk mengetahui informasi selengkapnya tentang manfaat penggunaan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Load balancing paket dengan MetalLB.

Pastikan untuk men-scroll jika diperlukan guna mengisi placeholder ADMIN_CLUSTER_NAME untuk flag --admin-cluster-membership. Contoh ini menggunakan nama cluster admin yang ditentukan sepenuhnya, 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 yang didaftarkan cluster admin. 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 sepenuhnya, 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 dalam perintah contoh. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan --admin-cluster-membership-project dan lokasi 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 lain yang didukung. 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 komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

    Semua nama cluster, project, dan lokasi secara unik mengidentifikasi cluster di Google Cloud.

  • VERSION: Versi GKE di VMware untuk cluster pengguna Anda.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika tidak menyertakan flag --admin-users, sebagai pembuat cluster, Anda diberi hak istimewa admin cluster secara default. Namun, jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda harus mengganti alamat 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 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 di 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: Sertakan tanda ini guna menentukan konfigurasi untuk kumpulan alamat yang akan digunakan oleh load balancer MetalLB. Nilai untuk tanda 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 pilihan Anda untuk kolam renang.
    • 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 menghindari masalah perangkat konsumen yang memiliki bug dan secara tidak sengaja menurunkan traffic yang dikirim ke alamat IP khusus tersebut. Jika tidak ditentukan, nilai defaultnya adalah False.
    • manual-assign: Jika Anda tidak ingin pengontrol MetalLB menetapkan alamat IP secara otomatis dari kumpulan ini ke Layanan, tetapkan ke True. Kemudian, developer dapat membuat Layanan jenis LoadBalancer dan menentukan salah satu alamat secara manual dari kumpulan. 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:

    • Mengapit 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 pada load balancer untuk server Kubernetes API dari cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

  • INGRESS_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi pada load balancer untuk proxy masuknya.

    Contoh: --ingress-vip=10.251.134.80

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

  • --static-ip-config-ip-blocks: Menentukan gateway default, subnet mask, dan daftar alamat IP statis untuk worker node di cluster pengguna. Nilai untuk tanda 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 diawali dengan kata kunci gateway, netmask, dan ips. Pisahkan segmen dengan koma.

    Perhatikan hal-hal berikut:

    • Mengapit seluruh nilai dalam tanda kutip tunggal.
    • Spasi kosong tidak diizinkan kecuali di 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 secara opsional menentukan nama host setelah alamat IP. 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 alamat IP server DNS yang dipisahkan koma untuk VM.
  • DNS_SEARCH_DOMAIN: Daftar yang dipisahkan koma untuk domain penelusuran DNS yang akan digunakan oleh host. Domain berikut digunakan sebagai bagian dari daftar penelusuran domain.

    Contoh:

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

F5 BESAR-IP & DHCP

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

Anda dapat menggunakan F5 untuk cluster pengguna hanya jika cluster admin Anda menggunakan F5. Pastikan untuk menginstal dan mengonfigurasi F5 BIG-IP ADC sebelum mengintegrasikannya dengan Google Distributed Cloud.

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 yang didaftarkan cluster admin. 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 sepenuhnya, 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 dalam perintah contoh. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan --admin-cluster-membership-project dan lokasi 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 lain yang didukung. 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 komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

    Semua nama cluster, project, dan lokasi secara unik mengidentifikasi cluster di Google Cloud.

  • VERSION: Versi GKE di VMware untuk cluster pengguna Anda.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika tidak menyertakan flag --admin-users, sebagai pembuat cluster, Anda diberi hak istimewa admin cluster secara default. Namun, jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda harus mengganti alamat 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 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 di 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 F5 BIG-IP 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 pada load balancer untuk server Kubernetes API dari cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

  • INGRESS_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi pada load balancer untuk proxy masuknya.

    Contoh: --ingress-vip=10.251.134.80

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

  • --enable-dhcp: Sertakan --enable-dhcp jika Anda ingin node cluster mendapatkan alamat IP dari server DHCP yang Anda sediakan. Jangan sertakan flag ini jika Anda ingin memberikan alamat IP statis untuk node cluster, atau jika 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 dapat menggunakan load balancer manual untuk cluster pengguna hanya jika cluster admin Anda menggunakan load balancer manual. Di Google Distributed Cloud, server Kubernetes API, proxy masuk, 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 yang didaftarkan cluster admin. 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 sepenuhnya, 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 dalam perintah contoh. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan --admin-cluster-membership-project dan lokasi 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 lain yang didukung. 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 komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

    Semua nama cluster, project, dan lokasi secara unik mengidentifikasi cluster di Google Cloud.

  • VERSION: Versi GKE di VMware untuk cluster pengguna Anda.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika tidak menyertakan flag --admin-users, sebagai pembuat cluster, Anda diberi hak istimewa admin cluster secara default. Namun, jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda harus mengganti alamat 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 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 di 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 pada load balancer untuk server Kubernetes API dari 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 pada 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 Konnektivitas.

  • --static-ip-config-ip-blocks: Menentukan gateway default, subnet mask, dan daftar alamat IP statis untuk worker node di cluster pengguna. Nilai untuk tanda 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 diawali dengan kata kunci gateway, netmask, dan ips. Pisahkan segmen dengan koma.

    Perhatikan hal-hal berikut:

    • Mengapit seluruh nilai dalam tanda kutip tunggal.
    • Spasi kosong tidak diizinkan kecuali di 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 secara opsional menentukan nama host setelah alamat IP. 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 alamat IP server DNS yang dipisahkan koma untuk VM.
  • DNS_SEARCH_DOMAIN: Daftar yang dipisahkan koma untuk domain penelusuran DNS yang akan digunakan oleh host. Domain berikut digunakan sebagai bagian dari daftar penelusuran domain.

    Contoh:

    --dns-search-domains example.com,examplepetstore.com
  • NTP_SERVER: Daftar yang dipisahkan koma untuk 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 flag 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 dari 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 perubahan ukuran otomatis node bidang kontrol untuk cluster pengguna, sertakan --enable-auto-resize. Mengubah ukuran berarti resource vCPU dan memori yang ditetapkan ke node akan disesuaikan secara otomatis. Jika diaktifkan, node bidang kontrol untuk cluster pengguna akan diubah ukurannya sesuai dengan jumlah worker node dalam cluster pengguna. Jadi, saat Anda menambahkan lebih banyak worker node ke cluster pengguna, node bidang kontrol akan bertambah besar.

  • --enable-control-plane-v2: Jika Anda ingin mengaktifkan Controlplane V2, sertakan --enable-control-plane-v2. Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna berjalan pada satu atau beberapa node dalam cluster pengguna itu sendiri. Secara default, bidang kontrol untuk cluster pengguna berjalan pada satu atau beberapa node pada cluster admin (disebut sebagai model kubeception). Saat Controlplane V2 diaktifkan, nilai untuk --cpus dan --memory akan 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 yang dipisahkan koma untuk VM.

    • --ntp-servers=NTP_SERVER_1,...: Daftar alamat IP server waktu yang dipisahkan koma yang akan 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 diawali dengan kata kunci gateway, netmask, dan ips. Pisahkan segmen dengan koma.

      Perhatikan hal-hal berikut:

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

        Dalam daftar alamat IP:

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

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

      • Untuk alamat IP individual, Anda dapat menentukan nama host setelah alamat IP. 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 berikut 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 tanda ini, aturan anti-afinitas Distributed Resource Scheduler (DRS) VMware akan otomatis dibuat untuk node cluster pengguna Anda, sehingga akan tersebar di setidaknya 3 host fisik di pusat data Anda. Pastikan lingkungan vSphere Anda memenuhi persyaratan. Jika cluster Anda tidak memenuhi persyaratan, sertakan tanda 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 di penyimpanan vSphere. Untuk informasi selengkapnya, lihat Menggunakan driver Antarmuka Penyimpanan Container vSphere. Jika Anda tidak ingin men-deploy komponen CSI, sertakan tanda ini.

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

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

    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.
    

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

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

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

    Perlu waktu 15 menit atau lebih untuk membuat cluster pengguna. Anda dapat melihat cluster ini di Konsol Google Cloud di halaman cluster GKE.

    Membuat node pool

    Setelah cluster dibuat, Anda perlu membuat minimal 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 node pool. Tetapkan ke salah satu dari berikut: ubuntu_containerd atau cos.

  • BOOT_DISK_SIZE: Ukuran boot disk dalam gibibyte (GiB) untuk setiap node dalam kumpulan. Jumlah minimumnya adalah 40 GiB.

  • vCPUs: Jumlah vCPU untuk setiap node dalam kumpulan node. Jumlah minimumnya adalah 4.

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

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

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

    Untuk mengetahui informasi tentang flag opsional, lihat Menambahkan node pool dan referensi gcloud CLI.

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.29.100-gke.248 \
    --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 mengetahui deskripsi flag --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.29.100-gke.248 \
    --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 BESAR-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.29.100-gke.248 \
    --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 deskripsi tanda 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.29.100-gke.248 \
    --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. Mendapatkan 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 fisik cluster admin. Opsi ini dapat bersifat global atau region 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 serta 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 versi tersebut. Jika Anda ingin membuat cluster pengguna dengan versi lain yang tersedia, lihat Menginstal versi yang lebih baru daripada 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 informasi selengkapnya dan contoh lain, lihat dokumentasi referensi google_gkeonprem_vmware_cluster.

Tetapkan 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 mendapatkan alamat IP dari server DHCP yang Anda berikan.

  1. Buat 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 menjelaskan 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 yang didaftarkan ke cluster admin. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke inventaris 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 akan 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.
    • on_prem_version: Versi Google Distributed Cloud untuk cluster pengguna Anda. Biasanya, Anda menetapkan versi yang sama dengan cluster admin. Untuk menentukan versi yang lebih baru, Instal versi yang lebih baru daripada 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 yang lebih baru daripada 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 (RBAC) Kubernetes ke cluster tersebut untuk memberikan peran clusterrole/cluster-admin Kubernetes kepada pengguna admin, yang menyediakan akses penuh ke setiap resource di cluster di semua namespace. Hal ini juga memungkinkan pengguna untuk login ke konsol menggunakan identitas Google mereka.

    • 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
    • control_plane_node_cpus: Jumlah vCPU untuk setiap node bidang kontrol untuk cluster pengguna Anda. Jumlah minimumnya 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 dari 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 (HA).

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

    • ingress_vip: Alamat IP yang telah Anda pilih untuk dikonfigurasi pada load balancer untuk proxy masuk.

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

      • name: Nama untuk kolam renang.
      • addresses: Rentang alamat dalam notasi CIDR atau format rentang dengan 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 perlu.

  4. Simpan perubahan di terraform.tfvars. Jika 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 lakukan di main.tf. Sebelum melakukan perubahan, buat cadangan main.tf:

cp main.tf main.tf.bak

Mode penentuan alamat IP node pekerja

Secara default, main.tf mengonfigurasi cluster untuk menggunakan server DHCP yang Anda berikan untuk menetapkan alamat IP ke node pekerja cluster. DHCP dikonfigurasi dengan menyertakan peta dhcp_config dalam blok network_config. Jika ingin memberikan alamat IP statis untuk worker node, lakukan 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.

Mengonfigurasi Controlplane V2

Secara default, main.tf mengonfigurasi bidang kontrol untuk cluster pengguna agar dapat dijalankan di satu atau beberapa node pada cluster admin (disebut sebagai model kubeception). Jika ingin, Anda dapat mengaktifkan Controlplane V2. Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna berjalan pada satu atau beberapa node dalam cluster pengguna itu sendiri. Untuk mengonfigurasi Controlplane V2, lakukan 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 konrol 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 rencana 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 ini di Konsol Google Cloud di halaman cluster GKE.

Instal versi yang lebih baru dari versi cluster admin

Cluster admin dapat mengelola cluster pengguna pada berbagai versi. Jika ingin membuat cluster pengguna yang memiliki versi yang lebih baru dari cluster admin, Anda harus mendownload dan men-deploy komponen yang diperlukan cluster admin untuk mengelola cluster pengguna 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 berjalan. 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 di --required-platform-version ke cluster admin, lalu men-deploy komponen. Sekarang Anda dapat membuat cluster pengguna dengan versi yang ditentukan.

Pemecahan masalah

Lihat Memecahkan masalah pembuatan dan upgrade cluster.

Langkah selanjutnya