Membuat cluster pengguna

Di Google Distributed Cloud, workload Anda dijalankan di satu atau beberapa cluster pengguna. Ini dokumen yang menunjukkan cara membuat cluster pengguna. Halaman ini ditujukan untuk Admin, Arsitek, dan Operator yang menyiapkan, memantau, dan mengelola infrastruktur teknologi. Untuk mempelajari lebih lanjut peran umum dan contohnya yang kami rujuk dalam konten Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise yang umum.

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

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

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

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

Sebelum memulai

  • Jika belum melakukannya, siapkan resource Google Cloud Anda sebagai yang dijelaskan dalam dokumen ini:

    Saat Anda menyiapkan project host perangkat, ingatlah pilihan alat Anda, karena jika Anda telah memilih salah satu Anda dapat mengaktifkan klien GKE On-Prem API. Untuk mengetahui daftar API, lihat Aktifkan API di project host fleet Anda.

  • 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. Jika Anda membuat cluster pengguna, Anda biasanya menginstal versi yang cocok versi cluster admin. Tapi Anda dapat menginstal {i>patch<i} yang lebih baru serta pada versi 1.28 dan yang lebih baru, cluster pengguna dapat berisi hingga 2 cluster minor. versi yang lebih tinggi dari cluster adminnya.

  • Sebaiknya aktifkan Controlplane V2. Ketika Pesawat Kontrol V2 diaktifkan, bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node di cluster pengguna itu sendiri. Jika Anda berencana menginstal versi 1.30 atau yang lebih tinggi versi terakhir, Controlplane V2 diperlukan. Alternatifnya adalah dengan membuat pengguna yang menggunakan kubeception. Dalam kasus kubeception, bidang kontrol untuk cluster pengguna berjalan pada satu atau beberapa node di cluster admin.

  • Ulas Dokumen perencanaan alamat IP, dan pastikan Anda menyediakan alamat IP yang cukup.

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

  • Pikirkan tentang berapa banyak kumpulan node yang Anda perlukan dan sistem operasi yang ingin dijalankan di setiap kumpulan Anda.

  • Pikirkan apakah Anda ingin menggunakan Cluster vSphere untuk cluster admin dan cluster pengguna, dan apakah Anda ingin menggunakan jaringan pusat data. Juga pikirkan apakah Anda ingin menggunakan contoh yang terpisah dari Server vCenter.

  • Pada versi 1.29 dan yang lebih tinggi, pemeriksaan preflight sisi server diaktifkan oleh secara default. Pemeriksaan preflight sisi server memerlukan aturan firewall tambahan. Di beberapa Aturan firewall untuk cluster admin, telusuri "Pemeriksaan preflight" dan memastikan semua aturan {i>firewall<i} yang diperlukan dikonfigurasi.

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

Membuat cluster pengguna

Gkectl

Ringkasan prosedur

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

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

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

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

Mengisi file konfigurasi Anda

Lakukan langkah-langkah ini di workstation admin Anda.

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

Pahami file konfigurasi dengan memindai file konfigurasi cluster pengguna dokumen. Anda mungkin ingin menyimpan dokumen ini terbuka di tab atau jendela terpisah, karena Anda akan menjadikannya referensi saat menyelesaikan langkah-langkah berikut.

name

Setel name menjadi nama pilihan Anda untuk cluster pengguna.

gkeOnPremVersion

Kolom ini sudah diisi untuk Anda. File ini menentukan versi Google Distributed Cloud. Misalnya, 1.30.0-gke.1930.

enableControlplaneV2

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

Ketika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna akan berjalan di dalam cluster pengguna itu sendiri. Sebaiknya aktifkan Pesawat Kontrol V2.

kubeception

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

Untuk cluster kubeception:

  • Tetapkan enableControlplaneV2 ke false.

  • Jangan isi bagian controlPlaneIPBlock.

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

enableDataplaneV2

Setel enableDataplaneV2 ke true.

vCenter

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

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

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

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

Menggunakan satu pusat data dan satu cluster vSphere

Opsi defaultnya adalah menggunakan satu pusat data dan satu cluster vSphere untuk cluster admin dan cluster pengguna. Untuk opsi ini, jangan tetapkan vCenter nilai 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 sendiri, menentukan nilai untuk vCenter.cluster di file konfigurasi cluster pengguna.

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

Menggunakan pusat data vSphere terpisah

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

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

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

Menggunakan akun vCenter terpisah

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

Menggunakan server vCenter terpisah

Dalam situasi tertentu, sebaiknya buat cluster pengguna yang menggunakan cluster {i>instance <i}dari Server vCenter. Yaitu, cluster admin dan pengguna terkait cluster menggunakan instance Server vCenter yang berbeda.

Misalnya, di lokasi edge, Anda mungkin ingin memiliki komputer menjalankan Server vCenter dan satu atau beberapa komputer fisik yang menjalankan ESXi. Anda dapat lalu gunakan {i>instance<i} lokal vCenter Server Anda untuk membuat objek vSphere seperti pusat data, cluster, kumpulan resource, datastore, dan folder.

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

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

Isi juga network.vCenter.networkName kolom tersebut.

network

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

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

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

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

