Membuat cluster pengguna

Di Google Distributed Cloud, workload Anda berjalan di satu atau beberapa cluster pengguna. Dokumen ini menunjukkan cara membuat cluster pengguna. Jika Anda ingin menggunakan domain topologi, lihat Membuat cluster pengguna untuk digunakan dengan domain topologi.

Halaman ini ditujukan untuk Admin, Arsitek, dan Operator yang menyiapkan, memantau, dan mengelola infrastruktur teknologi. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten, lihat Peran dan tugas pengguna GKE umum. Google Cloud

Pada versi 1.33 dan yang lebih baru, semua cluster baru dibuat sebagai cluster lanjutan. Pastikan untuk meninjau Perbedaan saat menjalankan cluster lanjutan.

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

  • gkectl
  • Google Cloud console
  • Google Cloud CLI
  • Terraform

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

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

Sebelum memulai

  • Jika Anda berencana menggunakan gkectl untuk membuat cluster pengguna, pastikan Anda telah menyiapkan dan dapat login ke workstation admin seperti yang dijelaskan dalam Membuat workstation admin.

  • Pastikan workstation admin Anda memiliki gkectl versi yang diperlukan. Biasanya, Anda menggunakan versi gkectl yang sama dengan versi yang akan digunakan saat membuat cluster. Anda menentukan versi cluster di kolom gkeOnPremVersion dalam file konfigurasi cluster. Aturan versi berikut diterapkan selama pembuatan cluster:

    • Versi minor gkectl tidak boleh lebih rendah dari versi minor untuk cluster. Misalnya, membuat cluster 1.30 menggunakan versi 1.29 gkectl tidak diizinkan. Versi patch tidak penting. Misalnya, Anda dapat menggunakan gkectl versi 1.29.0-gke.1456 untuk membuat cluster dengan versi patch yang lebih tinggi, seperti 1.29.1000-gke.94.

    • Versi minor gkectl tidak boleh lebih dari dua versi minor lebih tinggi dari versi cluster. Misalnya, jika Anda membuat cluster 1.28, versi gkectl dapat berupa 1.29 atau 1.30. Namun, Anda tidak dapat menggunakan gkectl versi 1.31 karena versi tersebut tiga versi minor lebih tinggi daripada versi cluster.

    Jika perlu, lihat Mendownload gkectl untuk mendapatkan gkectl versi yang didukung.

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

    Saat menyiapkan project host fleet, perhatikan pilihan alat Anda, karena jika Anda telah memilih salah satu klien GKE On-Prem API, ada API tambahan yang harus Anda aktifkan. Untuk mengetahui daftar API, lihat Mengaktifkan API di project host fleet.

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

  • Tentukan versi cluster pengguna yang ingin Anda instal. Saat Anda membuat cluster pengguna, biasanya Anda menginstal versi yang cocok dengan versi cluster admin. Jika Anda ingin menginstal versi lain pada cluster pengguna, lihat Aturan versi.

  • Jika Anda berencana menginstal versi 1.30 atau yang lebih tinggi, Controlplane V2 diperlukan. Meskipun Anda menginstal 1.29 atau yang lebih rendah, sebaiknya aktifkan Controlplane V2. Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node di cluster pengguna itu sendiri. Alternatifnya adalah membuat cluster pengguna yang menggunakan kubeception. Dalam kasus kubeception, bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node di cluster admin.

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

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

  • Pikirkan berapa banyak node pool yang Anda butuhkan dan sistem operasi mana yang ingin Anda jalankan di setiap pool.

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

  • Pada versi 1.29 dan yang lebih baru, pemeriksaan pra-penerbangan sisi server diaktifkan secara default. Pemeriksaan pra-penerbangan sisi server memerlukan aturan firewall tambahan. Di Firewall rules for admin clusters, telusuri "Preflight checks" dan pastikan semua aturan firewall yang diperlukan telah dikonfigurasi.

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

Buat cluster pengguna dengan alat pilihan Anda

Bagian ini memberikan langkah-langkah untuk membuat cluster pengguna menggunakan gkectl, konsol, gcloud CLI, dan Terraform.

gkectl

Ringkasan prosedur

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

  1. Isi file konfigurasi Anda
    Tentukan detail untuk cluster baru Anda dengan menyelesaikan file konfigurasi cluster pengguna, file konfigurasi kredensial, dan mungkin file blok IP.
  2. (Opsional) Impor image OS ke vSphere, dan kirim image container ke registry pribadi jika berlaku.
    Jalankan gkectl prepare.
  3. Membuat cluster pengguna
    Jalankan gkectl create cluster untuk membuat cluster seperti yang ditentukan dalam file konfigurasi Anda.
  4. Pastikan cluster pengguna Anda berjalan
    Gunakan kubectl untuk melihat node cluster Anda.

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

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

Isi file konfigurasi Anda

Jika Anda menggunakan gkeadm untuk membuat workstation admin, gkeadm akan membuat template untuk file konfigurasi cluster pengguna Anda yang bernama user-cluster.yaml. Selain itu, gkeadm mengisi beberapa kolom untuk Anda.

Jika Anda tidak menggunakan gkeadm untuk membuat workstation admin, Anda dapat menggunakan gkectl untuk membuat template bagi file konfigurasi cluster pengguna.

Untuk membuat template file konfigurasi cluster pengguna:

gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION

Ganti kode berikut:

OUTPUT_FILENAME: jalur pilihan Anda untuk template yang dihasilkan. Jika Anda menghilangkan tanda ini, gkectl akan memberi nama file user-cluster.yaml dan menempatkannya di direktori saat ini.

VERSION: nomor versi yang diinginkan. Contoh: gkectl create-config cluster --gke-on-prem-version=1.33.0-gke.799.

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

name

Tetapkan kolom name ke nama pilihan Anda untuk cluster pengguna.

gkeOnPremVersion

Kolom ini sudah diisi untuk Anda. Menentukan versi Google Distributed Cloud. Misalnya, 1.33.0-gke.799.

enableAdvancedCluster

Pada versi 1.31, jika Anda ingin mengaktifkan fitur cluster lanjutan, tetapkan enableAdvancedCluster ke true. Kolom ini harus disetel ke true jika cluster admin memiliki cluster lanjutan yang diaktifkan.

Perhatikan perbedaan berikut antara versi:

  • Pada versi 1.31, fitur cluster lanjutan berada dalam pratinjau:

    • Anda dapat mengaktifkan cluster lanjutan pada saat pembuatan cluster untuk cluster 1.31 baru saja.

    • Setelah cluster lanjutan diaktifkan, Anda tidak akan dapat mengupgrade cluster ke 1.32. Aktifkan cluster lanjutan hanya di lingkungan pengujian.

  • Pada versi 1.32, fitur cluster lanjutan berstatus GA.

    • Secara default, cluster pengguna dibuat sebagai cluster lanjutan. Anda harus menetapkan enableAdvancedCluster ke false secara eksplisit jika ingin membuat cluster non-lanjutan.

    • Untuk cluster yang mengaktifkan fitur cluster lanjutan, upgrade cluster didukung.

  • Pada versi 1.33 dan yang lebih baru, semua cluster dibuat sebagai cluster lanjutan. Jika Anda menyetel enableAdvancedCluster ke false, pembuatan cluster akan gagal.