Node bidang kontrol untuk cluster pengguna Anda harus mendapatkan alamat IP dari sebuah daftar alamat statis yang Anda berikan. Hal ini berlaku meskipun pekerja Anda {i>node<i} mendapatkan alamat mereka dari server DHCP. Untuk menentukan alamat IP statis pada {i>node<i} bidang kontrol, isi network.controlPlaneIPBlock bagian. Jika Anda menginginkan cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP untuk alamat internal dan eksternal. Jika tidak, tentukan satu alamat IP.

Tentukan server DNS dan NTP dengan mengisi bagian hostConfig. DNS ini dan server NTP adalah untuk node bidang kontrol. Jika Anda menggunakan IP statis untuk node pekerja Anda, maka server DNS dan NTP ini juga untuk node pekerja.

Tujuan network.podCIDR dan network.serviceCIDR memiliki nilai yang terisi otomatis dan tidak dapat diubah kecuali jika nilainya bertentangan dengan alamat yang sudah digunakan di jaringan Anda. Kubernetes menggunakan untuk menetapkan alamat IP ke Pod dan Service di cluster Anda.

Terlepas dari apakah Anda mengandalkan server DHCP atau menentukan daftar IP statis alamat IP eksternal, Anda harus menyediakan alamat IP yang cukup untuk cluster pengguna. Untuk penjelasan mengenai berapa banyak alamat IP yang Anda butuhkan, lihat Rencanakan alamat IP Anda.

loadBalancer

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

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

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

advancedNetworking

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

multipleNetworkInterfaces

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

storage

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

masterNode

Di kolom masterNode , Anda dapat menentukan berapa banyak node bidang kontrol yang Anda inginkan untuk pengguna {i>cluster <i}: satu atau tiga. Anda juga dapat menentukan datastore untuk bidang kontrol node dan apakah Anda ingin mengaktifkan pengubahan ukuran otomatis untuk bidang kontrol node.

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

nodePools

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

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

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

antiAffinityGroups

Setel antiAffinityGroups.enabled ke true atau false.

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

stackdriver

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

Bagian ini wajib ada 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 sebagai region yang ditetapkan dalam cloudAuditLogging.clusterLocation dan gkeConnect.location (jika kolom disertakan dalam file konfigurasi Anda.) Selain itu, jika gkeOnPremAPI.enabled adalah true, region yang sama harus ditetapkan di gkeOnPremAPI.location.

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

gkeConnect

Cluster pengguna Anda harus terdaftar ke fleet Google Cloud.

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

Di 1.28 dan yang lebih baru, Anda dapat secara opsional menentukan wilayah tempat Armada dan Menghubungkan layanan yang berjalan di gkeConnect.location. Jika Anda tidak menyertakan kolom ini, cluster menggunakan instance global layanan ini.

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

gkeOnPremAPI

Pada versi 1.16 dan yang lebih baru, jika GKE On-Prem API diaktifkan di di project Google Cloud, semua cluster dalam project terdaftar di GKE On-Prem API secara otomatis di region yang dikonfigurasi di stackdriver.clusterLocation. Region gkeOnPremAPI.location harus sama dengan region yang ditentukan di cloudAuditLogging.clusterLocation, gkeConnect.location (jika kolomnya adalah 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 dalam Sebelum memulai mengaktifkan dan menggunakan GKE On-Prem API di project.

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

usageMetering

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

cloudAuditLogging

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

Perhatikan persyaratan berikut untuk cluster baru:

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

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

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

Contoh file konfigurasi yang terisi

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

user-ipblock.yaml

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

user-cluster.yaml

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

Berikut adalah hal-hal penting yang perlu dipahami dalam contoh sebelumnya:

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

  • Server DNS dan NTP ditentukan di bagian hostConfig. Di sini contoh, server DNS dan NTP ini adalah untuk node bidang kontrol dan node pekerja. Hal ini terjadi karena node pekerja memiliki alamat IP statis. Jika node pekerja adalah untuk mendapatkan alamat IP mereka dari server DHCP, kemudian Server DNS dan NTP hanya untuk {i>node<i} bidang kontrol.

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

  • Controlplane V2 diaktifkan.

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

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

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

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

Memvalidasi file konfigurasi

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

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

Ganti kode berikut:

  • ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig untuk cluster admin Anda

  • USER_CLUSTER_CONFIG: jalur konfigurasi cluster pengguna Anda file

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

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

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

Jalankan gkectl prepare jika salah satu kondisi berikut terpenuhi:

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

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

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

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

Ganti kode berikut:

  • ADMIN_CLUSTER_KUBECONFIG: jalur kubeconfig cluster admin Anda file

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

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

4. Membuat cluster pengguna

Buat cluster pengguna:

gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG 

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

Menemukan file kubeconfig cluster pengguna

Perintah gkectl create cluster membuat file kubeconfig bernama USER_CLUSTER_NAME-kubeconfig dalam direktori saat ini. Anda akan membutuhkannya file {i>kubeconfig<i} untuk berinteraksi dengan cluster pengguna Anda.

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

kubectl config get-clusters --kubeconfig USER_CLUSTER_KUBECONFIG

Output akan menampilkan nama cluster. Contoh:

NAME
my-user-cluster

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

5. Memastikan cluster pengguna Anda sudah berjalan

Pastikan cluster pengguna Anda berjalan:

kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG

Ganti USER_CLUSTER_KUBECONFIG dengan jalur cluster pengguna Anda {i>kubeconfig<i}.

Output menunjukkan node cluster pengguna. Contoh:

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

Konsol

Mulai

  1. Di konsol Google Cloud, buka Create a Google Distributed Cloud cluster.

    Buka "Create a Google Distributed Cloud cluster

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

Dasar-dasar cluster

Masukkan informasi dasar tentang cluster.

  1. Masukkan Nama untuk cluster pengguna.

  2. Pada Admin cluster, pilih cluster admin dari daftar. Jika Anda tidak menentukan nama untuk cluster admin saat membuat namanya, nama akan dibuat dalam bentuk gke-admin-[HASH]. Jika Anda tidak mengenali nama cluster admin, jalankan perintah berikut di komputer admin:

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

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

  3. Di kolom GCP API Location, pilih region Google Cloud dari dalam daftar. Setelan ini menentukan wilayah tempat API dan layanan menjalankan:

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

    Setelan ini juga mengontrol region tempat hal berikut disimpan:

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

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

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

  5. Sebagai pembuat cluster, Anda diberi hak istimewa admin cluster . Atau, masukkan alamat email pengguna lain yang akan mengelola cluster di kolom Cluster admin user pada Otorisasi.

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

  6. Klik Berikutnya untuk membuka bagian Bidang kontrol.

Bidang Kontrol

Semua kolom di bagian Bidang kontrol ditetapkan dengan nilai default. Tinjau setelan default dan jika perlu, ubah sesuai kebutuhan.

  1. Di kolom Control-plane node vCPUs, masukkan jumlah vCPU (minimum 4) untuk setiap node bidang kontrol untuk cluster pengguna.

  2. Di kolom Control-plane node memory, masukkan ukuran memori dalam MiB (minimal 8192 dan harus kelipatan 4) pada setiap bidang kontrol untuk cluster pengguna.

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

  4. Pilih Pengubahan ukuran node otomatis (opsional). Mengubah ukuran berarti bahwa Resource memori dan vCPU yang ditetapkan ke node akan disesuaikan secara otomatis. Jika diaktifkan, node bidang kontrol untuk cluster pengguna akan diubah ukurannya sesuai dengan jumlah worker node di cluster pengguna. Jadi saat Anda menambahkan lebih banyak node pekerja ke cluster pengguna, node bidang kontrol bertambah besar.

  5. Atau, pilih Aktifkan bidang kontrol v2. Mengaktifkan Controlplane V2 berarti bidang kontrol untuk cluster pengguna berjalan pada satu atau beberapa node di cluster pengguna itu sendiri dan bukan di cluster admin (disebut sebagai kubeception).

    Saat Anda memilih Aktifkan bidang kontrol v2, node bidang kontrol IPs akan ditampilkan. Masukkan alamat IP untuk gateway, {i>subnet mask<i}, dan alamat IP untuk simpul bidang kontrol.

    Ketika Controlplane V2 diaktifkan, bidang vCPU dan memori berlaku untuk node bidang kontrol di cluster pengguna. Jumlah node ditentukan dengan jumlah alamat IP yang Anda masukkan. Ketika Pesawat Kontrol V2 tidak diaktifkan, vCPU, memori, dan jumlah kolom node bidang kontrol berlaku ke node di cluster admin. Pastikan Anda menyisihkan cukup alamat IP untuk cluster admin Anda.

  6. Klik Berikutnya untuk membuka bagian Jaringan.

Jaringan

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

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

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

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

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

    1. Masukkan alamat IP Gateway untuk cluster pengguna.

    2. Masukkan Subnet mask untuk node cluster pengguna.

    3. Di bagian Alamat IP, masukkan alamat IP. Anda juga bisa memilih nama host untuk node di cluster pengguna. Anda dapat memasukkan alamat IP v4 individu (seperti 192.0.2.1) atau CIDR blok alamat IPv4 (seperti 192.0.2.0/24).

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

      • Jika Anda memasukkan alamat IP individu, Anda dapat memasukkan nama host. Jika Anda tidak memasukkan nama host, Google Distributed Cloud akan menggunakan dari vSphere sebagai nama {i>host<i}.

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

  3. Di bagian CID dalam Layanan dan Pod, konsol menyediakan hal berikut rentang alamat IP untuk Pod dan Layanan Kubernetes:

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

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

  4. Jika memilih Static IP mode atau Enable control field v2, tentukan informasi berikut di bagian Konfigurasi host:

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

Load balancer

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

Pilih Jenis load balancer dari daftar.

Sepaket dengan MetalLB

Mengonfigurasi load balancing yang dipaketkan dengan MetalLB. Anda dapat menggunakan MetalLB untuk hanya jika cluster admin Anda menggunakan SeeSaw atau MetalLB. Ini memerlukan konfigurasi minimal. MetalLB berjalan langsung di node cluster dan tidak memerlukan VM tambahan. Untuk mengetahui informasi selengkapnya tentang manfaat penggunaan MetalLB dan perbandingannya dengan beban lainnya opsi balancing, lihat Paket load balancing dengan MetalLB.

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

    1. Masukkan nama untuk kumpulan alamat.

    2. Masukkan rentang alamat IP yang berisi VIP masuk di Notasi CIDR (mis. 192.0.2.0/26) atau notasi rentang (misalnya, 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 jenis LoadBalancer bukan dalam rentang alamat IP yang sama dengan VIP masuk, klik + Tambahkan Rentang Alamat IP dan masukkan rentang alamat yang lain.

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

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

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

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

    5. Klik Hindari alamat IP yang berisi bug jika ingin menggunakan pengontrol MetalLB untuk tidak menggunakan alamat dari kumpulan yang berakhiran .0 atau .255. Hal ini dapat menghindari masalah perangkat konsumen yang memiliki bug keliru menjatuhkan lalu lintas data ke alamat IP khusus tersebut.

    6. Jika sudah selesai, klik Selesai.

  2. Jika perlu, klik Tambahkan Kumpulan Alamat.

  3. Di bagian Virtual IPs, masukkan berikut ini:

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

    • VIP Ingress: Alamat IP yang akan dikonfigurasi di load balancer untuk proxy masuknya. 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 mengkonfigurasi F5 BIG-IP ADC sebelum mengintegrasikan dengan Google Distributed Cloud.

Nama pengguna dan {i>password<i} F5 diwarisi dari ke cluster admin.

  1. Di bagian Virtual IPs, masukkan berikut ini:

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

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

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

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

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

  5. Klik Lanjutkan.

Manual

Anda dapat menggunakan load balancer manual untuk ke cluster pengguna hanya jika cluster admin Anda menggunakan load balancer manual. Di Google Distributed Cloud, server Kubernetes API dan proxy masuk masing-masing diekspos oleh Kubernetes Jenis layanan LoadBalancer. Pilih nilai nodePort Anda sendiri di 30000 - 32767 untuk Layanan ini. Untuk proxy masuk, pilih Nilai nodePort untuk traffic HTTP dan HTTPS. Lihat Mengaktifkan mode load balancing manual untuk informasi selengkapnya.

  1. Di bagian Virtual IPs, masukkan berikut ini:

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

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

  2. Di kolom Control-plan node port, masukkan nilai nodePort untuk di Kubernetes API.

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

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

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

  6. Klik Lanjutkan.

Fitur

Bagian ini menampilkan fitur dan operasi yang diaktifkan pada .

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

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

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

    • Aktifkan grup anti-afinitas: VMware Distributed Resource Scheduler (DRS) aturan anti-afinitas otomatis dibuat untuk node cluster pengguna, menyebabkan mereka tersebar di setidaknya 3 {i>host<i} fisik di data Anda tengah. Pastikan lingkungan vSphere Anda memenuhi persyaratan.

  3. Klik Berikutnya untuk mengonfigurasi kumpulan node

Kumpulan node

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

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

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

    1. Klik + Add Kubernetes Labels. Masukkan Key dan Nilai untuk label. Ulangi jika perlu.
    2. Klik + Add Taint. Masukkan Kunci, Nilai, dan Efek untuk taint. Ulangi jika perlu.
  3. Klik Verify and Complete untuk membuat cluster pengguna. Dibutuhkan 15 menit atau lebih untuk membuat cluster pengguna. Konsol menampilkan status saat memverifikasi setelan dan membuat cluster dalam data Anda tengah.

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

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

gcloud CLI

Gunakan perintah berikut untuk membuat cluster pengguna:

gcloud container vmware clusters create

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

gcloud container vmware node-pools create

Sebagian besar flag untuk membuat cluster dan node pool sesuai dengan {i>field<i} pada file konfigurasi cluster pengguna. Untuk membantu Anda memulai, Anda dapat menguji perintah lengkap di contoh.

Mengumpulkan informasi

Kumpulkan beberapa informasi yang Anda perlukan untuk membuat cluster.

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

    gcloud container fleet memberships list \
        --project=FLEET_HOST_PROJECT_ID
    

    Ganti FLEET_HOST_PROJECT_ID dengan ID project tempat cluster admin 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 dijalankan. Admin dan klaster yang dibuat sebelum 1.28 ini dikelola oleh Armada global Menghubungkan layanan. Pada 1.28 dan yang lebih tinggi, Anda dapat menentukan global atau region Google Cloud saat Anda membuat cluster admin. Anda menentukan region di flag --admin-cluster-membership-location pada contoh yang mengikutinya.

  2. Dapatkan daftar versi yang tersedia:

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

    Ganti kode berikut:

    • ADMIN_CLUSTER_NAME: Nama cluster admin.

    • FLEET_HOST_PROJECT_ID: ID project yang cluster admin terdaftar.

    • ADMIN_CLUSTER_REGION: Cluster admin region keanggotaan fleet. Layanan ini bersifat global atau Google Cloud teritorial Anda. Menggunakan lokasi untuk cluster admin dari output dari gcloud container fleet memberships list.

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

      • Jika cluster admin terdaftar di GKE On-Prem API, menggunakan region yang sama dengan cluster admin. Untuk mengetahui admin di region cluster, 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 lainnya wilayah yang didukung. Jika Anda selanjutnya mendaftarkan cluster admin di GKE On-Prem API, menggunakan region yang sama dengan cluster pengguna.

    Output gcloud container vmware clusters query-version-config perintahnya serupa 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 menghasilkan penjelasan tentang versi yang bisa Anda gunakan untuk pembuatan atau upgrade cluster pengguna. Versi yang dapat Anda gunakan untuk membuat atau mengupgrade cluster pengguna dianotasi dengan isInstalled: true, yang berarti cluster admin memiliki komponen khusus versi yang diperlukan mengelola cluster pengguna versi tersebut. Jika Anda ingin menggunakan versi yang diinstal di cluster admin, lewati ke Examples untuk membuat cluster pengguna.

Instal versi yang lebih tinggi

Cluster admin dapat mengelola cluster pengguna pada berbagai versi. Output dari perintah query-version-config mencantumkan versi lain yang dapat Anda gunakan saat membuat cluster. Jika Anda ingin membuat cluster pengguna yang merupakan yang lebih tinggi daripada cluster admin, Anda harus mendownload komponen yang diperlukan oleh cluster admin untuk mengelola kelompok pengguna 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 di output perintah query-version-config.

Perintah mengunduh versi komponen yang Anda tentukan di --required-platform-version ke cluster admin, lalu men-deploy komponen-komponennya. Sekarang Anda dapat membuat cluster pengguna dengan .

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

Contoh

Contoh berikut menunjukkan cara membuat cluster pengguna dengan beban yang berbeda dengan Controlplane V2 yang aktif. Dengan Controlplane V2, bidang kontrol untuk cluster pengguna berjalan pada satu atau beberapa node di cluster pengguna itu sendiri. Rab sebaiknya aktifkan Controlplane V2, dan dalam versi 1.30 dan yang lebih tinggi, cluster pengguna baru diperlukan untuk mengaktifkan Controlplane V2. Untuk informasi opsi load balancing yang tersedia, lihat Ringkasan load balancer.

Sebagian besar contoh menggunakan nilai default untuk mengonfigurasi bidang kontrol node. Jika Anda ingin mengubah setelan default apa pun, sertakan flag yang dijelaskan di bagian Kontrol bidang flag. Jika perlu, Anda dapat ubah beberapa setelan vSphere.

Sebelum menjalankan perintah gcloud untuk membuat cluster, Anda dapat sertakan --validate-only untuk memvalidasi konfigurasi yang Anda tentukan di flag ke perintah gcloud. Setelah siap membuat cluster, menghapus penanda ini dan menjalankan perintahnya.

Jika Anda mendapatkan error setelah perintah gcloud container vmware clusters create telah berjalan selama sekitar satu menit atau lebih, periksa apakah cluster tersebut sebagian dibuat 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 di 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 kembali gcloud container vmware clusters create.

Setelah cluster berjalan, Anda harus menambahkan node pool sebelum men-deploy workload interaktif, seperti yang dijelaskan dalam Membuat node pool bagian.

LB Logam & DHCP

Contoh ini menunjukkan cara membuat cluster pengguna dengan paket MetalLB load balancer dan menggunakan server DHCP untuk mendapatkan alamat IP untuk worker node.

Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin menggunakan MetalLB. Opsi load balancing ini memerlukan sedikit konfigurasi Anda. MetalLB berjalan langsung di node cluster Anda dan tidak dan memerlukan VM tambahan. Untuk informasi selengkapnya tentang manfaat penggunaan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Paket load balancing dengan MetalLB.

Perintah contoh membuat cluster pengguna dengan karakteristik, yang dapat dimodifikasi sesuai kebutuhan untuk lingkungan Anda.

Tanda Deskripsi
--admin-users Memberi Anda dan pengguna lain hak administratif penuh di .
--enable-control-plane-v2 Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan dalam versi 1.30 dan yang lebih tinggi.
--control-plane-ip-block Satu alamat IP untuk node bidang kontrol. Untuk membuat cluster pengguna 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 di setidaknya satu kumpulan alamat, dan Anda dapat menentukan lebih banyak jika diperlukan. Sebagai praktis, contohnya berisi kumpulan alamat dengan nama "pool-vip-masuk" sebagai pengingat bahwa alamat IP untuk VIP masuk harus ada di salah satu kumpulan alamat. Anda yang menentukan CIDR untuk satu alamat IP dengan menambahkan /32 ke dengan Alamat IP tertentu
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 pengguna . Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:
    • berisi maksimal 40 karakter
    • hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (-)
    • diawali dengan karakter alfabet
    • diakhiri dengan karakter alfanumerik
  • FLEET_HOST_PROJECT_ID: ID project yang Anda tempat cluster akan dibuat. Proyek yang ditentukan juga digunakan sebagai project host fleet Anda. Project ini harus sama dengan project cluster admin terdaftar. Setelah dibuat, cluster pengguna akan otomatis terdaftar ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.
  • ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Di --admin-cluster-membership , Anda dapat menggunakan nama cluster yang sepenuhnya ditentukan, yang memiliki format berikut:
        projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME

    Atau, Anda dapat menetapkan --admin-cluster-membership ke nama cluster admin, seperti dalam contoh perintah. Jika Anda hanya menggunakan nama cluster admin, setel project ID cluster admin dengan --admin-cluster-membership-project dan lokasi dengan --admin-cluster-membership-location. Cluster admin lokasinya 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). Tentukan us-west1 atau lainnya wilayah yang didukung. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan wilayah tempat hal berikut disimpan:
    • Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
    • Data Cloud Logging dan Cloud Monitoring komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

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

  • VERSION: Versi Google Distributed Cloud untuk cluster pengguna.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika Anda tidak menyertakan flag --admin-users, sebagai pembuat cluster, secara default, Anda diberi hak istimewa admin cluster. Tapi jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda mengganti setelan default dan harus mencantumkan alamat email dan alamat email administrator lainnya. Misalnya, untuk menambahkan dua administrator:
        --admin-users=sara@example.com \
        --admin-users=amal@example.com

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

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

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

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

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

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

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

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

    Perhatikan hal 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 Anda miliki dipilih untuk dikonfigurasi pada load balancer untuk server Kubernetes API dari cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

  • INGRESS_VIP: Alamat IP yang telah Anda pilih lakukan konfigurasi di load balancer untuk proxy masuknya.

    Contoh: --ingress-vip=10.251.134.80

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

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

LB Logam & IP statis

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

Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin menggunakan MetalLB. Opsi load balancing ini memerlukan sedikit konfigurasi Anda. MetalLB berjalan langsung di node cluster Anda dan tidak dan memerlukan VM tambahan. Untuk informasi selengkapnya tentang manfaat penggunaan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Paket load balancing dengan MetalLB.

Perintah contoh membuat cluster pengguna dengan karakteristik, yang dapat dimodifikasi sesuai kebutuhan untuk lingkungan Anda.

Tanda Deskripsi
--admin-users Memberi Anda dan pengguna lain hak administratif penuh di .
--enable-control-plane-v2 Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan dalam versi 1.30 dan yang lebih tinggi.
--control-plane-ip-block Satu alamat IP untuk node bidang kontrol. Untuk membuat cluster pengguna 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 di setidaknya satu kumpulan alamat, dan Anda dapat menentukan lebih banyak jika diperlukan. Sebagai praktis, contohnya berisi kumpulan alamat dengan nama "pool-vip-masuk" sebagai pengingat bahwa alamat IP untuk VIP masuk harus ada di salah satu kumpulan alamat. Anda yang menentukan CIDR untuk satu alamat IP dengan menambahkan /32 ke dengan Alamat IP tertentu
--static-ip-config-ip-blocks Empat alamat IP untuk worker node di cluster. Hal ini mencakup alamat untuk node tambahan yang dapat digunakan selama proses upgrade dan update. Anda dapat menentukan lebih banyak alamat IP jika diperlukan. Nama host adalah 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 pengguna . Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:
    • berisi maksimal 40 karakter
    • hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (-)
    • diawali dengan karakter alfabet
    • diakhiri dengan karakter alfanumerik
  • FLEET_HOST_PROJECT_ID: ID project yang Anda tempat cluster akan dibuat. Proyek yang ditentukan juga digunakan sebagai project host fleet Anda. Project ini harus sama dengan project cluster admin terdaftar. Setelah dibuat, cluster pengguna akan otomatis terdaftar ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.
  • ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Di --admin-cluster-membership , Anda dapat menggunakan nama cluster yang sepenuhnya ditentukan, yang memiliki format berikut:
        projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME

    Atau, Anda dapat menetapkan --admin-cluster-membership ke nama cluster admin, seperti dalam contoh perintah. Jika Anda hanya menggunakan nama cluster admin, setel project ID cluster admin dengan --admin-cluster-membership-project dan lokasi dengan --admin-cluster-membership-location. Cluster admin lokasinya 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). Tentukan us-west1 atau lainnya wilayah yang didukung. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan wilayah tempat hal berikut disimpan:
    • Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
    • Data Cloud Logging dan Cloud Monitoring komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

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

  • VERSION: Versi Google Distributed Cloud untuk cluster pengguna.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika Anda tidak menyertakan flag --admin-users, sebagai pembuat cluster, secara default, Anda diberi hak istimewa admin cluster. Tapi jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda mengganti setelan default dan harus mencantumkan alamat email dan alamat email administrator lainnya. Misalnya, untuk menambahkan dua administrator:
        --admin-users=sara@example.com \
        --admin-users=amal@example.com

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

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

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

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

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

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

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

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

    Perhatikan hal 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 Anda miliki dipilih untuk dikonfigurasi pada load balancer untuk server Kubernetes API dari cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

  • INGRESS_VIP: Alamat IP yang telah Anda pilih lakukan konfigurasi di load balancer untuk proxy masuknya.

    Contoh: --ingress-vip=10.251.134.80

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

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

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

    Perhatikan hal 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 individu 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. Ketika Anda tidak menentukan nama {i>host<i}, Google Distributed Cloud 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 DNS yang dipisahkan koma untuk VM.
  • DNS_SEARCH_DOMAIN: Daftar penelusuran DNS yang dipisahkan koma domain yang akan digunakan oleh {i>host<i}. Domain berikut digunakan sebagai bagian dari daftar penelusuran domain.

    Contoh:

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