enableControlplaneV2

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

Jika Anda mengaktifkan cluster lanjutan, Anda harus menyetel enableControlplaneV2 ke true.

Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna berjalan di node dalam cluster pengguna itu sendiri. Sebaiknya Anda mengaktifkan Controlplane V2.

kubeception

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

Untuk cluster kubeception:

  • Tetapkan enableControlplaneV2 ke false.

  • Jangan isi bagian controlPlaneIPBlock.

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

enableDataplaneV2

Tetapkan enableDataplaneV2 ke true.

vCenter

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

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

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

Khususnya, Anda dapat menggunakan cluster vSphere terpisah untuk cluster admin dan cluster pengguna, serta menggunakan pusat data terpisah untuk cluster admin dan cluster pengguna.

Menggunakan satu pusat data dan satu cluster vSphere

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

Menggunakan cluster vSphere terpisah

Jika Anda 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, keduanya 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, keduanya juga berada di cluster vSphere yang terpisah.

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

  • vCenter.networkName
  • vCenter.datastore atau vCenter.storagePolicyName
  • 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 admin cluster memerlukan akses ke pusat data admin cluster, sedangkan akun vCenter untuk cluster pengguna hanya memerlukan akses ke pusat data cluster pengguna.

Menggunakan instance vCenter Server terpisah

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

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

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

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

Isi juga kolom network.vCenter.networkName.

network

Tentukan cara Anda ingin agar node pekerja mendapatkan alamat IP-nya. Opsi yang tersedia adalah:

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

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

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

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

Tentukan server DNS dan NTP dengan mengisi bagian hostConfig. Server DNS dan NTP ini ditujukan untuk node bidang kontrol. Jika Anda menggunakan alamat IP statis untuk worker node, server DNS dan NTP ini juga ditujukan untuk worker node.

network.podCIDR dan network.serviceCIDR memiliki nilai yang sudah diisi sebelumnya yang dapat Anda biarkan tidak berubah kecuali jika bertentangan dengan alamat yang sudah digunakan di jaringan Anda. Kubernetes menggunakan rentang ini untuk menetapkan alamat IP ke Pod dan Layanan di cluster Anda.

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

loadBalancer

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

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

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

advancedNetworking

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

multipleNetworkInterfaces

Tentukan apakah Anda ingin mengonfigurasi beberapa antarmuka jaringan untuk Pod, dan tetapkan multipleNetworkInterfaces dengan tepat.

storage

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

masterNode

Di bagian masterNode, Anda dapat menentukan jumlah node bidang kontrol yang diinginkan untuk cluster pengguna: tentukan 3 untuk cluster dengan ketersediaan tinggi (HA) atau 1 untuk cluster non-HA. Anda juga dapat menentukan penyimpanan data untuk node bidang kontrol dan apakah Anda ingin mengaktifkan pengubahan ukuran otomatis untuk node bidang kontrol.

Jika kolom enableAdvancedCluster adalah true, Anda harus menetapkan kolom replicas ke 3. Hanya cluster pengguna HA yang didukung di cluster lanjutan.

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

nodePools

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

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

Jika Anda mengaktifkan cluster lanjutan, tetapkan nodePools[i]osImageType ke ubuntu_cgroupv2 atau ubuntu_containerd.

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

antiAffinityGroups

Tetapkan antiAffinityGroups.enabled ke true atau false.

Kolom ini menentukan apakah Google Distributed Cloud membuat aturan anti-afinitas Distributed Resource Scheduler (DRS) untuk node pekerja Anda, sehingga node tersebut tersebar di setidaknya tiga host fisik di pusat data Anda.

stackdriver

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

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

Perhatikan persyaratan berikut untuk cluster baru:

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

  • Region Google Cloud yang ditetapkan di stackdriver.clusterLocation harus sama dengan region yang ditetapkan di cloudAuditLogging.clusterLocation dan gkeConnect.location. Selain itu, jika gkeOnPremAPI.enabled adalah true, region yang sama harus ditetapkan di gkeOnPremAPI.location.

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

gkeConnect

Cluster pengguna Anda harus terdaftar ke Google Cloud fleet.

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

Di 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 dari layanan ini.

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

gkeOnPremAPI

Di 1.16 dan yang lebih baru, jika GKE On-Prem API diaktifkan di projectGoogle Cloud , 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 Anda ingin mendaftarkan semua cluster dalam project di GKE On-Prem API, pastikan untuk 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) dalam project. Untuk mengetahui petunjuknya, lihat Menonaktifkan layanan.

cloudAuditLogging

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

Perhatikan persyaratan berikut:

  • Jika Anda mengaktifkan cluster lanjutan, tetapkan cloudAuditLogging.serviceAccountKeyPath ke jalur yang sama dengan stackdriver.serviceAccountKeyPath.

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

  • Region di cloudAuditLogging.clusterLocation harus sama dengan region yang ditetapkan di gkeConnect.location 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 telah diisi

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.33.0-gke.799
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 poin-poin penting yang perlu dipahami dalam contoh sebelumnya:

  • Kolom nodePools.replicas ditetapkan ke 3, yang berarti ada tiga node pekerja di "worker-node-pool". Semua worker node menggunakan alamat IP statis karena network.ipMode.type disetel ke "static".

  • Alamat IP statis untuk node pekerja 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 worker node. Hal ini karena node pekerja memiliki alamat IP statis. Jika node pekerja mendapatkan alamat IP dari server DHCP, maka server DNS dan NTP ini hanya untuk node bidang kontrol.

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

  • Controlplane V2 diaktifkan.

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

  • VIP bidang kontrol dan VIP ingress berada di VLAN yang sama dengan worker node dan node bidang kontrol.

  • VIP yang dicadangkan untuk Layanan jenis LoadBalancer ditentukan di bagian loadBalancer.metalLB.addressPools pada 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 mencakup VIP ingress dan tidak boleh mencakup VIP control plane.

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

Memvalidasi file konfigurasi Anda

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 admin cluster Anda

  • USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna Anda

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

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

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

Jalankan gkectl prepare jika salah satu hal berikut berlaku:

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

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

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

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

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

Ganti kode berikut:

  • ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig cluster admin Anda

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

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

Membuat cluster pengguna

Jalankan perintah berikut untuk membuat cluster pengguna:

gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Jika Anda 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.

Cari file kubeconfig cluster pengguna

Perintah gkectl create cluster akan 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 menampilkan nama cluster. Contoh:

NAME
my-user-cluster

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

Pastikan cluster pengguna Anda 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 menampilkan node cluster pengguna. Contoh:

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

Konsol

Mulai

  1. Di konsol Google Cloud , buka halaman Create VM cluster.

    Buka Buat cluster VM

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

  3. Di bagian Pilih jenis cluster Anda, pilih Buat cluster pengguna untuk cluster admin yang ada.

Dasar-dasar cluster

Masukkan informasi dasar tentang cluster.

  1. Masukkan Name untuk cluster pengguna.

  2. Di bagian Admin cluster, pilih admin cluster dari daftar. Jika Anda tidak menentukan nama untuk cluster admin saat membuatnya, nama akan dibuat dalam bentuk 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 daftar 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 berjalan:

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

    Setelan ini juga mengontrol region tempat item berikut disimpan:

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

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

  4. Pilih versi Google Distributed Cloud untuk cluster pengguna Anda.

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

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

  6. Klik Berikutnya untuk membuka bagian Control plane.

Bidang Kontrol

Semua kolom di bagian Control plane ditetapkan dengan nilai default. Tinjau setelan default dan ubah sesuai kebutuhan.

  1. Di kolom vCPU node bidang kontrol, masukkan jumlah vCPU (minimum 4) untuk setiap node bidang kontrol untuk cluster pengguna Anda.

  2. Di kolom Memori node bidang kontrol, masukkan ukuran memori dalam MiB (minimum 8192 dan harus kelipatan 4) untuk setiap bidang kontrol bagi cluster pengguna Anda.

  3. Di bagian Control-plane nodes, pilih jumlah node bidang kontrol untuk cluster pengguna Anda. Misalnya, Anda dapat memilih 1 node bidang kontrol untuk lingkungan pengembangan dan 3 node bidang kontrol untuk lingkungan produksi dengan ketersediaan tinggi (HA).

  4. Jika mau, pilih Pengubahan ukuran node otomatis. Mengubah ukuran berarti resource vCPU dan memori yang ditetapkan ke node disesuaikan secara otomatis. Jika diaktifkan, node control plane untuk cluster pengguna akan diubah ukurannya sesuai dengan jumlah node pekerja di cluster pengguna. Jadi, saat Anda menambahkan lebih banyak node pekerja ke cluster pengguna, ukuran node bidang kontrol akan bertambah.

  5. Di bagian Control plane node IPs, masukkan alamat IP untuk gateway, subnet mask, dan node bidang kontrol.

  6. Klik Berikutnya untuk membuka bagian Networking.

Jaringan

Di bagian ini, Anda menentukan alamat IP untuk node, Pod, dan Layanan cluster. Cluster pengguna harus memiliki satu alamat IP untuk setiap node dan alamat IP tambahan untuk node sementara yang diperlukan selama upgrade, update, dan perbaikan otomatis cluster. Untuk mengetahui informasi selengkapnya, lihat Berapa banyak alamat IP yang dibutuhkan 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.

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

  2. Jika Anda memilih DHCP, lewati ke langkah berikutnya untuk menentukan CIDR 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 IP Addresses, masukkan alamat IP dan secara opsional, nama host untuk node di cluster pengguna. Anda dapat memasukkan alamat IP v4 individual (seperti 192.0.2.1) atau blok alamat IPv4 CIDR (seperti 192.0.2.0/24).

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

      • Jika memasukkan alamat IP individual, 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 lebih banyak alamat IP.

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

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

    Jika Anda lebih memilih untuk memasukkan rentang alamat sendiri, lihat Alamat IP untuk Pod dan Service untuk mengetahui praktik terbaiknya.

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

    1. Masukkan alamat IP server DNS.
    2. Masukkan alamat IP server NTP.
    3. Secara opsional, 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 Load balancer type dari daftar.

Disertakan dengan MetalLB