LB manual & IP statis

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

Anda dapat menggunakan load balancer manual untuk cluster pengguna hanya jika admin menggunakan load balancer manual. Di Google Distributed Cloud, Server Kubernetes API, proxy masuk, dan layanan add-on untuk log agregasi yang masing-masing diekspos oleh Service Kubernetes berjenis LoadBalancer. Pilih nilai nodePort Anda sendiri di 30000 - 32767 untuk Layanan ini. Untuk proxy masuk, pilih nilai nodePort untuk traffic HTTP dan HTTPS. Lihat Mengaktifkan mode load balancing manual untuk informasi selengkapnya.

Perintah contoh membuat cluster pengguna dengan karakteristik, yang dapat dimodifikasi sesuai kebutuhan untuk lingkungan Anda.

Tanda Deskripsi
--admin-users Memberi Anda dan pengguna lain hak administratif penuh di .
--enable-control-plane-v2 Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan dalam versi 1.30 dan yang lebih tinggi.
--control-plane-ip-block Satu alamat IP untuk node bidang kontrol. Untuk membuat cluster pengguna ketersediaan tinggi (HA), tentukan tiga alamat IP dan tambahkan flag --replicas=3.
--static-ip-config-ip-blocks Empat alamat IP untuk worker node di cluster. Hal ini mencakup alamat untuk node tambahan yang dapat digunakan selama proses upgrade dan update. Anda dapat menentukan lebih banyak alamat IP jika diperlukan. Nama host adalah 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 pengguna . Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:
    • berisi maksimal 40 karakter
    • hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (-)
    • diawali dengan karakter alfabet
    • diakhiri dengan karakter alfanumerik
  • FLEET_HOST_PROJECT_ID: ID project yang Anda tempat cluster akan dibuat. Proyek yang ditentukan juga digunakan sebagai project host fleet Anda. Project ini harus sama dengan project cluster admin terdaftar. Setelah dibuat, cluster pengguna akan otomatis terdaftar ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.
  • ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Di --admin-cluster-membership , Anda dapat menggunakan nama cluster yang sepenuhnya ditentukan, yang memiliki format berikut:
        projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME

    Atau, Anda dapat menetapkan --admin-cluster-membership ke nama cluster admin, seperti dalam contoh perintah. Jika Anda hanya menggunakan nama cluster admin, setel project ID cluster admin dengan --admin-cluster-membership-project dan lokasi dengan --admin-cluster-membership-location. Cluster admin lokasinya 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). Tentukan us-west1 atau lainnya wilayah yang didukung. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan wilayah tempat hal berikut disimpan:
    • Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
    • Data Cloud Logging dan Cloud Monitoring komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

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

  • VERSION: Versi Google Distributed Cloud untuk cluster pengguna.
  • YOUR_EMAIL_ADDRESS dan ANOTHER_EMAIL_ADDRESS: Jika Anda tidak menyertakan flag --admin-users, sebagai pembuat cluster, secara default, Anda diberi hak istimewa admin cluster. Tapi jika Anda menyertakan --admin-users untuk menetapkan pengguna lain sebagai administrator, Anda mengganti setelan default dan harus mencantumkan alamat email dan alamat email administrator lainnya. Misalnya, untuk menambahkan dua administrator:
        --admin-users=sara@example.com \
        --admin-users=amal@example.com

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

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

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

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

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

  • CONTROL_PLANE_VIP: Alamat IP yang Anda miliki dipilih untuk dikonfigurasi pada load balancer untuk server Kubernetes API dari cluster pengguna.

    Contoh: --control-plane-vip=203.0.113.3

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

    Contoh: --ingress-vip=203.0.113.4

  • INGRESS_HTTP_NODE_PORT: Nilai nodePort untuk Traffic HTTP ke proxy masuk (seperti 30243).

  • INGRESS_HTTPS_NODE_PORT: Nilai nodePort untuk Traffic HTTPS ke proxy masuk (seperti 30879).

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

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

    Perhatikan hal 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 individu 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. Ketika Anda tidak menentukan nama {i>host<i}, Google Distributed Cloud 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 DNS yang dipisahkan koma untuk VM.
  • DNS_SEARCH_DOMAIN: Daftar penelusuran DNS yang dipisahkan koma domain yang akan digunakan oleh {i>host<i}. Domain berikut digunakan sebagai bagian dari daftar penelusuran domain.

    Contoh:

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

Tanda bidang kontrol

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

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

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

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

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

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

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

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

    • --ntp-servers=NTP_SERVER_1,...: Tanda yang dipisahkan koma daftar alamat IP server waktu yang akan digunakan oleh VM.

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

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

      Nilai ini memiliki segmen yang 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 antara alamat IP dan nama host.

        Dalam daftar alamat IP:

      • Anda dapat menentukan alamat IP individu atau CIDR alamat IP internalnya.

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

      • Untuk alamat IP individual, Anda dapat menentukan nama host setelah alamat IP. Pisahkan alamat IP dan nama host dengan spasi.

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

        Contoh:

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

      Contoh:

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

    Untuk mengetahui daftar lengkap tanda dan deskripsinya, lihat Referensi gcloud CLI.

    Tanda vSphere

    Tentukan flag opsional berikut jika diperlukan:

  • --disable-aag-config: Jika Anda tidak menyertakan flag ini, VMware Aturan anti-afinitas Distributed Resource Scheduler (DRS) dibuat secara otomatis untuk node cluster pengguna, sehingga tersebar di minimal 3 {i>host<i} fisik di pusat data Anda. Merek memastikan bahwa lingkungan vSphere Anda memenuhi persyaratan. Jika cluster Anda tidak memenuhi persyaratan, sertakan tanda ini.

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

    Untuk mengetahui daftar lengkap tanda dan deskripsinya, lihat Referensi gcloud CLI

    Memantau progres pembuatan cluster

    Output dari perintah cluster create 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 informasi selengkapnya, lihat gcloud container vmware operations.

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

    Membuat node pool

    Setelah cluster dibuat, Anda perlu membuat minimal satu kumpulan node sebelum untuk 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 kolam renang. Namanya harus:

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

  • FLEET_HOST_PROJECT_ID: ID project yang cluster terdaftar.

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

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

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

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

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

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

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

    Untuk informasi tentang tanda opsional, lihat Menambahkan kumpulan node dan Referensi gcloud CLI.