Mengonfigurasi load balancing gabungan 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 gabungan dengan MetalLB.

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

    1. Masukkan nama untuk kumpulan alamat.

    2. Masukkan rentang alamat IP yang berisi VIP ingress dalam notasi CIDR (mis. 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 (mis. 192.0.2.1/32).

    3. Jika alamat IP untuk Layanan Anda yang berjenis LoadBalancer tidak berada dalam rentang alamat IP yang sama dengan VIP ingress, klik + Tambahkan Rentang Alamat IP dan masukkan rentang alamat lain.

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

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

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

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

    5. Klik Hindari alamat IP yang bermasalah jika Anda ingin pengontrol MetalLB tidak menggunakan alamat dari kumpulan yang diakhiri dengan .0 atau .255. Hal ini menghindari masalah perangkat konsumen yang bermasalah yang secara keliru menghentikan traffic yang dikirim ke alamat IP khusus tersebut.

    6. Setelah selesai, klik Selesai.

  2. Jika perlu, klik Tambahkan Kumpulan Alamat.

  3. Di bagian Virtual IPs, masukkan informasi berikut:

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

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

  4. Klik Lanjutkan.

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 ADC F5 BIG-IP sebelum mengintegrasikannya dengan Google Distributed Cloud.

Nama pengguna dan sandi F5 diwarisi dari admin cluster.

  1. Di bagian Virtual IPs, masukkan informasi berikut:

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

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

  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 sNAT pool name, masukkan nama pool SNAT Anda, jika berlaku.

  5. Klik Lanjutkan.

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 ingress masing-masing diekspos oleh Layanan Kubernetes berjenis LoadBalancer. Pilih nilai nodePort Anda sendiri dalam rentang 30000 - 32767 untuk Layanan ini. Untuk proxy ingress, pilih nilai nodePort untuk traffic HTTP dan HTTPS. Lihat Mengaktifkan mode load balancing manual untuk mengetahui informasi selengkapnya.

  1. Di bagian Virtual IPs, masukkan informasi berikut:

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

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

  2. Di kolom Control-plane node port, masukkan nilai nodePort untuk server Kubernetes API.

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

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

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

  6. Klik Lanjutkan.

Fitur

Bagian ini menampilkan fitur dan operasi yang diaktifkan di cluster.

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

  2. Berikut ini diaktifkan secara default, tetapi Anda dapat menonaktifkannya:

    • Aktifkan driver CSI vSphere: Juga disebut vSphere Container Storage Plug-in. Driver Container Storage Interface (CSI) berjalan di cluster Kubernetes yang di-deploy di vSphere untuk menyediakan volume persisten di penyimpanan vSphere. Untuk mengetahui informasi selengkapnya, lihat Menggunakan driver vSphere Container Storage Interface.

    • Aktifkan grup anti-afinitas: Aturan anti-afinitas VMware Distributed Resource Scheduler (DRS) dibuat secara otomatis untuk node cluster pengguna Anda, sehingga node tersebut tersebar di setidaknya 3 host fisik di pusat data Anda. Pastikan lingkungan vSphere Anda memenuhi persyaratan.

  3. Klik Berikutnya untuk mengonfigurasi node pool

Kumpulan node

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

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

    1. Masukkan Nama kumpulan node atau terima "default-pool" sebagai nama.
    2. Masukkan jumlah vCPUs untuk setiap node di pool (minimal 4 per pekerja cluster pengguna).
    3. Masukkan ukuran memori dalam mebibyte (MiB) untuk setiap node di pool (minimum 8192 MiB per node pekerja cluster pengguna dan harus kelipatan 4).
    4. Di kolom Nodes, masukkan jumlah node dalam pool (minimum 3). Jika Anda memasukkan alamat IP statis untuk IP Node di bagian Jaringan, pastikan Anda memasukkan alamat IP yang cukup untuk mengakomodasi node cluster pengguna ini.
    5. Pilih jenis image OS: Ubuntu, Ubuntu Containerd, atau COS.
    6. Masukkan Boot disk size dalam gibibyte (GiB) (minimal 40 GiB).
    7. Jika Anda menggunakan MetalLB sebagai load balancer, MetalLB harus diaktifkan di setidaknya satu node pool. Biarkan Gunakan kumpulan node ini untuk load balancing MetalLB dipilih, atau tambahkan kumpulan node lain untuk digunakan bagi MetalLB.
  2. Di bagian Metadata kumpulan node (opsional), jika Anda ingin menambahkan label dan taint Kubernetes, lakukan hal berikut:

    1. Klik + Tambahkan Label Kubernetes. Masukkan Kunci dan Nilai untuk label. Ulangi jika perlu.
    2. Klik + Add Taint. Masukkan Kunci, Nilai, dan Efek untuk taint. Ulangi jika perlu.
  3. Klik Verifikasi dan Selesaikan untuk membuat cluster pengguna. Diperlukan waktu 15 menit atau lebih untuk membuat cluster pengguna. Konsol menampilkan pesan status saat memverifikasi setelan dan membuat cluster di pusat data Anda.

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

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

gcloud CLI

Anda menggunakan perintah berikut untuk membuat cluster pengguna:

gcloud container vmware clusters create

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

gcloud container vmware node-pools create

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

Mengumpulkan informasi

Kumpulkan beberapa informasi yang Anda butuhkan untuk membuat cluster.

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

    gcloud container fleet memberships list \
        --project=FLEET_HOST_PROJECT_ID
    

    Ganti FLEET_HOST_PROJECT_ID dengan ID project tempat cluster admin didaftarkan.

    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 berjalan. Cluster Admin yang dibuat sebelum 1.28 dikelola oleh layanan Fleet dan Connect global. Di 1.28 dan yang lebih tinggi, Anda dapat menentukan global atau Google Cloud region saat membuat cluster admin. Anda menentukan region dalam flag --admin-cluster-membership-location pada contoh perintah berikut.

  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 admin cluster terdaftar.

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

    • REGION: Region Google Cloud yang akan Anda gunakan saat membuat cluster pengguna. Ini adalah region tempat GKE On-Prem API berjalan dan menyimpan metadatanya.

      • Jika cluster admin terdaftar di GKE On-Prem API, gunakan region yang sama dengan cluster admin. Untuk mengetahui region cluster admin, jalankan perintah berikut:

        gcloud container vmware admin-clusters list \
          --project=FLEET_HOST_PROJECT_ID \
          --location=-
        
      • Jika cluster admin tidak terdaftar di GKE On-Prem API, tentukan us-west1 atau region yang didukung lainnya. Jika Anda selanjutnya mendaftarkan cluster admin di GKE On-Prem API, gunakan region yang sama dengan cluster pengguna.

    Output perintah gcloud container vmware clusters query-version-config mirip dengan berikut ini:

    versions:
    - isInstalled: true
      version: 1.28.800-gke.109
    - version: 1.29.0-gke.1456
    - version: 1.29.100-gke.248
    - version: 1.29.200-gke.245
    - version: 1.29.300-gke.184
    

    Perintah ini juga menampilkan penjelasan tentang versi yang dapat Anda gunakan untuk pembuatan atau upgrade cluster pengguna. Versi yang diizinkan diberi anotasi dengan isInstalled: true, yang berarti cluster admin memiliki komponen khusus versi yang diperlukan untuk mengelola cluster pengguna versi tersebut. Jika Anda ingin menggunakan versi yang diinstal di cluster admin, lanjutkan ke bagian Contoh untuk membuat cluster pengguna.

Menginstal versi lain

Cluster admin dapat mengelola cluster pengguna dengan versi yang berbeda. Output perintah query-version-config mencantumkan versi lain yang dapat Anda gunakan saat membuat cluster. Jika ingin membuat cluster pengguna yang memiliki versi berbeda dengan cluster admin, Anda perlu mendownload dan men-deploy komponen yang diperlukan cluster admin untuk mengelola cluster pengguna dengan versi tersebut, sebagai berikut:

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

Ganti VERSION dengan salah satu versi yang tercantum dalam output perintah query-version-config.

Perintah ini 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.

Jika Anda menjalankan ulang gcloud container vmware clusters query-version-config, versi yang Anda tentukan akan dianotasi dengan isInstalled: true.

Contoh

Contoh berikut menunjukkan cara membuat cluster pengguna dengan load balancer yang berbeda dengan Controlplane V2 diaktifkan. Dengan Controlplane V2, bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node di cluster pengguna itu sendiri. Sebaiknya Anda mengaktifkan Controlplane V2, dan di versi 1.30 dan yang lebih tinggi, cluster pengguna baru harus mengaktifkan Controlplane V2. Untuk mengetahui informasi tentang opsi load balancing yang tersedia, lihat Ringkasan load balancer.

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

Sebelum menjalankan perintah gcloud untuk membuat cluster, Anda dapat menyertakan --validate-only untuk memvalidasi konfigurasi yang Anda tentukan di flag ke perintah gcloud. Saat Anda siap membuat cluster, hapus tanda ini dan jalankan perintah.

Jika Anda mendapatkan error setelah perintah gcloud container vmware clusters create berjalan selama sekitar satu menit atau lebih, periksa apakah cluster dibuat sebagian dengan menjalankan perintah berikut:

gcloud container vmware clusters list \
    --project=FLEET_HOST_PROJECT_ID \
    --location=-

Jika cluster tidak tercantum dalam output, perbaiki error dan jalankan kembali gcloud container vmware clusters create.

Jika cluster tercantum dalam output, hapus cluster menggunakan perintah berikut:

gcloud container vmware clusters delete USER_CLUSTER_NAME \
    --project=FLEET_HOST_PROJECT_ID \
    --location=REGION \
    --force \
    --allow-missing

Kemudian, perbaiki error dan jalankan ulang gcloud container vmware clusters create.

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

MetalLB & DHCP

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

Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin Anda menggunakan 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 gabungan dengan MetalLB.

Contoh perintah membuat cluster pengguna dengan karakteristik berikut, yang dapat Anda ubah sesuai kebutuhan lingkungan Anda.

Flag Deskripsi
--admin-users Memberi Anda dan pengguna lain hak administratif penuh di cluster.
--enable-control-plane-v2 Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan di versi 1.30 dan yang lebih tinggi.
--control-plane-ip-block Satu alamat IP untuk node bidang kontrol. Untuk membuat cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP dan tambahkan flag --replicas=3.
--metal-lb-config-address-pools Dua kumpulan alamat untuk load balancer MetalLB. Anda memerlukan setidaknya satu kumpulan alamat, dan Anda dapat menentukan lebih banyak jika diperlukan. Untuk memudahkan, contoh ini berisi kumpulan alamat dengan nama "ingress-vip-pool" sebagai pengingat bahwa alamat IP untuk VIP ingress harus berada di salah satu kumpulan alamat. Anda menentukan CIDR untuk satu alamat IP dengan menambahkan /32 ke alamat IP.
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=10.96.0.0/20 \
    --pod-address-cidr-blocks=192.168.0.0/16 \
    --metal-lb-config-address-pools='pool=NAME,avoid-buggy-ips=AVOID_BUGGY_IPS,manual-assign=MANUAL_ASSIGN,addresses=IP_ADDRESS_RANGE_1' \
    --metal-lb-config-address-pools='pool=ingress-vip-pool,avoid-buggy-ips=False,manual-assign=True,addresses=INGRESS_VIP/32' \
    --enable-control-plane-v2 \
    --dns-servers=DNS_SERVER_1 \
    --ntp-servers=NTP_SERVER_1 \
    --control-plane-ip-block 'gateway=CP_GATEWAY,netmask=CP_NETMASK,ips=CP_IP_ADDRESS_1 CP_HOST_1' \
    --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. Nama harus:
    • berisi paling banyak 40 karakter
    • hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (-)
    • diawali dengan karakter alfabet
    • diakhiri dengan karakter alfanumerik
  • FLEET_HOST_PROJECT_ID: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin terdaftar. Setelah cluster pengguna dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang dipilih. Project host armada tidak dapat diubah setelah cluster dibuat.
  • ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Di tanda --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 pada contoh perintah. 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) berjalan. Tentukan us-west1 atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat hal berikut disimpan:
    • Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
    • Data Cloud Logging dan Cloud Monitoring dari komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

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

  • VERSION: Versi Google Distributed Cloud untuk cluster pengguna Anda.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika Anda tidak menyertakan tanda --admin-users, sebagai pembuat cluster, secara default Anda akan diberi hak istimewa admin cluster. Namun, jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda mengganti default dan harus menyertakan alamat email Anda dan alamat email administrator lain. 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 untuk memberi Anda dan pengguna admin lainnya peran clusterrole/cluster-admin Kubernetes, yang memberikan akses penuh ke setiap resource di cluster dalam semua namespace.

  • SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Harus berupa 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. Harus berupa rentang /18.

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

  • --metal-lb-config-address-pools: Sertakan flag ini untuk menentukan konfigurasi 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 memiliki segmen yang dimulai dengan kata kunci pool, avoid-buggy-ip, manual-assign, dan addresses. Pisahkan setiap segmen dengan koma.

    • pool: Nama pilihan Anda untuk pool.
    • avoid-buggy-ips1: Jika Anda menyetelnya ke True, pengontrol MetalLB tidak akan menetapkan alamat IP yang diakhiri dengan .0 atau .255 ke Layanan. Hal ini menghindari masalah perangkat konsumen yang penuh bug secara keliru menghentikan 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 dari pool ini ke Layanan secara otomatis, tetapkan ini ke True. Kemudian, developer dapat membuat Layanan berjenis LoadBalancer dan menentukan salah satu alamat dari kumpulan secara manual. Jika tidak ditentukan, manual-assign akan ditetapkan ke False.
    • Dalam daftar addresses: Setiap alamat harus berupa rentang dalam notasi CIDR atau format rentang dengan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (seperti untuk VIP ingress), gunakan /32 dalam notasi CIDR, misalnya: 192.0.2.1/32.

    Perhatikan 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 di load balancer untuk server Kubernetes API cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

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

    Contoh: --ingress-vip=10.251.134.80

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

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

MetalLB & IP statis

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

Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin Anda menggunakan 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 gabungan dengan MetalLB.

Contoh perintah membuat cluster pengguna dengan karakteristik berikut, yang dapat Anda ubah sesuai kebutuhan lingkungan Anda.

Flag Deskripsi
--admin-users Memberi Anda dan pengguna lain hak administratif penuh di cluster.
--enable-control-plane-v2 Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan di versi 1.30 dan yang lebih tinggi.
--control-plane-ip-block Satu alamat IP untuk node bidang kontrol. Untuk membuat cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP dan tambahkan flag --replicas=3.
--metal-lb-config-address-pools Dua kumpulan alamat untuk load balancer MetalLB. Anda memerlukan setidaknya satu kumpulan alamat, dan Anda dapat menentukan lebih banyak jika diperlukan. Untuk memudahkan, contoh ini berisi kumpulan alamat dengan nama "ingress-vip-pool" sebagai pengingat bahwa alamat IP untuk VIP ingress harus berada di salah satu kumpulan alamat. Anda menentukan CIDR untuk satu alamat IP dengan menambahkan /32 ke alamat IP.
--static-ip-config-ip-blocks Empat alamat IP untuk node pekerja di cluster. Hal ini mencakup alamat untuk node tambahan yang dapat digunakan selama upgrade dan update. Anda dapat menentukan lebih banyak alamat IP jika diperlukan. Nama host bersifat opsional.
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=10.96.0.0/20 \
    --pod-address-cidr-blocks=192.168.0.0/16 \
    --metal-lb-config-address-pools='pool=NAME,avoid-buggy-ips=AVOID_BUGGY_IPS,manual-assign=MANUAL_ASSIGN,addresses=IP_ADDRESS_RANGE_1' \
    --metal-lb-config-address-pools='pool=ingress-vip-pool,avoid-buggy-ips=False,manual-assign=True,addresses=INGRESS_VIP/32' \
    --enable-control-plane-v2 \
    --control-plane-ip-block 'gateway=CP_GATEWAY,netmask=CP_NETMASK,ips=CP_IP_ADDRESS_1 CP_HOST_1' \
    --control-plane-vip=CONTROL_PLANE_VIP \
    --ingress-vip=INGRESS_VIP \
    --static-ip-config-ip-blocks='gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1 HOST_1;IP_ADDRESS_2 HOST_2;IP_ADDRESS_3 HOST_3;IP_ADDRESS_4 HOST_4' \
    --dns-servers=DNS_SERVER_1 \
    --ntp-servers=NTP_SERVER_1