Contoh perintah gcloud

LB Logam & 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.29.400-gke.81 \
    --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

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

LB Logam & IP statis

gcloud container vmware clusters create user-cluster-3 \
    --project=example-project-12345 \
    --location=europe-west1 \
    --admin-cluster-membership=projects/example-project-12345/locations/global/memberships/admin-cluster-1 \
    --version=1.29.400-gke.81 \
    --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.29.400-gke.81 \
    --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. Mendapatkan nama dan lokasi keanggotaan fleet cluster admin Anda:

    gcloud container fleet memberships list \
        --project=FLEET_HOST_PROJECT_ID
    

    Ganti FLEET_HOST_PROJECT_ID dengan ID project tempat cluster admin 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 dijalankan. Admin dan klaster yang dibuat sebelum 1.28 ini dikelola oleh Armada global Menghubungkan layanan. Pada versi 1.28 dan yang lebih baru, Anda dapat menentukan global atau region Google Cloud saat Anda 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 yang cluster admin terdaftar.

    • ADMIN_CLUSTER_REGION: Cluster admin region keanggotaan fleet. Layanan ini bersifat global atau Google Cloud teritorial Anda. Menggunakan lokasi untuk cluster admin dari output dari gcloud container fleet memberships list.

    • REGION: Region Google Cloud yang Anda akan digunakan saat Anda membuat cluster. Ini adalah region tempat GKE On-Prem API serta menjalankan layanan Fleet dan Connect. Menentukan us-west1 atau lainnya wilayah yang didukung.

    Output perintah ini akan mirip dengan berikut ini:

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

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