Ganti kode berikut:

  • USER_CLUSTER_NAME: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Nama harus:
    • berisi paling banyak 40 karakter
    • hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (-)
    • diawali dengan karakter alfabet
    • diakhiri dengan karakter alfanumerik
  • FLEET_HOST_PROJECT_ID: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin terdaftar. Setelah cluster pengguna dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang dipilih. Project host armada tidak dapat diubah setelah cluster dibuat.
  • ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Di tanda --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 pada contoh perintah. 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) berjalan. Tentukan us-west1 atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat hal berikut disimpan:
    • Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
    • Data Cloud Logging dan Cloud Monitoring dari komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

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

  • VERSION: Versi Google Distributed Cloud untuk cluster pengguna Anda.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika Anda tidak menyertakan tanda --admin-users, sebagai pembuat cluster, secara default Anda akan diberi hak istimewa admin cluster. Namun, jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda mengganti default dan harus menyertakan alamat email Anda dan alamat email administrator lain. 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 untuk memberi Anda dan pengguna admin lainnya peran clusterrole/cluster-admin Kubernetes, yang memberikan akses penuh ke setiap resource di cluster dalam semua namespace.

  • SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Harus berupa 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. Harus berupa rentang /18.

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

  • --metal-lb-config-address-pools: Sertakan flag ini untuk menentukan konfigurasi 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 memiliki segmen yang dimulai dengan kata kunci pool, avoid-buggy-ip, manual-assign, dan addresses. Pisahkan setiap segmen dengan koma.

    • pool: Nama pilihan Anda untuk pool.
    • avoid-buggy-ips1: Jika Anda menyetelnya ke True, pengontrol MetalLB tidak akan menetapkan alamat IP yang diakhiri dengan .0 atau .255 ke Layanan. Hal ini menghindari masalah perangkat konsumen yang penuh bug secara keliru menghentikan 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 dari pool ini ke Layanan secara otomatis, tetapkan ini ke True. Kemudian, developer dapat membuat Layanan berjenis LoadBalancer dan menentukan salah satu alamat dari kumpulan secara manual. Jika tidak ditentukan, manual-assign akan ditetapkan ke False.
    • Dalam daftar addresses: Setiap alamat harus berupa rentang dalam notasi CIDR atau format rentang dengan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (seperti untuk VIP ingress), gunakan /32 dalam notasi CIDR, misalnya: 192.0.2.1/32.

    Perhatikan 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 di load balancer untuk server Kubernetes API cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

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

    Contoh: --ingress-vip=10.251.134.80

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

  • --static-ip-config-ip-blocks: Tentukan gateway default, subnet mask, dan daftar alamat IP statis untuk node pekerja 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 memiliki segmen yang dimulai dengan kata kunci gateway, netmask, dan ips. Pisahkan segmen dengan koma.

    Perhatikan 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 secara opsional menentukan nama host setelah alamat IP. Pisahkan alamat IP dan nama host dengan spasi. Jika Anda tidak menentukan nama host, Google Distributed Cloud 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 dari domain penelusuran DNS yang akan digunakan host. Domain ini digunakan sebagai bagian dari daftar penelusuran domain.

    Contoh:

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

LB manual & IP statis

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

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 ingress, 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 ingress, pilih nilai nodePort untuk traffic HTTP dan HTTPS. Lihat Mengaktifkan mode load balancing manual untuk mengetahui informasi selengkapnya.

Contoh perintah membuat cluster pengguna dengan karakteristik berikut, yang dapat Anda ubah sesuai kebutuhan lingkungan Anda.

Flag Deskripsi
--admin-users Memberi Anda dan pengguna lain hak administratif penuh di cluster.
--enable-control-plane-v2 Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan di versi 1.30 dan yang lebih tinggi.
--control-plane-ip-block Satu alamat IP untuk node bidang kontrol. Untuk membuat cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP dan tambahkan flag --replicas=3.
--static-ip-config-ip-blocks Empat alamat IP untuk node pekerja di cluster. Hal ini mencakup alamat untuk node tambahan yang dapat digunakan selama upgrade dan update. Anda dapat menentukan lebih banyak alamat IP jika diperlukan. Nama host bersifat opsional.
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=10.96.0.0/20 \
    --pod-address-cidr-blocks=192.168.0.0/16 \
    --enable-control-plane-v2 \
    --control-plane-ip-block 'gateway=CP_GATEWAY,netmask=CP_NETMASK,ips=CP_IP_ADDRESS_1 CP_HOST_1' \
    --control-plane-vip=CONTROL_PLANE_VIP \
    --ingress-vip=INGRESS_VIP \
    --ingress-http-node-port=INGRESS_HTTP_NODE_PORT \
    --ingress-https-node-port=INGRESS_HTTPS_NODE_PORT \
    --static-ip-config-ip-blocks='gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1 HOST_1;IP_ADDRESS_2 HOST_2;IP_ADDRESS_3 HOST_3;IP_ADDRESS_4 HOST_4' \
    --dns-servers=DNS_SERVER_1 \
    --ntp-servers=NTP_SERVER_1

Ganti kode berikut:

  • USER_CLUSTER_NAME: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Nama harus:
    • berisi paling banyak 40 karakter
    • hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (-)
    • diawali dengan karakter alfabet
    • diakhiri dengan karakter alfanumerik
  • FLEET_HOST_PROJECT_ID: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin terdaftar. Setelah cluster pengguna dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang dipilih. Project host armada tidak dapat diubah setelah cluster dibuat.
  • ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Di tanda --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 pada contoh perintah. 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) berjalan. Tentukan us-west1 atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat hal berikut disimpan:
    • Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
    • Data Cloud Logging dan Cloud Monitoring dari komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

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

  • VERSION: Versi Google Distributed Cloud untuk cluster pengguna Anda.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika Anda tidak menyertakan tanda --admin-users, sebagai pembuat cluster, secara default Anda akan diberi hak istimewa admin cluster. Namun, jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda mengganti default dan harus menyertakan alamat email Anda dan alamat email administrator lain. 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 untuk memberi Anda dan pengguna admin lainnya peran clusterrole/cluster-admin Kubernetes, yang memberikan akses penuh ke setiap resource di cluster dalam semua namespace.

  • SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Harus berupa 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. Harus berupa rentang /18.

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

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

    Contoh: --control-plane-vip=203.0.113.3

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

    Contoh: --ingress-vip=203.0.113.4

  • INGRESS_HTTP_NODE_PORT: Nilai nodePort untuk traffic HTTP ke proxy ingress (seperti 30243).

  • INGRESS_HTTPS_NODE_PORT: Nilai nodePort untuk traffic HTTPS ke proxy ingress (seperti 30879).

  • --static-ip-config-ip-blocks: Tentukan gateway default, subnet mask, dan daftar alamat IP statis untuk node pekerja 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 memiliki segmen yang dimulai dengan kata kunci gateway, netmask, dan ips. Pisahkan segmen dengan koma.

    Perhatikan 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 secara opsional menentukan nama host setelah alamat IP. Pisahkan alamat IP dan nama host dengan spasi. Jika Anda tidak menentukan nama host, Google Distributed Cloud 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 dari domain penelusuran DNS yang akan digunakan host. Domain ini digunakan sebagai bagian dari daftar penelusuran domain.

    Contoh:

    --dns-search-domains example.com,examplepetstore.com
  • NTP_SERVER: Daftar alamat IP server waktu yang dipisahkan koma untuk digunakan 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 (minimum 4) untuk setiap node control plane untuk cluster pengguna Anda. Jika tidak ditentukan, defaultnya adalah 4 vCPU.

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

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

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

  • --enable-control-plane-v2: Untuk mengaktifkan Controlplane V2, yang kami rekomendasikan, sertakan flag ini. Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node di cluster pengguna itu sendiri. Pada versi 1.30 dan yang lebih baru, Controlplane V2 diperlukan.

    Saat mengaktifkan Controlplane V2, Anda juga harus menentukan flag berikut:

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

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

      Perhatikan 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 secara opsional 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 host. Domain ini digunakan sebagai bagian dari daftar penelusuran domain.

      Contoh:

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

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

    Flag vSphere

    Tentukan flag opsional berikut jika diperlukan:

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

  • --disable-vsphere-csi: Jika Anda tidak menyertakan tanda ini, komponen vSphere Container Storage Interface (CSI) 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 mengetahui informasi selengkapnya, lihat Menggunakan driver vSphere Container Storage Interface. Jika Anda tidak ingin men-deploy komponen CSI, sertakan tanda ini.

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

    Melacak progres pembuatan cluster

    Output dari perintah pembuatan cluster mirip dengan berikut ini:

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

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

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

    Untuk mengetahui informasi selengkapnya, lihat gcloud container vmware operations.

    Pembuatan cluster pengguna memerlukan waktu 15 menit atau lebih. Anda dapat melihat cluster di konsol Google Cloud di halaman GKE clusters.

    Membuat node pool

    Setelah cluster dibuat, Anda perlu membuat setidaknya satu node pool 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 node pool. Nama harus:

    • berisi paling banyak 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 terdaftar.

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

  • IMAGE_TYPE: Jenis image OS yang akan dijalankan di VM dalam node pool. Tetapkan ke salah satu opsi berikut: ubuntu_containerd atau cos.

  • BOOT_DISK_SIZE: Ukuran boot disk dalam gibibyte (GiB) untuk setiap node di pool. Minimumnya adalah 40 GiB.

  • vCPUs: Jumlah vCPU untuk setiap node di node pool. Nilai minimumnya adalah 4.

  • MEMORY: Ukuran memori dalam mebibyte (MiB) untuk setiap node dalam pool. Minimumnya adalah 8192 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, secara opsional, sertakan --enable-load-balancer jika Anda ingin mengizinkan speaker MetalLB berjalan di node dalam pool. MetalLB harus diaktifkan di setidaknya satu node pool. Jika tidak menyertakan flag ini, Anda harus membuat node pool 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/us-west1/memberships/admin-cluster-1 \
    --version=1.32.300-gke.85 \
    --admin-users=sara@example.com \
    --admin-users=amal@example.com \
    --enable-dhcp \
    --service-address-cidr-blocks=10.96.0.0/20 \
    --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=192.0.2.0/26;pool=lb-ingress-vip-pool,manual-assign=True,addresses=198.51.100.1/32' \
    --enable-control-plane-v2 \
    --control-plane-vip=203.0.113.1 \
    --ingress-vip=198.51.100.1

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.32.300-gke.85 \
    --admin-users=sara@example.com \
    --admin-users=amal@example.com \
    --static-ip-config-ip-blocks='gateway=192.0.2.254,netmask=255.255.255.0,ips=192.0.2.10 user-vm-1;192.0.2.11 user-vm-2' \
    --static-ip-config-ip-blocks='gateway=192.0.2.254,netmask=255.255.255.0,ips=192.0.2.12 user-vm-3;192.0.2.13 extra-vm' \
    --dns-servers=203.0.113.1,203.0.113.2  \
    --dns-search-domains=example.com,altostrat.com \
    --ntp-servers=203.0.113.3,203.0.113.4 \
    --service-address-cidr-blocks=10.96.0.0/20 \
    --pod-address-cidr-blocks=192.168.0.0/16 \
    --enable-control-plane-v2 \
    --control-plane-ip-block 'gateway=192.0.2.254,netmask=255.255.255.0,ips=198.51.100.1 cp-vm-1;198.51.100.2 cp-vm-2;198.51.100.3 cp-vm-3' \
    --replicas=3 \
    --metal-lb-config-address-pools='pool=lb-pool-1,manual-assign=False,avoid-buggy-ips=True,addresses=192.0.2.0/26;lb-ingress-vip-pool,manual-assign=True,addresses=198.51.100.1/32' \
    --control-plane-vip=172.16.20.61 \
    --ingress-vip=172.16.20.62

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/asia-east1/memberships/admin-cluster-1 \
    --version=1.32.300-gke.85 \
    --admin-users=sara@example.com \
    --admin-users=amal@example.com \
    --static-ip-config-ip-blocks='gateway=192.0.2.254,netmask=255.255.255.0,ips=192.0.2.10 user-vm-1;192.0.2.11 user-vm-2';ips=192.0.2.12 user-vm-3;192.0.2.13 extra-vm'\
    --dns-servers=203.0.113.1,203.0.113.2  \
    --ntp-servers=203.0.113.3,203.0.113.4 \
    --service-address-cidr-blocks=10.96.0.0/20 \
    --pod-address-cidr-blocks=192.168.0.0/16 \
    --enable-control-plane-v2 \
    --control-plane-ip-block 'gateway=192.0.2.254,netmask=255.255.255.0,ips=198.51.100.1 cp-vm-1;198.51.100.2 cp-vm-2;198.51.100.3 cp-vm-3' \
    --replicas=3 \
    --control-plane-vip=192.0.2.60 \
    --ingress-vip=192.0.2.50 \
    --ingress-http-node-port=30243 \
    --ingress-https-node-port=30879

Terraform