Contoh

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

Untuk informasi selengkapnya dan contoh lainnya, lihat Dokumentasi referensi google_gkeonprem_vmware_cluster.

Tetapkan variabel di terraform.tfvars

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

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

    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 yang Anda inginkan untuk membuat cluster inc. Project yang ditentukan juga digunakan sebagai project host fleet. Ini harus berupa project yang sama dengan yang didaftarkan cluster admin. Sesudah dibuat, cluster pengguna akan secara otomatis didaftarkan ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.

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

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

      1. Buka main.tf di editor teks.
      2. Telusuri admin_cluster_membership, yang terlihat seperti berikut ini:
      admin_cluster_membership = "projects/${var.project_id}/locations/global/memberships/${var.admin_cluster_name}"
      1. Ubah global ke region yang digunakan cluster admin dan simpan file.
    • on_prem_version: Versi Google Distributed Cloud untuk pengguna Anda . Biasanya, Anda menetapkan versi yang sama dengan cluster admin. Untuk menentukan versi yang lebih baru, Instal versi yang lebih baru dari versi cluster admin. Jika Anda tidak mengetahui versi cluster admin, jalankan gcloud container vmware clusters query-version-config, yaitu langkah pertama dalam Instal versi yang lebih baru dari versi cluster admin.

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

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

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

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

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

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

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

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

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

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

      Ganti contoh alamat IP dengan nilai Anda, lalu tambahkan jika diperlukan.

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