Sebelum memulai

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

    gcloud container fleet memberships list \
        --project=FLEET_HOST_PROJECT_ID
    

    Ganti FLEET_HOST_PROJECT_ID dengan ID project tempat cluster admin didaftarkan.

    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 berjalan. Cluster Admin yang dibuat sebelum 1.28 dikelola oleh layanan Fleet dan Connect global. Di 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 admin cluster terdaftar.

    • ADMIN_CLUSTER_REGION: Region keanggotaan fleet cluster admin. Ini bisa berupa global atau Google Cloud region. 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 berjalan. Tentukan us-west1 atau wilayah yang didukung lainnya.

    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
    

    Perintah ini juga menampilkan penjelasan tentang versi yang dapat Anda gunakan untuk pembuatan atau upgrade cluster pengguna. Versi yang diizinkan diberi anotasi dengan isInstalled: true, yang berarti cluster admin memiliki komponen khusus versi yang diperlukan untuk mengelola cluster pengguna versi tersebut. Jika Anda ingin menggunakan versi yang diinstal di cluster admin, lanjutkan ke bagian Contoh untuk membuat cluster pengguna.

Menginstal versi lain

Cluster admin dapat mengelola cluster pengguna dengan versi yang berbeda. Output perintah query-version-config mencantumkan versi lain yang dapat Anda gunakan saat membuat cluster. Jika ingin membuat cluster pengguna yang memiliki versi berbeda dengan cluster admin, Anda perlu mendownload dan men-deploy komponen yang diperlukan cluster admin untuk mengelola cluster pengguna dengan versi tersebut, sebagai berikut:

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

Ganti VERSION dengan salah satu versi yang tercantum dalam output perintah query-version-config.

Perintah ini 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.

Jika Anda menjalankan ulang gcloud container vmware clusters query-version-config, versi yang Anda tentukan akan dianotasi dengan isInstalled: true.

Contoh

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

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

Menetapkan variabel di terraform.tfvars

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

  1. Clone repositori anthos-samples dan ubah ke direktori tempat contoh 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 tempat cluster admin terdaftar. Setelah cluster pengguna dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang dipilih. Project host armada tidak dapat diubah setelah cluster dibuat.

    • region: Google Cloud Region tempat GKE On-Prem API (gkeonprem.googleapis.com), layanan Fleet (gkehub.googleapis.com), dan layanan Connect (gkeconnect.googleapis.com) berjalan. Tentukan us-west1 atau wilayah yang didukung lainnya.

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

      1. Buka main.tf di editor teks.
      2. Telusuri admin_cluster_membership, yang terlihat seperti berikut:
      admin_cluster_membership = "projects/${var.project_id}/locations/global/memberships/${var.admin_cluster_name}"
      1. Ubah global ke region yang digunakan cluster admin, lalu simpan file.
    • on_prem_version: Versi Google Distributed Cloud untuk cluster pengguna Anda.

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

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

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

      • berisi paling banyak 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. Minimumnya adalah 4 vCPU.

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

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

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

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

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

      • name: Nama untuk pool.
      • addresses: Rentang alamat dalam notasi CIDR atau format rentang yang dipisahkan dengan tanda hubung. Untuk menentukan satu alamat IP dalam pool (seperti untuk VIP ingress), gunakan /32 dalam notasi CIDR, misalnya: 192.0.2.1/32.

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

  4. Simpan perubahan di terraform.tfvars. Jika Anda tidak ingin membuat perubahan opsional pada main.tf, lanjutkan ke bagian berikutnya, Buat cluster dan satu node pool.

Mengonfigurasi Controlplane V2

Pada versi 1.30 dan yang lebih baru, Anda harus mengaktifkan Controlplane V2. File main.tf dalam contoh tidak mengaktifkan Controlplane V2. Anda harus mengubah main.tf untuk mengaktifkan Controlplane V2 dan menambahkan alamat IP untuk gateway, netmask, dan node bidang kontrol. Sebelum melakukan perubahan, buat cadangan main.tf:

  cp main.tf main.tf.bak
  

Untuk mengonfigurasi Controlplane V2, lakukan perubahan berikut pada main.tf:

  1. Tambahkan baris berikut ke blok resource:

      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 netmask dan gateway dengan alamat IP dari jaringan Anda. Ganti ip dan hostname dengan alamat IP node bidang kontrol Anda.

Opsional: Aktifkan cluster lanjutan

Secara default di versi 1.32 dan yang lebih tinggi, cluster pengguna yang dibuat menggunakan Terraform tidak mengaktifkan cluster lanjutan. Jika Anda ingin mengaktifkan cluster lanjutan, tambahkan kolom tingkat teratas berikut ke main.tf:

enable_advanced_cluster = true

Pastikan untuk meninjau Perbedaan saat menjalankan cluster lanjutan sebelum mengaktifkan cluster lanjutan.

Opsional: Mode pengalamatan IP node pekerja

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

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 Anda ingin menyediakan alamat IP statis untuk node pekerja, 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. Harus berupa rentang /24.

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

    • dns_servers: Daftar alamat IP server DNS untuk VM.

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

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

Buat cluster dan satu node pool

  1. Lakukan inisialisasi dan buat rencana Terraform:

    terraform init
    

    Terraform menginstal library yang diperlukan, seperti Google Cloud provider.

  2. Tinjau konfigurasi dan lakukan perubahan jika diperlukan:

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

    terraform apply
    

    Diperlukan waktu sekitar 15 menit atau lebih untuk membuat cluster pengguna, dan 15 menit lagi untuk membuat kumpulan node. Anda dapat melihat cluster di konsol Google Cloud di halaman GKE clusters.

Opsional: Menjalankan alat command line sebelum pembuatan resource

Jika perlu, Anda dapat menjalankan alat command line seperti gcloud CLI dan gkectl untuk melakukan tugas penyiapan atau konfigurasi sebelum pembuatan resource. Anda menentukan command line yang akan dijalankan dalam file konfigurasi Terraform menggunakan penyedia local-exec, yang memungkinkan Anda menggunakan kembali variabel Terraform yang ditentukan.

Contoh berikut menunjukkan cara mengubah main.tf untuk menjalankan perintah gkectl prepare sebelum pembuatan cluster:

resource "null_resource" "gkectl_prepare" {
  provisioner "local-exec" {
    command = "gkectl prepare --kubeconfig=${var.kubeconfig} --cluster-name=${var.cluster_name} --vcenter-username=${var.vcenter_username} --vcenter-password=${var.vcenter_password} --vcenter-address=${var.vcenter_address} --datacenter=${var.datacenter} --datastore=${var.datastore} --network=${var.network} --os-image=${var.os_image} --service-account-key-file=${var.service_account_key_file} --location=${var.location}"
    working_dir = path.module  # Important: Set working directory
    environment = {
        # Optional: set environment variables if needed.
        # Example: GOOGLE_APPLICATION_CREDENTIALS = "/path/to/your/credentials.json"
    }
  }
}

resource "google_gkeonprem_vmware_cluster" "cluster" {
  # ... your cluster configuration ...
  # Ensure this depends on the null_resource
  depends_on = [null_resource.gkectl_prepare]

  # ... rest of your cluster configuration ...
  location = var.location
  name = var.cluster_name
  # ... other required fields ...
}

Pemecahan masalah

Lihat Memecahkan masalah pembuatan dan upgrade cluster.

Langkah berikutnya