Opsional: Konfigurasi setelan cluster di main.tf

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

cp main.tf main.tf.bak

Mode penentuan alamat IP node pekerja

Secara {i>default<i}, main.tf mengonfigurasi cluster untuk menggunakan server DHCP yang Anda sediakan untuk menetapkan alamat IP ke worker node cluster. DHCP adalah dikonfigurasi dengan menyertakan peta dhcp_config dalam network_config diblokir. Jika Anda ingin menyediakan alamat IP statis untuk worker node Anda, pastikan perubahan berikut pada main.tf:

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

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

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

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

    • dns_servers: Daftar alamat IP server DNS untuk VM.

    • ntp_servers: Daftar alamat IP server waktu untuk VM untuk digunakan.

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

Mengonfigurasi Controlplane V2

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

  1. Tambahkan baris berikut setelah baris dengan admin_cluster_membership:

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

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

Membuat cluster dan satu kumpulan node

  1. Lakukan inisialisasi dan buat paket Terraform:

    terraform init
    

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

  2. Tinjau konfigurasi dan buat perubahan jika diperlukan:

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

    terraform apply
    

    Pembuatan cluster pengguna memerlukan waktu sekitar 15 menit, dan selama 15 menit lagi untuk membuat kumpulan node. Anda dapat melihat cluster di Konsol Google Cloud di Cluster GKE kami.

Pemecahan masalah

Lihat Memecahkan masalah pembuatan dan upgrade cluster.

Langkah selanjutnya