Di Google Distributed Cloud, workload Anda berjalan di satu atau beberapa cluster pengguna. Dokumen ini menunjukkan cara membuat cluster pengguna. Jika Anda ingin menggunakan domain topologi, lihat Membuat cluster pengguna untuk digunakan dengan domain topologi.
Halaman ini ditujukan untuk Admin, Arsitek, dan Operator yang menyiapkan, memantau, dan mengelola infrastruktur teknologi. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud , lihat Peran dan tugas pengguna GKE umum.
Di versi 1.33 dan yang lebih baru, semua cluster baru dibuat sebagai cluster lanjutan. Pastikan untuk meninjau Perbedaan saat menjalankan cluster lanjutan.
Ada beberapa alat yang dapat Anda gunakan untuk membuat cluster pengguna:
gkectl- KonsolGoogle Cloud
Google Cloud CLI- Terraform
Tiga dari alat ini (konsol, gcloud CLI, dan Terraform) adalah klien dari GKE On-Prem API.
Untuk panduan tentang alat yang mungkin ingin Anda gunakan, lihat Memilih alat untuk mengelola siklus proses cluster.
Sebelum memulai
Jika Anda berencana menggunakan
gkectluntuk membuat cluster pengguna, pastikan Anda telah menyiapkan dan dapat login ke workstation admin seperti yang dijelaskan dalam Membuat workstation admin.Pastikan workstation admin Anda memiliki versi
gkectlyang diperlukan. Biasanya, Anda menggunakan versigkectlyang sama dengan versi yang akan digunakan saat membuat cluster. Anda menentukan versi cluster di kolomgkeOnPremVersiondalam file konfigurasi cluster. Aturan versi berikut diterapkan selama pembuatan cluster:Versi minor
gkectltidak boleh lebih rendah dari versi minor untuk cluster. Misalnya, membuat cluster 1.30 menggunakangkectlversi 1.29 tidak diizinkan. Versi patch tidak penting. Misalnya, Anda dapat menggunakangkectlversi 1.29.0-gke.1456 untuk membuat cluster dengan versi patch yang lebih tinggi, seperti 1.29.1000-gke.94.Versi minor
gkectltidak boleh lebih dari dua versi minor lebih tinggi dari versi cluster. Misalnya, jika Anda membuat cluster 1.28, versigkectldapat berupa 1.29 atau 1.30. Namun, Anda tidak dapat menggunakangkectlversi 1.31 karena versi tersebut tiga versi minor lebih tinggi daripada versi cluster.
Jika diperlukan, lihat Mendownload
gkectluntuk mendapatkan versigkectlyang didukung.Jika Anda belum melakukannya, siapkan resource Google Cloud seperti yang dijelaskan dalam dokumen berikut:
Saat menyiapkan project host fleet, perhatikan pilihan alat Anda, karena jika Anda telah memilih salah satu klien GKE On-Prem API, ada API tambahan yang harus Anda aktifkan. Untuk mengetahui daftar API, lihat Mengaktifkan API di project host fleet 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. Saat membuat cluster pengguna, Anda biasanya menginstal versi yang cocok dengan versi cluster admin. Jika Anda ingin menginstal versi lain di cluster pengguna, lihat Aturan versi.
Jika Anda berencana menginstal versi 1.30 atau versi yang lebih tinggi, Controlplane V2 diperlukan. Meskipun Anda menginstal versi 1.29 atau yang lebih rendah, sebaiknya aktifkan Controlplane V2. Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna akan berjalan di satu atau beberapa node dalam cluster pengguna itu sendiri. Alternatifnya adalah membuat cluster pengguna yang menggunakan kubeception. Dalam kasus kubeception, bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node dalam cluster admin.
Tinjau dokumen perencanaan alamat IP, dan pastikan Anda memiliki alamat IP yang cukup.
Tinjau ringkasan load balancing dan pertimbangkan kembali keputusan Anda tentang jenis load balancer yang ingin Anda gunakan. Anda dapat menggunakan load balancer MetalLB yang dipaketkan, atau mengonfigurasi load balancer pilihan Anda secara manual. Untuk load balancing manual, Anda harus menyiapkan load balancer sebelum membuat cluster pengguna.
Pikirkan berapa banyak node pool yang Anda butuhkan dan sistem operasi yang ingin Anda jalankan di setiap pool.
Pertimbangkan apakah Anda ingin menggunakan cluster vSphere terpisah untuk cluster admin dan cluster pengguna, dan apakah Anda ingin menggunakan pusat data terpisah. Pertimbangkan juga apakah Anda ingin menggunakan instance terpisah dari vCenter Server.
Di versi 1.29 dan yang lebih tinggi, pemeriksaan preflight sisi server diaktifkan secara default. Pemeriksaan preflight sisi server memerlukan aturan firewall tambahan. Di Aturan firewall untuk cluster admin, telusuri "Pemeriksaan preflight" dan pastikan semua aturan firewall yang diperlukan telah dikonfigurasi.
Dengan pemeriksaan preflight sisi server, saat Anda membuat cluster pengguna menggunakan
gkectl, pemeriksaan preflight akan dijalankan di cluster admin, bukan secara lokal di workstation admin. Pemeriksaan preflight sisi server juga dijalankan jika Anda menggunakan konsol Google Cloud , Google Cloud CLI, atau Terraform untuk membuat cluster pengguna.
Membuat cluster pengguna dengan alat pilihan Anda
Bagian ini menyediakan langkah-langkah untuk membuat cluster pengguna menggunakan gkectl, konsol, gcloud CLI, dan Terraform.
gkectl
Ringkasan prosedur
Berikut adalah langkah-langkah utama yang diperlukan dalam menggunakan gkectl untuk membuat cluster pengguna:
- Mengisi file konfigurasi Anda
- Tentukan detail untuk cluster baru Anda dengan melengkapi file konfigurasi cluster pengguna, file konfigurasi kredensial, dan mungkin file blok IP.
- (Opsional) Impor image OS ke vSphere, dan kirim image container ke registry pribadi jika ada.
- Jalankan
gkectl prepare.
- Membuat cluster pengguna
- Jalankan
gkectl create clusteruntuk membuat cluster seperti yang ditentukan dalam file konfigurasi Anda.
- Memastikan cluster pengguna Anda berjalan
- Gunakan
kubectluntuk melihat node cluster Anda.
Di akhir prosedur ini, Anda akan memiliki cluster pengguna yang berjalan, tempat Anda dapat men-deploy workload.
Jika Anda menggunakan Kontrol Layanan VPC, Anda mungkin melihat error saat menjalankan beberapa perintah gkectl, seperti "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services". Untuk menghindari error ini, tambahkan
parameter --skip-validation-gcp ke perintah Anda.
Mengisi file konfigurasi Anda
Jika Anda menggunakan gkeadm untuk membuat workstation admin, gkeadm akan membuat
template untuk file konfigurasi cluster pengguna bernama user-cluster.yaml.
Selain itu, gkeadm telah mengisi beberapa kolom untuk Anda.
Jika tidak menggunakan gkeadm untuk membuat workstation admin, Anda dapat menggunakan gkectl untuk membuat template file konfigurasi cluster pengguna.
Untuk membuat template file konfigurasi cluster pengguna:
gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION
Ganti kode berikut:
OUTPUT_FILENAME: jalur pilihan Anda untuk template yang dihasilkan. Jika Anda menghilangkan flag ini, gkectl akan memberi nama file
user-cluster.yaml dan menempatkannya di direktori saat ini.
VERSION: nomor versi yang diinginkan. Contoh: gkectl create-config cluster --gke-on-prem-version=1.36.200-gke.118.
Pelajari file konfigurasi dengan memindai dokumen file konfigurasi cluster pengguna. Sebaiknya buka dokumen ini di tab atau jendela terpisah, karena Anda akan merujuknya saat menyelesaikan langkah-langkah berikut.
name
Tetapkan kolom name ke nama pilihan Anda untuk cluster pengguna.
gkeOnPremVersion
Kolom ini sudah diisi untuk Anda. Ini menentukan versi
Google Distributed Cloud. Misalnya, 1.36.200-gke.118.
enableAdvancedCluster
Di versi 1.31, jika Anda ingin mengaktifkan fitur cluster lanjutan, tetapkan
enableAdvancedCluster
ke true. Kolom ini harus ditetapkan ke true jika cluster admin telah
mengaktifkan cluster lanjutan.
Perhatikan perbedaan berikut antara versi:
Pada versi 1.31, fitur cluster lanjutan masih dalam pratinjau:
Anda dapat mengaktifkan cluster lanjutan pada waktu pembuatan cluster hanya untuk cluster 1.31 baru.
Setelah cluster lanjutan diaktifkan, Anda tidak akan dapat mengupgrade cluster ke 1.32. Hanya aktifkan cluster lanjutan di lingkungan pengujian.
Di versi 1.32, fitur cluster lanjutan berstatus GA.
Secara default, cluster pengguna dibuat sebagai cluster lanjutan. Anda harus menetapkan
enableAdvancedClusterkefalsesecara eksplisit jika ingin membuat cluster non-lanjutan.Untuk cluster yang mengaktifkan fitur cluster lanjutan, upgrade cluster didukung.
Di versi 1.33 dan yang lebih baru, semua cluster dibuat sebagai cluster lanjutan. Jika Anda menetapkan
enableAdvancedClusterkefalse, pembuatan cluster akan gagal.
enableControlplaneV2
Untuk membuat cluster pengguna yang mengaktifkan Controlplane V2, tetapkan
enableControlplaneV2
ke true.
Jika Anda mengaktifkan cluster lanjutan,
maka Anda harus menetapkan enableControlplaneV2 ke true.
Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna akan berjalan di node dalam cluster pengguna itu sendiri. Sebaiknya Anda mengaktifkan Controlplane V2.
kubeception
Jika Anda menetapkan kolom ini ke false, cluster akan menggunakan
kubeception.
Dengan kubeception, bidang kontrol untuk cluster pengguna berjalan pada node di cluster admin.
Untuk cluster kubeception:
Tetapkan
enableControlplaneV2kefalse.Jangan isi bagian
controlPlaneIPBlock.Tentukan alamat IP untuk node bidang kontrol cluster pengguna di file blok IP cluster admin.
enableDataplaneV2
Tetapkan
enableDataplaneV2
ke true.
vCenter
Nilai yang Anda tetapkan di bagian vCenter pada
file konfigurasi cluster admin
bersifat global. Artinya, kebijakan tersebut berlaku untuk cluster admin Anda dan cluster pengguna terkait.
Untuk setiap cluster pengguna yang Anda buat, Anda memiliki opsi untuk mengganti beberapa nilai vCenter global.
Untuk mengganti nilai vCenter global, isi kolom yang relevan di bagian vCenter pada file konfigurasi cluster pengguna.
Secara khusus, Anda mungkin ingin menggunakan cluster vSphere terpisah untuk cluster admin dan cluster pengguna, dan Anda mungkin ingin menggunakan pusat data terpisah untuk cluster admin dan cluster pengguna.
Menggunakan satu pusat data dan satu cluster vSphere
Opsi defaultnya adalah menggunakan satu pusat data dan satu cluster vSphere untuk cluster admin dan cluster pengguna. Untuk opsi ini, jangan tetapkan nilai vCenter apa pun dalam file konfigurasi cluster pengguna. Nilai vCenter akan diwarisi dari cluster admin.
Menggunakan cluster vSphere terpisah
Jika Anda ingin membuat cluster pengguna yang berada di cluster vSphere-nya sendiri, tentukan nilai untuk vCenter.cluster dalam file konfigurasi cluster pengguna.
Jika cluster admin dan cluster pengguna berada di cluster vSphere yang terpisah, cluster tersebut dapat berada di pusat data yang sama atau pusat data yang berbeda.
Menggunakan pusat data vSphere terpisah
Cluster pengguna dan cluster admin dapat berada di pusat data yang berbeda. Dalam hal ini, keduanya juga berada di cluster vSphere yang terpisah.
Jika Anda menentukan vCenter.datacenter dalam file konfigurasi cluster pengguna, Anda juga harus menentukan:
vCenter.networkNamevCenter.datastoreatauvCenter.storagePolicyNamevCenter.clusteratauvCenter.resourcePool
Menggunakan akun vCenter terpisah
Cluster pengguna dapat menggunakan akun vCenter yang berbeda, dengan vCenter.credentials yang berbeda, dari cluster admin. Akun vCenter untuk cluster admin memerlukan akses ke pusat data cluster admin, sedangkan akun vCenter untuk cluster pengguna hanya memerlukan akses ke pusat data cluster pengguna.
Menggunakan instance vCenter Server yang terpisah
Dalam situasi tertentu, sebaiknya buat cluster pengguna yang menggunakan instance vCenter Server-nya sendiri. Artinya, cluster admin dan cluster pengguna terkait menggunakan instance vCenter Server yang berbeda.
Misalnya, di lokasi edge, Anda mungkin ingin memiliki mesin fisik yang menjalankan vCenter Server dan satu atau beberapa mesin fisik yang menjalankan ESXi. Kemudian, Anda dapat menggunakan instance lokal vCenter Server untuk membuat hierarki objek vSphere, termasuk pusat data, cluster, kumpulan resource, datastore, dan folder.
Isi seluruh bagian
vCenter
pada file konfigurasi cluster pengguna Anda. Secara khusus, tentukan nilai
untuk vCenter.address yang berbeda dari alamat vCenter Server yang Anda
tentukan dalam file konfigurasi cluster admin. Contoh:
vCenter:
address: "vc-edge.example"
datacenter: "vc-edge"
cluster: "vc-edge-workloads"
resourcePool: "vc-edge-pool
datastore: "vc-edge-datastore
caCertPath: "/usr/local/google/home/me/certs/edge-cacert.pem"
credentials:
fileRef:
path: "credential.yaml"
entry: "vCenter-edge"
folder: "edge-vm-folder"
Isi juga kolom
network.vCenter.networkName.
network
Tentukan cara Anda ingin worker node mendapatkan alamat IP-nya. Opsinya adalah:
Dari server DHCP yang Anda siapkan sebelumnya. Tetapkan
network.ipMode.typeke"dhcp".Dari daftar alamat IP statis yang Anda berikan. Tetapkan
network.ipMode.typeke"static", dan buat file blok IP yang menyediakan alamat IP statis. Untuk contoh file blok IP, lihat Contoh file konfigurasi yang telah diisi.
Jika Anda telah memutuskan untuk menggunakan alamat IP statis untuk worker node, isi kolom network.ipMode.ipBlockFilePath.
Node bidang kontrol untuk cluster pengguna Anda harus mendapatkan alamat IP-nya dari daftar alamat statis yang Anda berikan. Hal ini berlaku meskipun worker node Anda mendapatkan alamatnya dari server DHCP. Untuk menentukan alamat IP statis bagi
node bidang kontrol, isi bagian
network.controlPlaneIPBlock. Jika Anda menginginkan cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP. Jika tidak, tentukan satu alamat IP.
Tentukan server DNS dan server NTP dengan mengisi bagian hostConfig. Server DNS dan server NTP ini ditujukan untuk node bidang kontrol. Jika Anda menggunakan alamat IP statis untuk worker node, server DNS dan server NTP ini juga ditujukan untuk worker node.
network.podCIDR dan network.serviceCIDR memiliki nilai yang telah diisi sebelumnya yang dapat Anda biarkan tidak berubah, kecuali jika nilai tersebut bertentangan dengan alamat yang sudah digunakan di jaringan Anda. Kubernetes menggunakan rentang ini untuk menetapkan alamat IP ke Pod dan Service di cluster Anda.
Terlepas dari apakah Anda mengandalkan server DHCP atau menentukan daftar alamat IP statis, Anda harus memiliki alamat IP yang cukup untuk cluster pengguna. Untuk penjelasan tentang jumlah alamat IP yang Anda perlukan, lihat Merencanakan alamat IP Anda.
loadBalancer
Siapkan VIP untuk server Kubernetes API cluster pengguna Anda. Siapkan VIP lain untuk layanan ingress cluster pengguna Anda. Berikan VIP Anda sebagai
nilai untuk
loadBalancer.vips.controlPlaneVIP
dan
loadBalancer.vips.ingressVIP.
Tentukan jenis load balancing yang ingin Anda gunakan. Opsinya adalah:
Load balancing paket MetalLB. Tetapkan
loadBalancer.kindke"MetalLB". Isi juga bagianloadBalancer.metalLB.addressPools, dan tetapkanenableLoadBalancerketrueuntuk setidaknya salah satu node pool Anda. Untuk mengetahui informasi selengkapnya, lihat Load balancing yang dipaketkan dengan MetalLB.Load balancing manual. Tetapkan
loadBalancer.kindke"ManualLB", dan isi bagianmanualLB. Untuk mengetahui informasi selengkapnya, lihat Load balancing manual.
Untuk mengetahui informasi selengkapnya tentang opsi load balancing, lihat Ringkasan load balancing.
advancedNetworking
Jika Anda berencana membuat
gateway NAT egress, tetapkan
advancedNetworking
ke true.
multipleNetworkInterfaces
Tentukan apakah Anda ingin mengonfigurasi beberapa antarmuka jaringan untuk Pod, dan tetapkan multipleNetworkInterfaces dengan tepat.
storage
Jika Anda ingin menonaktifkan deployment komponen vSphere CSI, tetapkan
storage.vSphereCSIDisabled
ke true.
masterNode
Di bagian
masterNode, Anda dapat menentukan jumlah node bidang kontrol yang diinginkan untuk cluster
pengguna: tentukan 3 untuk cluster dengan ketersediaan tinggi (HA) atau 1 untuk cluster
non-HA. Anda juga dapat menentukan datastore untuk node bidang kontrol dan apakah Anda ingin mengaktifkan pengubahan ukuran otomatis untuk node bidang kontrol.
Jika kolom
enableAdvancedCluster
adalah true, Anda harus menetapkan kolom replicas ke 3. Hanya cluster pengguna dengan ketersediaan tinggi (HA) yang didukung di cluster lanjutan.
Ingat bahwa Anda telah menentukan alamat IP untuk node bidang kontrol di bagian
network.controlPlaneIPBlock.
nodePools
Node pool adalah sekelompok node dalam cluster yang semuanya memiliki konfigurasi yang sama. Misalnya, node di satu pool dapat menjalankan Windows dan node di pool lain dapat menjalankan Linux.
Anda harus menentukan setidaknya satu node pool dengan mengisi bagian nodePools.
Jika Anda mengaktifkan cluster lanjutan, tetapkan nodePools[i].osImageType ke
ubuntu_cgv2.
Untuk mengetahui informasi selengkapnya, lihat Node pool dan Membuat dan mengelola node pool.
antiAffinityGroups
Tetapkan
antiAffinityGroups.enabled
ke true atau false.
Kolom ini menentukan apakah Google Distributed Cloud membuat aturan anti-afinitas Distributed Resource Scheduler (DRS) untuk worker node Anda, sehingga worker node tersebut tersebar di setidaknya tiga host fisik di pusat data Anda.
stackdriver
Jika Anda ingin mengaktifkan
Cloud Logging dan Cloud Monitoring
untuk cluster, isi bagian
stackdriver.
Bagian ini wajib diisi secara default. Artinya, jika Anda tidak mengisi bagian ini,
Anda harus menyertakan flag --skip-validation-stackdriver saat menjalankan
gkectl create cluster.
Perhatikan persyaratan berikut untuk cluster baru:
ID di
stackdriver.projectIDharus sama dengan ID digkeConnect.projectIDdancloudAuditLogging.projectID.Region Google Cloud yang ditetapkan di
stackdriver.clusterLocationharus sama dengan region yang ditetapkan dicloudAuditLogging.clusterLocationdangkeConnect.location. Selain itu, jikagkeOnPremAPI.enabledadalahtrue, region yang sama harus ditetapkan digkeOnPremAPI.location.
Jika project ID dan region tidak sama, pembuatan cluster akan gagal.
gkeConnect
Cluster pengguna Anda harus terdaftar ke Google Cloud fleet.
Isi bagian
gkeConnect
untuk menentukan
project host fleet
dan akun layanan terkait. ID di gkeConnect.projectID harus sama dengan ID yang ditetapkan di stackdriver.projectID dan cloudAuditLogging.projectID. Jika project ID tidak sama, pembuatan cluster akan gagal.
Di versi 1.28 dan yang lebih baru, Anda dapat secara opsional menentukan region tempat layanan Fleet dan Connect berjalan di gkeConnect.location. Jika Anda tidak menyertakan kolom ini, cluster akan menggunakan instance global layanan ini.
Jika Anda menyertakan gkeConnect.location dalam file konfigurasi, region
yang Anda tentukan harus sama dengan region yang dikonfigurasi di
cloudAuditLogging.clusterLocation, stackdriver.clusterLocation, dan
gkeOnPremAPI.location. Jika region tidak sama, pembuatan cluster akan gagal.
gkeOnPremAPI
Di versi 1.16 dan yang lebih baru, jika GKE On-Prem API diaktifkan di projectGoogle Cloud Anda, semua cluster dalam project akan terdaftar di GKE On-Prem API secara otomatis di region yang dikonfigurasi di stackdriver.clusterLocation.
Region gkeOnPremAPI.location harus sama dengan region yang ditentukan di
cloudAuditLogging.clusterLocation, gkeConnect.location (jika kolom disertakan
dalam file konfigurasi Anda), dan stackdriver.clusterLocation.
Jika Anda ingin mendaftarkan semua cluster dalam project di GKE On-Prem API, pastikan untuk melakukan langkah-langkah di bagian Sebelum memulai untuk mengaktifkan dan menggunakan GKE On-Prem API dalam project.
Jika Anda tidak ingin mendaftarkan cluster di GKE On-Prem API, sertakan bagian ini dan tetapkan
gkeOnPremAPI.enabledkefalse. Jika Anda tidak ingin mendaftarkan cluster apa pun dalam project, nonaktifkangkeonprem.googleapis.com(nama layanan untuk GKE On-Prem API) dalam project. Untuk mengetahui petunjuknya, lihat Menonaktifkan layanan.
cloudAuditLogging
Jika Anda ingin mengintegrasikan log audit dari server Kubernetes API cluster Anda dengan Cloud Audit Logs, isi bagian cloudAuditLogging.
Perhatikan persyaratan berikut:
Jika Anda mengaktifkan cluster lanjutan, tetapkan
cloudAuditLogging.serviceAccountKeyPathke jalur yang sama denganstackdriver.serviceAccountKeyPath.ID di
cloudAuditLogging.projectIDharus sama dengan ID digkeConnect.projectIDdanstackdriver.projectID.Region di
cloudAuditLogging.clusterLocationharus sama dengan region yang ditetapkan digkeConnect.locationdanstackdriver.clusterLocation. Selain itu, jikagkeOnPremAPI.enabledadalahtrue, region yang sama harus ditetapkan digkeOnPremAPI.location.
Jika project ID dan region tidak sama, pembuatan cluster akan gagal.
Contoh file konfigurasi yang telah diisi
Berikut adalah contoh file blok IP dan file konfigurasi cluster pengguna;
user-ipblock.yaml
blocks:
- netmask: 255.255.255.0
gateway: 172.16.21.1
ips:
- ip: 172.16.21.2
hostname: worker-vm-1
- ip: 172.16.21.3
hostname: worker-vm-2
- ip: 172.16.21.4
hostname: worker-vm-3
- ip: 172.16.21.5
hostname: worker-vm-4
user-cluster.yaml
apiVersion: v1
kind: UserCluster
name: "my-user-cluster"
gkeOnPremVersion: 1.36.200-gke.118
enableControlplaneV2: true
enableAdvancedCluster: 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"
enableDataplaneV2: true
masterNode:
cpus: 4
memoryMB: 8192
replicas: 3
nodePools:
- name: "worker-node-pool"
cpus: 4
memoryMB: 8192
replicas: 3
osImageType: "ubuntu_cgv2"
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"
serviceAccountKeyPath: "log-mon-sa-2203040617.json"
disableVsphereResourceMetrics: false
cloudAuditLogging:
projectID: "my-project-123"
clusterLocation: "us-central1"
serviceAccountKeyPath: "log-mon-sa-2203040617.json"
autoRepair:
enabled: true
Berikut adalah poin-poin penting yang perlu dipahami dalam contoh sebelumnya:
Kolom
nodePools.replicasditetapkan ke3, yang berarti ada tiga worker node di"worker-node-pool". Semua worker node menggunakan alamat IP statis karenanetwork.ipMode.typeditetapkan ke"static".Alamat IP statis untuk worker node ditentukan dalam file blok IP. File blok IP memiliki empat alamat meskipun hanya ada tiga worker node. Alamat IP tambahan diperlukan selama upgrade, update, dan perbaikan otomatis cluster.
Server DNS dan NTP ditentukan di bagian
hostConfig. Dalam contoh ini, server DNS dan server NTP ini ditujukan untuk node bidang kontrol dan worker node. Hal ini karena worker node memiliki alamat IP statis. Jika worker node mendapatkan alamat IP-nya dari server DHCP, server DNS dan server NTP ini hanya akan ditujukan untuk node bidang kontrol.Alamat IP statis untuk tiga node bidang kontrol ditentukan di bagian
network.controlPlaneIPBlockpada file konfigurasi cluster pengguna. Tidak perlu alamat IP tambahan di blok ini.Controlplane V2 diaktifkan.
Kolom
masterNode.replicasditetapkan ke3, sehingga cluster akan memiliki bidang kontrol ketersediaan tinggi.VIP bidang kontrol dan VIP ingress berada di VLAN yang sama dengan worker node dan node bidang kontrol.
VIP yang disisihkan untuk Service jenis LoadBalancer ditentukan di bagian
loadBalancer.metalLB.addressPoolspada file konfigurasi cluster pengguna. VIP ini berada di VLAN yang sama dengan worker node dan node bidang kontrol. Kumpulan VIP yang ditentukan di bagian ini harus menyertakan VIP ingress dan tidak boleh menyertakan VIP bidang kontrol.File konfigurasi cluster pengguna tidak menyertakan bagian
vCenter. Jadi, cluster pengguna menggunakan resource vSphere yang sama dengan cluster admin.
Memvalidasi file konfigurasi Anda
Setelah mengisi file konfigurasi cluster pengguna, jalankan perintah gkectl check-config untuk memverifikasi bahwa file tersebut valid. Dukungan untuk
perintah gkectl check-config di cluster pengguna lanjutan ditambahkan dalam
versi berikut: 1.32.700+, 1.33.300+, dan 1.34.0 dan yang lebih baru. Jika Anda
menginstal versi yang lebih rendah pada cluster lanjutan, perintah akan gagal.
gkectl check-config --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig untuk cluster admin Anda
USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna Anda
Jika perintah menampilkan pesan kegagalan, perbaiki masalah dan validasi file lagi.
Jika Anda ingin melewati validasi yang lebih memakan waktu, teruskan flag --fast.
Untuk melewati validasi individual, gunakan flag --skip-validation-xxx. Untuk
mempelajari lebih lanjut perintah check-config, lihat
Menjalankan pemeriksaan preflight.
(Opsional) Mengimpor image OS ke vSphere, dan mengirim image container ke registry pribadi
Jalankan gkectl prepare jika salah satu hal berikut terpenuhi:
Cluster pengguna Anda berada di pusat data vSphere yang berbeda dengan cluster admin Anda.
Cluster pengguna Anda memiliki vCenter Server yang berbeda dengan cluster admin Anda.
Cluster pengguna Anda memiliki folder vCenter yang berbeda dengan 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 file kubeconfig cluster admin Anda
BUNDLE: jalur file paket. File ini ada di workstation admin Anda di
/var/lib/gke/bundles/. Contoh:/var/lib/gke/bundles/gke-onprem-vsphere-1.36.200-gke.118-full.tgz
USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna Anda
Membuat cluster pengguna
Jalankan perintah berikut untuk membuat cluster pengguna:
gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Jika Anda menggunakan Kontrol Layanan VPC, Anda mungkin melihat error saat menjalankan beberapa perintah gkectl, seperti "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services". Untuk menghindari error ini, tambahkan
parameter --skip-validation-gcp ke perintah Anda.
Menemukan file kubeconfig cluster pengguna
Perintah gkectl create cluster akan membuat file kubeconfig bernama
USER_CLUSTER_NAME-kubeconfig di direktori saat ini. Anda akan memerlukan file kubeconfig ini nanti untuk berinteraksi dengan cluster pengguna.
File kubeconfig berisi nama cluster pengguna Anda. Untuk melihat nama cluster, Anda dapat menjalankan:
kubectl config get-clusters --kubeconfig USER_CLUSTER_KUBECONFIG
Output akan menampilkan nama cluster. Contoh:
NAME my-user-cluster
Jika mau, Anda dapat mengubah nama dan lokasi file kubeconfig.
Memastikan cluster pengguna Anda berjalan
Pastikan cluster pengguna Anda berjalan:
kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG
Ganti USER_CLUSTER_KUBECONFIG dengan jalur file kubeconfig cluster pengguna Anda.
Output akan menampilkan node cluster pengguna. Contoh:
cp-vm-1 Ready control-plane,master 18m cp-vm-2 Ready control-plane,master 18m cp-vm-3 Ready control-plane,master 18m worker-vm-1 Ready 6m7s worker-vm-2 Ready 6m6s worker-vm-3 Ready 6m14s
Konsol
Mulai
Di konsol Google Cloud , buka halaman Create VM cluster.
Pilih project Google Cloud tempat Anda ingin membuat cluster. Project yang dipilih akan digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin didaftarkan. Setelah cluster pengguna dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang dipilih.
Di bagian Choose your cluster type, pilih Create a user cluster for an existing admin cluster.
Dasar-dasar cluster
Masukkan informasi dasar tentang cluster.
Masukkan Name untuk cluster pengguna.
Di bagian Admin cluster, pilih cluster admin dari daftar. Jika Anda tidak menentukan nama untuk cluster admin saat membuatnya, nama tersebut akan dibuat dalam bentuk
gke-admin-[HASH]. Jika Anda tidak mengenali nama cluster admin, jalankan perintah berikut di workstation admin:KUBECONFIG=ADMIN_CLUSTER_KUBECONFIG kubectl get OnPremAdminCluster -n kube-system -o=jsonpath='{.items[0].metadata.name}'Jika cluster admin yang ingin Anda gunakan tidak ditampilkan, lihat bagian pemecahan masalah Cluster admin tidak ditampilkan di menu drop-down Dasar-dasar cluster.
Di kolom GCP API Location, pilih region Google Cloud dari daftar. Setelan ini menentukan region tempat API dan layanan berikut berjalan:
- GKE On-Prem API (
gkeonprem.googleapis.com) - Layanan fleet (
gkehub.googleapis.com) - Hubungkan layanan (
gkeconnect.googleapis.com)
Setelan ini juga mengontrol region tempat penyimpanan hal berikut:
- 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 bersama-sama mengidentifikasi cluster secara unik di Google Cloud.
- GKE On-Prem API (
Pilih versi Google Distributed Cloud untuk cluster pengguna Anda.
Sebagai pembuat cluster, Anda diberi hak istimewa admin cluster ke cluster. Atau, masukkan alamat email pengguna lain yang akan mengelola cluster di kolom Cluster admin user di bagian Authorization.
Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-adminKubernetes, yang memberikan akses penuh ke setiap resource di cluster di semua namespace.Klik Next untuk membuka bagian bidang kontrol.
Bidang Kontrol
Semua kolom di bagian bidang kontrol ditetapkan dengan nilai default. Tinjau setelan default dan ubah sesuai kebutuhan.
Di kolom vCPU node bidang kontrol, masukkan jumlah vCPU (minimum 4) untuk setiap node bidang kontrol untuk cluster pengguna Anda.
Di kolom Control-plane node memory, masukkan ukuran memori dalam MiB (minimum 8192 dan harus kelipatan 4) untuk setiap bidang kontrol untuk cluster pengguna Anda.
Di bagian Control-plane nodes, pilih jumlah node bidang kontrol untuk cluster pengguna Anda. Misalnya, Anda dapat memilih 1 node bidang kontrol untuk lingkungan pengembangan dan 3 node bidang kontrol untuk lingkungan produksi dengan ketersediaan tinggi (HA).
Jika perlu, pilih Automatic node resizing. Mengubah ukuran berarti resource vCPU dan memori yang ditetapkan ke node akan disesuaikan secara otomatis. Jika diaktifkan, node bidang kontrol untuk cluster pengguna akan diubah ukurannya sesuai dengan jumlah worker node dalam cluster pengguna. Jadi, saat Anda menambahkan lebih banyak worker node ke cluster pengguna, ukuran node bidang kontrol akan ditingkatkan.
Di bagian Control plane node IPs, masukkan alamat IP untuk gateway, subnet mask, dan node bidang kontrol.
Klik Next untuk membuka bagian Networking.
Jaringan
Di bagian ini, Anda akan menentukan alamat IP untuk node, Pod, dan Service cluster Anda. Cluster pengguna harus memiliki satu alamat IP untuk setiap node dan alamat IP tambahan untuk node sementara yang diperlukan selama upgrade, update, dan perbaikan otomatis cluster. Untuk mengetahui informasi selengkapnya, lihat Berapa banyak alamat IP yang dibutuhkan cluster pengguna?.
Di bagian Node IPs, pilih IP mode untuk cluster pengguna. Pilih salah satu opsi berikut:
DHCP: Pilih DHCP jika Anda ingin node cluster mendapatkan alamat IP-nya dari server DHCP.
Static: Pilih Static jika Anda ingin menyediakan alamat IP statis untuk node cluster, atau jika Anda ingin menyiapkan load balancing manual.
Jika Anda memilih DHCP, lanjutkan ke langkah berikutnya untuk menentukan CIDR Service dan Pod. Untuk Static IP mode, berikan informasi berikut:
Masukkan alamat IP Gateway untuk cluster pengguna.
Masukkan Subnet mask untuk node cluster pengguna.
Di bagian IP Addresses, masukkan alamat IP dan, secara opsional, nama host untuk node di cluster pengguna. Anda dapat memasukkan alamat IPv4 individual (seperti 192.0.2.1) atau blok CIDR alamat IPv4 (seperti 192.0.2.0/24).
Jika Anda memasukkan blok CIDR, jangan masukkan nama host.
Jika memasukkan alamat IP individual, Anda dapat memasukkan nama host secara opsional. Jika Anda tidak memasukkan nama host, Google Distributed Cloud akan menggunakan nama VM dari vSphere sebagai nama host.
Klik + Add IP Address sesuai kebutuhan untuk memasukkan lebih banyak alamat IP.
Di bagian Service and Pod CIDRs, konsol menyediakan rentang alamat berikut untuk Service dan Pod Kubernetes Anda:
- Service CIDR: 10.96.0.0/20
- CIDR Pod: 192.168.0.0/16
Jika Anda lebih suka memasukkan rentang alamat sendiri, lihat Alamat IP untuk Pod dan Service untuk mengetahui praktik terbaik.
Jika Anda memilih mode IP Statis atau Aktifkan bidang kontrol v2, tentukan informasi berikut di bagian Konfigurasi host:
- Masukkan alamat IP server DNS.
- Masukkan alamat IP server NTP.
- Atau, masukkan domain penelusuran DNS.
Klik Next untuk membuka bagian Load balancer.
Load balancer
Pilih load balancer yang akan disiapkan untuk cluster Anda. Lihat Ringkasan load balancer untuk mengetahui informasi selengkapnya.
Pilih Load balancer type dari daftar.
Dipaketkan dengan MetalLB
Mengonfigurasi load balancing paket dengan MetalLB. Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin Anda menggunakan SeeSaw atau MetalLB. Opsi ini memerlukan konfigurasi minimal. MetalLB berjalan langsung di node cluster Anda dan tidak memerlukan VM tambahan. Untuk mengetahui informasi selengkapnya tentang manfaat menggunakan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Load balancing paket dengan MetalLB.Di bagian Address pools, konfigurasikan setidaknya satu kumpulan alamat, sebagai berikut:
Masukkan nama untuk kumpulan alamat.
Masukkan rentang alamat IP yang berisi VIP ingress dalam notasi CIDR (misalnya, 192.0.2.0/26) atau notasi rentang (mis. 192.0.2.64-192.0.2.72). Untuk menentukan satu alamat IP dalam kumpulan, gunakan /32 dalam notasi CIDR (mis. 192.0.2.1/32).
Jika alamat IP untuk Service Anda dengan jenis
LoadBalancertidak berada dalam rentang alamat IP yang sama dengan VIP ingress, klik + Add IP Address Range dan masukkan rentang alamat lain.Alamat IP di setiap pool tidak boleh tumpang-tindih, dan harus berada di subnet yang sama dengan node cluster.
Di bagian Penetapan alamat IP, pilih salah satu opsi berikut:
Otomatis: Pilih opsi ini jika Anda ingin pengontrol MetalLB otomatis menetapkan alamat IP dari kumpulan alamat ke Service jenis
LoadBalancerManual: Pilih opsi ini jika Anda ingin menggunakan alamat dari kumpulan untuk menentukan alamat secara manual untuk Service jenis
LoadBalancer
Klik Avoid buggy IP addresses jika Anda ingin pengontrol MetalLB tidak menggunakan alamat IP dari kumpulan yang diakhiri dengan .0 atau .255. Hal ini menghindari masalah perangkat konsumen yang bermasalah yang secara keliru menghapus traffic yang dikirim ke alamat IP khusus tersebut.
Setelah selesai, klik Selesai.
Jika perlu, klik Add Address Pool.
Di bagian Virtual IPs, masukkan informasi berikut:
VIP bidang kontrol: Alamat IP tujuan yang akan digunakan untuk traffic yang dikirim ke server Kubernetes API cluster pengguna. Server Kubernetes API untuk cluster pengguna berjalan di node dalam cluster admin. Alamat IP ini harus berada di domain L2 yang sama dengan node cluster admin. Jangan tambahkan alamat ini di bagian Address pools.
VIP Ingress: Alamat IP yang akan dikonfigurasi pada load balancer untuk proxy ingress. Anda harus menambahkannya ke kumpulan alamat di bagian Address pools.
Klik Lanjutkan.
F5 BIG-IP
Anda dapat menggunakan F5 BIG-IP untuk cluster pengguna hanya jika cluster admin Anda menggunakan F5 BIG-IP. Pastikan untuk menginstal dan mengonfigurasi F5 BIG-IP ADC sebelum mengintegrasikannya dengan Google Distributed Cloud.Nama pengguna dan sandi F5 diwarisi dari cluster admin.
Di bagian Virtual IPs, masukkan informasi berikut:
VIP bidang kontrol: Alamat IP tujuan yang akan digunakan untuk traffic yang dikirim ke server Kubernetes API.
VIP Ingress: Alamat IP yang akan dikonfigurasi pada load balancer untuk proxy ingress.
Di kolom Address, masukkan alamat load balancer F5 BIG-IP Anda.
Di kolom Partition, masukkan nama partisi BIG-IP yang Anda buat untuk cluster pengguna.
Di kolom sNAT pool name, masukkan nama pool SNAT Anda, jika berlaku.
Klik Lanjutkan.
Manual
Anda dapat menggunakan load balancer manual untuk cluster pengguna hanya jika cluster admin Anda menggunakan load balancer manual. Di Google Distributed Cloud, server Kubernetes API dan proxy ingress masing-masing diekspos oleh Service Kubernetes berjenisLoadBalancer. Pilih nilai nodePort Anda sendiri dalam rentang 30000 - 32767 untuk Service ini. Untuk proxy ingress, pilih nilai nodePort untuk traffic HTTP dan HTTPS. Lihat
Mengaktifkan mode load balancing manual
untuk mengetahui informasi selengkapnya.
Di bagian Virtual IPs, masukkan informasi berikut:
VIP bidang kontrol: Alamat IP tujuan yang akan digunakan untuk traffic yang dikirim ke server Kubernetes API.
VIP Ingress: Alamat IP yang akan dikonfigurasi pada load balancer untuk proxy ingress.
Di kolom Control-plan node port, masukkan nilai
nodePortuntuk server Kubernetes API.Di kolom Ingress HTTP node port, masukkan nilai
nodePortuntuk traffic HTTP ke proxy ingress.Di kolom Ingress HTTPS node port, masukkan nilai
nodePortuntuk traffic HTTPS ke proxy ingress.Di kolom Konnectivity server node port, masukkan nilai
nodePortuntuk server Konnectivity.Klik Lanjutkan.
Fitur
Bagian ini menampilkan fitur dan operasi yang diaktifkan di cluster.
Hal berikut diaktifkan secara otomatis dan tidak dapat dinonaktifkan:
Cloud Logging layanan sistem
Cloud Monitoring untuk layanan sistem
Fitur berikut diaktifkan secara default, tetapi Anda dapat menonaktifkannya:
Enable vSphere CSI driver: Juga disebut vSphere Container Storage Plug-in. Driver Container Storage Interface (CSI) berjalan di cluster Kubernetes yang di-deploy di vSphere untuk menyediakan volume persisten di penyimpanan vSphere. Untuk mengetahui informasi selengkapnya, lihat Menggunakan driver Antarmuka Penyimpanan Container vSphere.
Mengaktifkan grup anti-afinitas: Aturan anti-afinitas VMware Distributed Resource Scheduler (DRS) otomatis dibuat untuk node cluster pengguna Anda, sehingga node tersebut tersebar di setidaknya 3 host fisik di pusat data Anda. Pastikan lingkungan vSphere Anda memenuhi persyaratan.
Klik Next untuk mengonfigurasi node pool
Node pool
Cluster Anda akan dibuat dengan setidaknya satu node pool. Node pool adalah template untuk grup worker node yang dibuat di cluster ini. Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola node pool .
Di bagian Node pool defaults, selesaikan langkah berikut:
- Masukkan Node pool name atau terima "default-pool" sebagai nama.
- Masukkan jumlah vCPUs untuk setiap node dalam pool (minimal 4 per worker cluster pengguna).
- Masukkan ukuran memori dalam mebibyte (MiB) untuk setiap node di pool (minimum 8192 MiB per worker node cluster pengguna dan harus kelipatan 4).
- Di kolom Nodes, masukkan jumlah node dalam pool (minimal 3). Jika Anda memasukkan alamat IP statis untuk Node IP di bagian Networking, pastikan Anda memasukkan alamat IP yang cukup untuk mengakomodasi node cluster pengguna ini.
- Pilih OS image type: Ubuntu, Ubuntu Containerd, atau COS.
- Masukkan Boot disk size dalam gibibyte (GiB) (minimum 40 GiB).
- Jika Anda menggunakan MetalLB sebagai load balancer, MetalLB harus diaktifkan di setidaknya satu node pool. Biarkan Use this node pool for MetalLB load balancing dipilih, atau tambahkan node pool lain untuk digunakan MetalLB.
Di bagian Node pool metadata (optional), jika Anda ingin menambahkan label dan taint Kubernetes, lakukan hal berikut:
- Klik + Add Kubernetes Labels. Masukkan Kunci dan Nilai untuk label. Ulangi jika perlu.
- Klik + Add Taint. Masukkan Key, Value, dan Effect untuk taint. Ulangi jika perlu.
Klik Verify and Complete untuk membuat cluster pengguna. Perlu waktu 15 menit atau lebih untuk membuat cluster pengguna. Konsol akan menampilkan pesan status saat memverifikasi setelan dan membuat cluster di pusat data Anda.
Jika terjadi error saat memverifikasi setelan, konsol akan menampilkan pesan error yang cukup jelas bagi Anda untuk memperbaiki masalah konfigurasi dan mencoba lagi membuat cluster.
Untuk mengetahui informasi selengkapnya tentang kemungkinan error dan cara memperbaikinya, lihat Memecahkan masalah pembuatan cluster pengguna di konsol Google Cloud .
gcloud CLI
Gunakan perintah berikut untuk membuat cluster pengguna:
gcloud container vmware clusters create
Setelah membuat cluster, Anda harus membuat setidaknya satu node pool menggunakan perintah berikut:
gcloud container vmware node-pools create
Sebagian besar flag untuk membuat cluster dan node pool sesuai dengan kolom dalam file konfigurasi cluster pengguna. Untuk membantu Anda memulai, Anda dapat menguji perintah lengkap di bagian contoh.
Mengumpulkan informasi
Kumpulkan beberapa informasi yang Anda perlukan untuk membuat cluster.
Dapatkan nama dan lokasi keanggotaan fleet cluster admin Anda:
gcloud container fleet memberships list \ --project=FLEET_HOST_PROJECT_IDGanti
FLEET_HOST_PROJECT_IDdengan ID project tempat cluster admin terdaftar.Outputnya mirip dengan hal berikut ini:
NAME EXTERNAL_ID LOCATION admin-cluster-1 bb7803b4-8438-4b22-859f-4559b4b29072 global admin-cluster-2 ee16ee2b-6ec0-49fc-9413-3c89cbc70854 global admin-cluster-3 fc2b7ef5-39ff-4b63-b919-04c5adc67be4 us-west1
Lokasi menentukan tempat layanan Fleet dan Connect berjalan. Cluster admin yang dibuat sebelum versi 1.28 dikelola oleh layanan Fleet dan Connect global. Di versi 1.28 dan yang lebih tinggi, Anda dapat menentukan
globalatau region Google Cloud saat membuat cluster admin. Anda menentukan region dalam flag--admin-cluster-membership-locationpada contoh perintah berikut.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=REGIONGanti kode berikut:
ADMIN_CLUSTER_NAME: Nama cluster admin.FLEET_HOST_PROJECT_ID: ID project tempat cluster admin didaftarkan.ADMIN_CLUSTER_REGION: Region keanggotaan fleet cluster admin. Ini bersifat global atau region Google Cloud. Gunakan lokasi untuk cluster admin dari outputgcloud container fleet memberships list.REGION: Region Google Cloud yang akan Anda gunakan saat membuat cluster pengguna. Ini adalah region tempat GKE On-Prem API berjalan dan menyimpan metadatanya.Jika cluster admin terdaftar di GKE On-Prem API, gunakan region yang sama dengan cluster admin. Untuk mengetahui region cluster admin, jalankan perintah berikut:
gcloud container vmware admin-clusters list \ --project=FLEET_HOST_PROJECT_ID \ --location=-
Jika cluster admin tidak terdaftar di GKE On-Prem API, tentukan
us-west1atau region lain yang didukung. Jika Anda kemudian mendaftarkan cluster admin di GKE On-Prem API, gunakan region yang sama dengan cluster pengguna.
Output perintah
gcloud container vmware clusters query-version-configmirip 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.184Perintah ini juga menghasilkan penjelasan tentang versi yang dapat Anda gunakan untuk pembuatan atau upgrade cluster pengguna. Versi yang diizinkan dianotasi dengan
isInstalled: true, yang berarti cluster admin memiliki komponen khusus versi yang diperlukan untuk mengelola cluster pengguna versi tersebut. Jika Anda ingin menggunakan versi yang diinstal di cluster admin, lanjutkan ke bagian Contoh untuk membuat cluster pengguna.
Menginstal versi lain
Cluster admin dapat mengelola cluster pengguna di berbagai versi. Output perintah query-version-config mencantumkan versi lain yang dapat Anda gunakan saat membuat cluster. Jika ingin membuat cluster pengguna yang merupakan
versi berbeda dari cluster admin, Anda perlu mendownload dan men-deploy
komponen yang diperlukan cluster admin untuk mengelola cluster pengguna versi tersebut,
sebagai berikut:
gcloud container vmware admin-clusters update ADMIN_CLUSTER_NAME \
--project=FLEET_HOST_PROJECT_ID \
--location=REGION \
--required-platform-version=VERSIONGanti VERSION dengan salah satu versi yang tercantum dalam
output perintah query-version-config.
Perintah ini akan mendownload versi komponen yang Anda tentukan di
--required-platform-version ke cluster admin, lalu men-deploy
komponen tersebut. Sekarang Anda dapat membuat cluster pengguna dengan versi yang ditentukan.
Jika Anda menjalankan ulang gcloud container vmware clusters query-version-config,
versi yang Anda tentukan akan dianotasi dengan isInstalled: true.
Contoh
Contoh berikut menunjukkan cara membuat cluster pengguna dengan load balancer yang berbeda dengan Controlplane V2 diaktifkan. Dengan Controlplane V2, bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node dalam cluster pengguna itu sendiri. Sebaiknya aktifkan Controlplane V2, dan di versi 1.30 dan yang lebih tinggi, cluster pengguna baru harus mengaktifkan Controlplane V2. Untuk mengetahui informasi tentang opsi load balancing yang tersedia, lihat Ringkasan load balancer.
Sebagian besar contoh menggunakan nilai default untuk mengonfigurasi node bidang kontrol. Jika Anda ingin mengubah salah satu setelan default, sertakan flag yang dijelaskan di bagian Flag bidang kontrol. Jika perlu, Anda juga dapat mengubah beberapa setelan vSphere.
Sebelum menjalankan perintah gcloud untuk membuat cluster, Anda dapat
menyertakan --validate-only untuk memvalidasi konfigurasi yang Anda tentukan dalam
flag ke perintah gcloud. Jika Anda sudah siap membuat cluster,
hapus flag ini dan jalankan perintah.
Jika Anda mendapatkan error setelah perintah gcloud container vmware clusters create
berjalan selama sekitar satu menit atau lebih, periksa apakah cluster telah dibuat
sebagian dengan menjalankan perintah berikut:
gcloud container vmware clusters list \
--project=FLEET_HOST_PROJECT_ID \
--location=-
Jika cluster tidak tercantum dalam output, perbaiki error dan jalankan ulang gcloud container vmware clusters create.
Jika cluster tercantum dalam output, hapus cluster menggunakan perintah berikut:
gcloud container vmware clusters delete USER_CLUSTER_NAME \
--project=FLEET_HOST_PROJECT_ID \
--location=REGION \
--force \
--allow-missing
Kemudian, perbaiki error dan jalankan kembali gcloud container vmware clusters create.
Setelah cluster berjalan, Anda harus menambahkan node pool sebelum men-deploy workload, seperti yang dijelaskan di bagian Membuat node pool.
MetalLB & DHCP
Contoh ini menunjukkan cara membuat cluster pengguna dengan load balancer MetalLB yang dipaketkan dan menggunakan server DHCP Anda untuk mendapatkan alamat IP bagi worker node cluster Anda.Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin Anda menggunakan MetalLB. Opsi load balancing ini memerlukan konfigurasi minimal. MetalLB berjalan langsung di node cluster Anda dan tidak memerlukan VM tambahan. Untuk mengetahui informasi selengkapnya tentang manfaat menggunakan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Load balancing yang dipaketkan dengan MetalLB.
Contoh perintah ini membuat cluster pengguna dengan karakteristik berikut, yang dapat Anda ubah sesuai kebutuhan untuk lingkungan Anda.
| Flag | Deskripsi |
|---|---|
--admin-users |
Memberi Anda dan pengguna lain hak administratif penuh pada cluster. |
--enable-control-plane-v2 |
Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan di versi 1.30 dan yang lebih tinggi. |
--control-plane-ip-block |
Satu alamat IP untuk node bidang kontrol. Untuk membuat cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP dan tambahkan flag --replicas=3. |
--metal-lb-config-address-pools |
Dua kumpulan alamat untuk load balancer MetalLB. Anda memerlukan setidaknya satu kumpulan alamat, dan Anda dapat menentukan lebih banyak jika diperlukan. Untuk
kemudahan, contoh ini berisi kumpulan alamat dengan nama
"ingress-vip-pool" sebagai pengingat bahwa alamat IP untuk
VIP ingress harus berada di salah satu kumpulan alamat. Anda menentukan CIDR untuk satu alamat IP dengan menambahkan /32 ke alamat IP. |
gcloud container vmware clusters create USER_CLUSTER_NAME \
--project=FLEET_HOST_PROJECT_ID \
--admin-cluster-membership=ADMIN_CLUSTER_NAME \
--admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \
--admin-cluster-membership-location=ADMIN_CLUSTER_REGION \
--location=REGION \
--version=VERSION \
--admin-users=YOUR_EMAIL_ADDRESS \
--admin-users=ANOTHER_EMAIL_ADDRESS \
--service-address-cidr-blocks=10.96.0.0/20 \
--pod-address-cidr-blocks=192.168.0.0/16 \
--metal-lb-config-address-pools='pool=NAME,avoid-buggy-ips=AVOID_BUGGY_IPS,manual-assign=MANUAL_ASSIGN,addresses=IP_ADDRESS_RANGE_1' \
--metal-lb-config-address-pools='pool=ingress-vip-pool,avoid-buggy-ips=False,manual-assign=True,addresses=INGRESS_VIP/32' \
--enable-control-plane-v2 \
--dns-servers=DNS_SERVER_1 \
--ntp-servers=NTP_SERVER_1 \
--control-plane-ip-block 'gateway=CP_GATEWAY,netmask=CP_NETMASK,ips=CP_IP_ADDRESS_1 CP_HOST_1' \
--control-plane-vip=CONTROL_PLANE_VIP \
--ingress-vip=INGRESS_VIP \
--enable-dhcp
Ganti kode berikut:
-
USER_CLUSTER_NAME: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:- berisi maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
-
FLEET_HOST_PROJECT_ID: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin didaftarkan. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat. -
ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Dalam flag--admin-cluster-membership, Anda dapat menggunakan nama cluster yang ditentukan sepenuhnya, yang memiliki format berikut:projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAMEAtau, Anda dapat menetapkan
--admin-cluster-membershipke nama cluster admin, seperti dalam contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan--admin-cluster-membership-projectdan lokasi dengan--admin-cluster-membership-location. Lokasi cluster admin adalahglobalatau region Google Cloud . Jika Anda perlu menemukan region, jalankangcloud container fleet memberships list. -
REGION: Region Google Cloud tempat GKE On-Prem API (gkeonprem.googleapis.com), layanan Fleet (gkehub.googleapis.com), dan layanan Connect (gkeconnect.googleapis.com) berjalan. Tentukanus-west1atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat penyimpanan hal berikut:- 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 bersama-sama mengidentifikasi cluster secara unik di Google Cloud.
-
VERSION: Versi Google Distributed Cloud untuk cluster pengguna Anda. -
YOUR_EMAIL_ADDRESSdanANOTHER_EMAIL_ADDRESS: Jika Anda tidak menyertakan flag--admin-users, sebagai pembuat cluster, secara default Anda akan diberi hak istimewa admin cluster. Namun, jika Anda menyertakan--admin-usersuntuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan perlu menyertakan alamat email Anda dan alamat email administrator lain. Misalnya, untuk menambahkan dua administrator:--admin-users=sara@example.com \ --admin-users=amal@example.comSaat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-adminKubernetes, yang memberikan akses penuh ke setiap resource di cluster di semua namespace.
-
SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Service di cluster Anda. Harus minimal rentang /24.Contoh:
--service-address-cidr-blocks=10.96.0.0/20 -
POD_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Harus minimal rentang /18.Contoh:
--pod-address-cidr-blocks=192.168.0.0/16
-
--metal-lb-config-address-pools: Sertakan flag ini untuk menentukan konfigurasi kumpulan alamat yang akan digunakan oleh load balancer MetalLB. Nilai untuk flag memiliki format berikut:--metal-lb-config-address-pool 'pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
Nilai memiliki segmen yang dimulai dengan kata kunci
pool,avoid-buggy-ip,manual-assign, danaddresses. Pisahkan setiap segmen dengan koma.-
pool: Nama pilihan Anda untuk pool. -
avoid-buggy-ips1: Jika Anda menetapkan ini keTrue, pengontrol MetalLB tidak akan menetapkan alamat IP yang diakhiri dengan .0 atau .255 ke Service. Hal ini menghindari masalah perangkat konsumen yang bermasalah yang secara keliru menghapus traffic yang dikirim ke alamat IP khusus tersebut. Jika tidak ditentukan, setelan defaultnya adalahFalse. -
manual-assign: Jika Anda tidak ingin pengontrol MetalLB otomatis menetapkan alamat IP dari kumpulan ini ke Service, tetapkan keTrue. Kemudian, developer dapat membuat Service jenisLoadBalancerdan menentukan secara manual salah satu alamat dari pool. Jika tidak ditentukan,manual-assignakan ditetapkan keFalse. -
Dalam daftar
addresses: Setiap alamat harus berupa rentang dalam notasi CIDR atau format rentang yang dipisahkan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (seperti untuk VIP ingress), gunakan /32 dalam notasi CIDR, misalnya:192.0.2.1/32.
Perhatikan hal berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap rentang alamat IP dengan titik koma.
Contoh:
--metal-lb-config-address-pool 'pool=pool1,avoid-buggy-ips=True,manual-assign=True,addresses=10.251.134.80/32;192.168.1.0/26;192.168.1.2-192.168.1.3'
-
-
CONTROL_PLANE_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi pada load balancer untuk server Kubernetes API cluster pengguna.Contoh:
--control-plane-vip=203.0.113.3 -
INGRESS_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy ingress.Contoh:
--ingress-vip=10.251.134.80Alamat IP untuk VIP ingress harus berada di salah satu kumpulan alamat MetalLB.
--enable-dhcp: Sertakan--enable-dhcpjika Anda ingin node cluster mendapatkan alamat IP dari server DHCP yang Anda sediakan. Jangan sertakan flag ini jika Anda ingin menyediakan alamat IP statis untuk node cluster, atau jika Anda ingin menyiapkan load balancing manual.
MetalLB & IP statis
Contoh ini menunjukkan cara membuat cluster pengguna dengan load balancer MetalLB yang dipaketkan dan menetapkan alamat IP statis ke worker node cluster Anda.Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin Anda menggunakan MetalLB. Opsi load balancing ini memerlukan konfigurasi minimal. MetalLB berjalan langsung di node cluster Anda dan tidak memerlukan VM tambahan. Untuk mengetahui informasi selengkapnya tentang manfaat menggunakan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Load balancing paket dengan MetalLB.
Contoh perintah ini membuat cluster pengguna dengan karakteristik berikut, yang dapat Anda ubah sesuai kebutuhan untuk lingkungan Anda.
| Flag | Deskripsi |
|---|---|
--admin-users |
Memberi Anda dan pengguna lain hak administratif penuh pada cluster. |
--enable-control-plane-v2 |
Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan di versi 1.30 dan yang lebih tinggi. |
--control-plane-ip-block |
Satu alamat IP untuk node bidang kontrol. Untuk membuat cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP dan tambahkan flag --replicas=3. |
--metal-lb-config-address-pools |
Dua kumpulan alamat untuk load balancer MetalLB. Anda memerlukan setidaknya satu kumpulan alamat, dan Anda dapat menentukan lebih banyak jika diperlukan. Untuk
kemudahan, contoh ini berisi kumpulan alamat dengan nama
"ingress-vip-pool" sebagai pengingat bahwa alamat IP untuk
VIP ingress harus berada di salah satu kumpulan alamat. Anda menentukan CIDR untuk satu alamat IP dengan menambahkan /32 ke alamat IP. |
--static-ip-config-ip-blocks |
Empat alamat IP untuk worker node di cluster. Hal ini mencakup alamat untuk node tambahan yang dapat digunakan selama upgrade dan update. Anda dapat menentukan lebih banyak alamat IP jika diperlukan. Nama host bersifat opsional. |
gcloud container vmware clusters create USER_CLUSTER_NAME \
--project=FLEET_HOST_PROJECT_ID \
--admin-cluster-membership=ADMIN_CLUSTER_NAME \
--admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \
--admin-cluster-membership-location=ADMIN_CLUSTER_REGION \
--location=REGION \
--version=VERSION \
--admin-users=YOUR_EMAIL_ADDRESS \
--admin-users=ANOTHER_EMAIL_ADDRESS \
--service-address-cidr-blocks=10.96.0.0/20 \
--pod-address-cidr-blocks=192.168.0.0/16 \
--metal-lb-config-address-pools='pool=NAME,avoid-buggy-ips=AVOID_BUGGY_IPS,manual-assign=MANUAL_ASSIGN,addresses=IP_ADDRESS_RANGE_1' \
--metal-lb-config-address-pools='pool=ingress-vip-pool,avoid-buggy-ips=False,manual-assign=True,addresses=INGRESS_VIP/32' \
--enable-control-plane-v2 \
--control-plane-ip-block 'gateway=CP_GATEWAY,netmask=CP_NETMASK,ips=CP_IP_ADDRESS_1 CP_HOST_1' \
--control-plane-vip=CONTROL_PLANE_VIP \
--ingress-vip=INGRESS_VIP \
--static-ip-config-ip-blocks='gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1 HOST_1;IP_ADDRESS_2 HOST_2;IP_ADDRESS_3 HOST_3;IP_ADDRESS_4 HOST_4' \
--dns-servers=DNS_SERVER_1 \
--ntp-servers=NTP_SERVER_1
Ganti kode berikut:
-
USER_CLUSTER_NAME: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:- berisi maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
-
FLEET_HOST_PROJECT_ID: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin didaftarkan. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat. -
ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Dalam flag--admin-cluster-membership, Anda dapat menggunakan nama cluster yang ditentukan sepenuhnya, yang memiliki format berikut:projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAMEAtau, Anda dapat menetapkan
--admin-cluster-membershipke nama cluster admin, seperti dalam contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan--admin-cluster-membership-projectdan lokasi dengan--admin-cluster-membership-location. Lokasi cluster admin adalahglobalatau region Google Cloud . Jika Anda perlu menemukan region, jalankangcloud container fleet memberships list. -
REGION: Region Google Cloud tempat GKE On-Prem API (gkeonprem.googleapis.com), layanan Fleet (gkehub.googleapis.com), dan layanan Connect (gkeconnect.googleapis.com) berjalan. Tentukanus-west1atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat penyimpanan hal berikut:- 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 bersama-sama mengidentifikasi cluster secara unik di Google Cloud.
-
VERSION: Versi Google Distributed Cloud untuk cluster pengguna Anda. -
YOUR_EMAIL_ADDRESSdanANOTHER_EMAIL_ADDRESS: Jika Anda tidak menyertakan flag--admin-users, sebagai pembuat cluster, secara default Anda akan diberi hak istimewa admin cluster. Namun, jika Anda menyertakan--admin-usersuntuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan perlu menyertakan alamat email Anda dan alamat email administrator lain. Misalnya, untuk menambahkan dua administrator:--admin-users=sara@example.com \ --admin-users=amal@example.comSaat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-adminKubernetes, yang memberikan akses penuh ke setiap resource di cluster di semua namespace.
-
SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Service di cluster Anda. Harus minimal rentang /24.Contoh:
--service-address-cidr-blocks=10.96.0.0/20 -
POD_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Harus minimal rentang /18.Contoh:
--pod-address-cidr-blocks=192.168.0.0/16
-
--metal-lb-config-address-pools: Sertakan flag ini untuk menentukan konfigurasi kumpulan alamat yang akan digunakan oleh load balancer MetalLB. Nilai untuk flag memiliki format berikut:--metal-lb-config-address-pool 'pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
Nilai memiliki segmen yang dimulai dengan kata kunci
pool,avoid-buggy-ip,manual-assign, danaddresses. Pisahkan setiap segmen dengan koma.-
pool: Nama pilihan Anda untuk pool. -
avoid-buggy-ips1: Jika Anda menetapkan ini keTrue, pengontrol MetalLB tidak akan menetapkan alamat IP yang diakhiri dengan .0 atau .255 ke Service. Hal ini menghindari masalah perangkat konsumen yang bermasalah yang secara keliru menghapus traffic yang dikirim ke alamat IP khusus tersebut. Jika tidak ditentukan, setelan defaultnya adalahFalse. -
manual-assign: Jika Anda tidak ingin pengontrol MetalLB otomatis menetapkan alamat IP dari kumpulan ini ke Service, tetapkan keTrue. Kemudian, developer dapat membuat Service jenisLoadBalancerdan menentukan secara manual salah satu alamat dari pool. Jika tidak ditentukan,manual-assignakan ditetapkan keFalse. -
Dalam daftar
addresses: Setiap alamat harus berupa rentang dalam notasi CIDR atau format rentang yang dipisahkan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (seperti untuk VIP ingress), gunakan /32 dalam notasi CIDR, misalnya:192.0.2.1/32.
Perhatikan hal berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap rentang alamat IP dengan titik koma.
Contoh:
--metal-lb-config-address-pool 'pool=pool1,avoid-buggy-ips=True,manual-assign=True,addresses=10.251.134.80/32;192.168.1.0/26;192.168.1.2-192.168.1.3'
-
-
CONTROL_PLANE_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi pada load balancer untuk server Kubernetes API cluster pengguna.Contoh:
--control-plane-vip=203.0.113.3 -
INGRESS_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy ingress.Contoh:
--ingress-vip=10.251.134.80Alamat IP untuk VIP ingress harus berada di salah satu kumpulan alamat MetalLB.
-
--static-ip-config-ip-blocks: Tentukan gateway default, subnet mask, dan daftar alamat IP statis untuk worker node di cluster pengguna. Nilai untuk flag memiliki format berikut:--static-ip-config-ip-blocks 'gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1;IP_ADDRESS_2 HOST_2;...'
Nilai memiliki segmen yang dimulai dengan kata kunci
gateway,netmask, danips. Pisahkan segmen dengan koma.Perhatikan hal berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan kecuali di antara alamat IP dan nama host.
Dalam daftar alamat IP:
- Anda dapat menentukan alamat IP individual atau blok alamat IP CIDR.
- Pisahkan setiap alamat IP atau blok CIDR dengan titik koma.
- Untuk alamat IP individual, Anda dapat menentukan nama host setelah alamat IP secara opsional. Pisahkan alamat IP dan nama host dengan spasi. Jika Anda tidak menentukan nama host, Google Distributed Cloud akan menggunakan nama VM dari vSphere sebagai nama host.
- Jika Anda menentukan blok CIDR, jangan tentukan nilai untuk nama host.
Contoh:
--static-ip-config-ip-blocks 'gateway=172.16.23.254,netmask=255.255.252.0,ips=172.16.20.10;172.16.20.11 host2;172.16.20.12/30'
-
DNS_SERVER: Daftar alamat IP server DNS yang dipisahkan koma untuk VM. -
DNS_SEARCH_DOMAIN: Daftar domain penelusuran DNS yang dipisahkan koma untuk digunakan host. Domain ini digunakan sebagai bagian dari daftar penelusuran domain.Contoh:
--dns-search-domains example.com,examplepetstore.com
-
NTP_SERVER: Daftar alamat IP server waktu yang dipisahkan koma untuk digunakan VM.
LB manual & IP statis
Contoh ini menunjukkan cara membuat cluster pengguna dengan load balancer manual dan menetapkan alamat IP statis ke worker node cluster Anda.Anda dapat menggunakan load balancer manual untuk cluster pengguna hanya jika cluster admin Anda menggunakan load balancer manual. Di Google Distributed Cloud, server Kubernetes API, proxy ingress, dan layanan add-on untuk agregasi log masing-masing diekspos oleh Service Kubernetes berjenis LoadBalancer. Pilih nilai nodePort Anda sendiri dalam rentang 30000 - 32767 untuk Service ini. Untuk proxy ingress, pilih nilai nodePort
untuk traffic HTTP dan HTTPS. Lihat
Mengaktifkan mode load balancing manual
untuk mengetahui informasi selengkapnya.
Contoh perintah ini membuat cluster pengguna dengan karakteristik berikut, yang dapat Anda ubah sesuai kebutuhan untuk lingkungan Anda.
| Flag | Deskripsi |
|---|---|
--admin-users |
Memberi Anda dan pengguna lain hak administratif penuh pada cluster. |
--enable-control-plane-v2 |
Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan di versi 1.30 dan yang lebih tinggi. |
--control-plane-ip-block |
Satu alamat IP untuk node bidang kontrol. Untuk membuat cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP dan tambahkan flag --replicas=3. |
--static-ip-config-ip-blocks |
Empat alamat IP untuk worker node di cluster. Hal ini mencakup alamat untuk node tambahan yang dapat digunakan selama upgrade dan update. Anda dapat menentukan lebih banyak alamat IP jika diperlukan. Nama host bersifat opsional. |
gcloud container vmware clusters create USER_CLUSTER_NAME \
--project=FLEET_HOST_PROJECT_ID \
--admin-cluster-membership=ADMIN_CLUSTER_NAME \
--admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \
--admin-cluster-membership-location=ADMIN_CLUSTER_REGION \
--location=REGION \
--version=VERSION \
--admin-users=YOUR_EMAIL_ADDRESS \
--admin-users=ANOTHER_EMAIL_ADDRESS \
--service-address-cidr-blocks=10.96.0.0/20 \
--pod-address-cidr-blocks=192.168.0.0/16 \
--enable-control-plane-v2 \
--control-plane-ip-block 'gateway=CP_GATEWAY,netmask=CP_NETMASK,ips=CP_IP_ADDRESS_1 CP_HOST_1' \
--control-plane-vip=CONTROL_PLANE_VIP \
--ingress-vip=INGRESS_VIP \
--ingress-http-node-port=INGRESS_HTTP_NODE_PORT \
--ingress-https-node-port=INGRESS_HTTPS_NODE_PORT \
--static-ip-config-ip-blocks='gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1 HOST_1;IP_ADDRESS_2 HOST_2;IP_ADDRESS_3 HOST_3;IP_ADDRESS_4 HOST_4' \
--dns-servers=DNS_SERVER_1 \
--ntp-servers=NTP_SERVER_1
Ganti kode berikut:
-
USER_CLUSTER_NAME: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:- berisi maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
-
FLEET_HOST_PROJECT_ID: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin didaftarkan. Setelah dibuat, cluster pengguna akan otomatis didaftarkan ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat. -
ADMIN_CLUSTER_NAME: Nama cluster admin yang mengelola cluster pengguna. Dalam flag--admin-cluster-membership, Anda dapat menggunakan nama cluster yang ditentukan sepenuhnya, yang memiliki format berikut:projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAMEAtau, Anda dapat menetapkan
--admin-cluster-membershipke nama cluster admin, seperti dalam contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan--admin-cluster-membership-projectdan lokasi dengan--admin-cluster-membership-location. Lokasi cluster admin adalahglobalatau region Google Cloud . Jika Anda perlu menemukan region, jalankangcloud container fleet memberships list. -
REGION: Region Google Cloud tempat GKE On-Prem API (gkeonprem.googleapis.com), layanan Fleet (gkehub.googleapis.com), dan layanan Connect (gkeconnect.googleapis.com) berjalan. Tentukanus-west1atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat penyimpanan hal berikut:- 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 bersama-sama mengidentifikasi cluster secara unik di Google Cloud.
-
VERSION: Versi Google Distributed Cloud untuk cluster pengguna Anda. -
YOUR_EMAIL_ADDRESSdanANOTHER_EMAIL_ADDRESS: Jika Anda tidak menyertakan flag--admin-users, sebagai pembuat cluster, secara default Anda akan diberi hak istimewa admin cluster. Namun, jika Anda menyertakan--admin-usersuntuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan perlu menyertakan alamat email Anda dan alamat email administrator lain. Misalnya, untuk menambahkan dua administrator:--admin-users=sara@example.com \ --admin-users=amal@example.comSaat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-adminKubernetes, yang memberikan akses penuh ke setiap resource di cluster di semua namespace.
-
SERVICE_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Service di cluster Anda. Harus minimal rentang /24.Contoh:
--service-address-cidr-blocks=10.96.0.0/20 -
POD_CIDR_BLOCK: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Harus minimal rentang /18.Contoh:
--pod-address-cidr-blocks=192.168.0.0/16
CONTROL_PLANE_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi pada load balancer untuk server Kubernetes API cluster pengguna.Contoh:
--control-plane-vip=203.0.113.3INGRESS_VIP: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy ingress.Contoh:
--ingress-vip=203.0.113.4INGRESS_HTTP_NODE_PORT: NilainodePortuntuk traffic HTTP ke proxy ingress (seperti30243).INGRESS_HTTPS_NODE_PORT: NilainodePortuntuk traffic HTTPS ke proxy ingress (seperti30879).
-
--static-ip-config-ip-blocks: Tentukan gateway default, subnet mask, dan daftar alamat IP statis untuk worker node di cluster pengguna. Nilai untuk flag memiliki format berikut:--static-ip-config-ip-blocks 'gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1;IP_ADDRESS_2 HOST_2;...'
Nilai memiliki segmen yang dimulai dengan kata kunci
gateway,netmask, danips. Pisahkan segmen dengan koma.Perhatikan hal berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan kecuali di antara alamat IP dan nama host.
Dalam daftar alamat IP:
- Anda dapat menentukan alamat IP individual atau blok alamat IP CIDR.
- Pisahkan setiap alamat IP atau blok CIDR dengan titik koma.
- Untuk alamat IP individual, Anda dapat menentukan nama host setelah alamat IP secara opsional. Pisahkan alamat IP dan nama host dengan spasi. Jika Anda tidak menentukan nama host, Google Distributed Cloud akan menggunakan nama VM dari vSphere sebagai nama host.
- Jika Anda menentukan blok CIDR, jangan tentukan nilai untuk nama host.
Contoh:
--static-ip-config-ip-blocks 'gateway=172.16.23.254,netmask=255.255.252.0,ips=172.16.20.10;172.16.20.11 host2;172.16.20.12/30'
-
DNS_SERVER: Daftar alamat IP server DNS yang dipisahkan koma untuk VM. -
DNS_SEARCH_DOMAIN: Daftar domain penelusuran DNS yang dipisahkan koma untuk digunakan host. Domain ini digunakan sebagai bagian dari daftar penelusuran domain.Contoh:
--dns-search-domains example.com,examplepetstore.com
-
NTP_SERVER: Daftar alamat IP server waktu yang dipisahkan koma untuk digunakan VM.
Flag bidang kontrol
Jika Anda ingin menggunakan nilai non-default untuk konfigurasi bidang kontrol, sertakan satu atau beberapa flag berikut:
--cpus=vCPUS: Jumlah vCPU (minimum 4) untuk setiap node bidang kontrol untuk cluster pengguna Anda. Jika tidak ditentukan, defaultnya adalah 4 vCPU.--memory=MEMORY: Ukuran memori dalam mebibyte (MiB) untuk setiap node bidang kontrol untuk cluster pengguna Anda. Nilai minimumnya adalah 8192 dan harus berupa kelipatan 4. Jika tidak ditentukan, nilai defaultnya adalah 8192.--replicas=NODES: Jumlah node bidang kontrol untuk cluster pengguna Anda. Misalnya, Anda dapat memilih 1 node bidang kontrol untuk lingkungan pengembangan dan 3 node bidang kontrol untuk ketersediaan tinggi (HA), lingkungan produksi.--enable-auto-resize: Jika Anda ingin mengaktifkan pengubahan ukuran otomatis node bidang kontrol untuk cluster pengguna, sertakan--enable-auto-resize. Mengubah ukuran berarti resource vCPU dan memori yang ditetapkan ke node akan disesuaikan secara otomatis. Jika diaktifkan, node bidang kontrol untuk cluster pengguna akan diubah ukurannya sesuai dengan jumlah worker node di cluster pengguna. Jadi, saat Anda menambahkan lebih banyak worker node ke cluster pengguna, ukuran node bidang kontrol akan bertambah.--enable-control-plane-v2: Untuk mengaktifkan Controlplane V2, yang kami rekomendasikan, sertakan flag ini. Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna akan berjalan di satu atau beberapa node dalam cluster pengguna itu sendiri. Pada versi 1.30 dan yang lebih tinggi, Controlplane V2 diperlukan.Saat mengaktifkan Controlplane V2, Anda juga harus menentukan flag berikut:
--dns-servers=DNS_SERVER_1,...: Daftar alamat IP server DNS yang dipisahkan koma untuk VM.--ntp-servers=NTP_SERVER_1,...: Daftar alamat IP server waktu yang dipisahkan koma untuk digunakan VM.--control-plane-ip-block, yang memiliki format berikut:--control-plane-ip-block 'gateway=CP_GATEWAY,netmask=CP_NETMASK,ips=CP_IP_ADDRESS_1;CP_IP_ADDRESS_2 CP_HOST_2'
Nilai memiliki segmen yang dimulai dengan kata kunci
gateway,netmask, danips. Pisahkan segmen dengan koma.Perhatikan hal berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
Spasi kosong tidak diizinkan kecuali di antara alamat IP dan nama host.
Dalam daftar alamat IP:
Anda dapat menentukan alamat IP individual atau blok alamat IP CIDR.
Pisahkan setiap alamat IP atau blok CIDR dengan titik koma.
Untuk alamat IP individual, Anda dapat menentukan nama host setelah alamat IP secara opsional. Pisahkan alamat IP dan nama host dengan spasi.
Jika Anda menentukan blok CIDR, jangan tentukan nilai untuk nama host.
Contoh:
--control-plane-ip-block 'gateway=192.168.0.1,netmask=255.0.0.0,ips=192.168.1.1;192.168.1.2 hostname-2;192.168.2.2/28`
Opsional:
--dns-search-domains=DNS_SEARCH_DOMAIN_1,...: Daftar domain penelusuran DNS yang dipisahkan koma untuk digunakan host. Domain ini digunakan sebagai bagian dari daftar penelusuran domain.Contoh:
--dns-search-domains example.com,examplepetstore.com
Untuk mengetahui daftar lengkap flag dan deskripsinya, lihat referensi gcloud CLI.
Flag vSphere
Tentukan flag opsional berikut jika diperlukan:
--disable-aag-config: Jika Anda tidak menyertakan flag ini, aturan anti-afinitas VMware Distributed Resource Scheduler (DRS) akan otomatis dibuat untuk node cluster pengguna, sehingga node tersebut tersebar di setidaknya 3 host fisik di pusat data Anda. Pastikan lingkungan vSphere Anda memenuhi persyaratan. Jika cluster Anda tidak memenuhi persyaratan, sertakan flag ini.--disable-vsphere-csi: Jika Anda tidak menyertakan flag ini, komponen vSphere Container Storage Interface (CSI) akan di-deploy di cluster pengguna. Driver CSI berjalan di cluster Kubernetes native yang di-deploy di vSphere untuk menyediakan persistent volume di penyimpanan vSphere. Untuk mengetahui informasi selengkapnya, lihat Menggunakan driver Antarmuka Penyimpanan Container vSphere. Jika Anda tidak ingin men-deploy komponen CSI, sertakan flag ini.Untuk mengetahui daftar lengkap flag dan deskripsinya, lihat referensi gcloud CLI
Memantau progres pembuatan cluster
Output dari perintah pembuatan cluster mirip dengan berikut ini:
Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
Dalam contoh output, string
operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179adalahOPERATION_IDdari operasi yang berjalan lama. Anda dapat mengetahui status operasi dengan perintah berikut:gcloud container vmware operations describe OPERATION_ID \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION
Untuk mengetahui informasi selengkapnya, lihat operasi gcloud container vmware.
Diperlukan waktu 15 menit atau lebih untuk membuat cluster pengguna. Anda dapat melihat cluster di konsol Google Cloud di halaman cluster GKE.
Membuat node pool
Setelah cluster dibuat, Anda harus membuat minimal satu node pool sebelum men-deploy workload.
gcloud container vmware node-pools create NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION \ --image-type=IMAGE_TYPE \ --boot-disk-size=BOOT_DISK_SIZE \ --cpus=vCPUS \ --memory=MEMORY \ --replicas=NODES \ --enable-load-balancer
Ganti kode berikut:
NODE_POOL_NAME: Nama pilihan Anda untuk node pool. Nama harus:- berisi maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
USER_CLUSTER_NAME: Nama cluster pengguna yang baru dibuat.FLEET_HOST_PROJECT_ID: ID project tempat cluster didaftarkan.REGION: Region Google Cloud yang Anda tentukan saat membuat cluster.IMAGE_TYPE: Jenis OS image yang akan dijalankan di VM dalam node pool. Tetapkan ke salah satu opsi berikut:ubuntu_cgv2ataucos_cgv2.BOOT_DISK_SIZE: Ukuran boot disk dalam gibibyte (GiB) untuk setiap node di pool. Ukuran minimumnya adalah 40 GiB.vCPUs: Jumlah vCPU untuk setiap node di node pool. Jumlah minimum adalah 4.MEMORY: Ukuran memori dalam mebibyte (MiB) untuk setiap node di pool. Nilai minimumnya adalah 8192 MiB per worker node cluster pengguna dan nilainya harus kelipatan 4.NODES: Jumlah node di node pool. Jumlah minimumnya adalah 3.Jika Anda menggunakan MetalLB sebagai load balancer, sertakan
--enable-load-balancerjika Anda ingin mengizinkan speaker MetalLB berjalan di node dalam pool. MetalLB harus diaktifkan di setidaknya satu node pool. Jika tidak menyertakan flag ini, Anda harus membuat node pool lain untuk digunakan MetalLB.Untuk mengetahui informasi tentang flag opsional, lihat Menambahkan node pool dan referensi gcloud CLI.
Contoh perintah gcloud
MetalLB & DHCP
gcloud container vmware clusters create user-cluster-1 \
--project=example-project-12345 \
--location=us-west1 \
--admin-cluster-membership=projects/example-project-12345/locations/us-west1/memberships/admin-cluster-1 \
--version=1.36.200-gke.118 \
--admin-users=sara@example.com \
--admin-users=amal@example.com \
--enable-dhcp \
--service-address-cidr-blocks=10.96.0.0/20 \
--pod-address-cidr-blocks=192.168.0.0/16 \
--metal-lb-config-address-pools='pool=lb-pool-1,manual-assign=False,avoid-buggy-ips=True,addresses=192.0.2.0/26;pool=lb-ingress-vip-pool,manual-assign=True,addresses=198.51.100.1/32' \
--enable-control-plane-v2 \
--control-plane-vip=203.0.113.1 \
--ingress-vip=198.51.100.1
MetalLB & IP statis
gcloud container vmware clusters create user-cluster-3 \
--project=example-project-12345 \
--location=europe-west1 \
--admin-cluster-membership=projects/example-project-12345/locations/global/memberships/admin-cluster-1 \
--version=1.36.200-gke.118 \
--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.36.200-gke.118 \
--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
Dapatkan nama dan lokasi keanggotaan fleet cluster admin Anda:
gcloud container fleet memberships list \ --project=FLEET_HOST_PROJECT_IDGanti
FLEET_HOST_PROJECT_IDdengan ID project tempat cluster admin terdaftar.Outputnya mirip dengan hal berikut ini:
NAME EXTERNAL_ID LOCATION admin-cluster-1 bb7803b4-8438-4b22-859f-4559b4b29072 global admin-cluster-2 ee16ee2b-6ec0-49fc-9413-3c89cbc70854 global admin-cluster-3 fc2b7ef5-39ff-4b63-b919-04c5adc67be4 us-west1
Lokasi menentukan tempat layanan Fleet dan Connect berjalan. Cluster admin yang dibuat sebelum versi 1.28 dikelola oleh layanan Fleet dan Connect global. Di versi 1.28 dan yang lebih baru, Anda dapat menentukan
globalatau region Google Cloud saat membuat cluster.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=REGIONGanti kode berikut:
ADMIN_CLUSTER_NAME: Nama cluster admin.FLEET_HOST_PROJECT_ID: ID project tempat cluster admin didaftarkan.ADMIN_CLUSTER_REGION: Region keanggotaan fleet cluster admin. Ini bersifat global atau region Google Cloud. Gunakan lokasi untuk cluster admin dari outputgcloud container fleet memberships list.REGION: Region Google Cloud yang akan Anda gunakan saat membuat cluster. Ini adalah region tempat GKE On-Prem API serta layanan Fleet dan Connect berjalan. Tentukanus-west1atau 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.581Perintah ini juga menghasilkan penjelasan tentang versi yang dapat Anda gunakan untuk pembuatan atau upgrade cluster pengguna. Versi yang diizinkan dianotasi dengan
isInstalled: true, yang berarti cluster admin memiliki komponen khusus versi yang diperlukan untuk mengelola cluster pengguna versi tersebut. Jika Anda ingin menggunakan versi yang diinstal di cluster admin, langsung ke bagian Contoh untuk membuat cluster pengguna.
Menginstal versi lain
Cluster admin dapat mengelola cluster pengguna di berbagai versi. Output perintah query-version-config mencantumkan versi lain yang dapat Anda gunakan saat membuat cluster. Jika ingin membuat cluster pengguna yang merupakan
versi berbeda dari cluster admin, Anda perlu mendownload dan men-deploy
komponen yang diperlukan cluster admin untuk mengelola cluster pengguna versi tersebut,
sebagai berikut:
gcloud container vmware admin-clusters update ADMIN_CLUSTER_NAME \
--project=FLEET_HOST_PROJECT_ID \
--location=REGION \
--required-platform-version=VERSIONGanti VERSION dengan salah satu versi yang tercantum dalam
output perintah query-version-config.
Perintah ini akan mendownload versi komponen yang Anda tentukan di
--required-platform-version ke cluster admin, lalu men-deploy
komponen tersebut. Sekarang Anda dapat membuat cluster pengguna dengan versi yang ditentukan.
Jika Anda menjalankan ulang gcloud container vmware clusters query-version-config,
versi yang Anda tentukan akan dianotasi dengan isInstalled: true.
Contoh
Anda dapat menggunakan contoh konfigurasi dasar berikut untuk membuat cluster pengguna dengan load balancer MetalLB yang dipaketkan dan satu node pool menggunakan penyedia Google untuk Terraform.
Saat Anda membuat cluster pengguna, file konfigurasi Terraform harus berisi setidaknya satu resource google_gkeonprem_vmware_node_pool untuk membuat node pool. Namun, Terraform tidak dapat membuat resource node pool, hingga Terraform menyelesaikan semua operasi pada resource cluster pengguna
google_gkeonprem_vmware_cluster upstream. Untuk menerapkan dependensi ini, sertakan pernyataan depends_on dalam resource google_gkeonprem_vmware_node_pool seperti yang ditunjukkan dalam contoh file main.tf berikut. Untuk mengetahui informasi selengkapnya tentang penggunaan depends_on untuk menentukan dependensi resource, lihat dokumentasi resource Terraform.
Untuk mempelajari contoh ini lebih lanjut, klik link berikut:
main.tf untuk membuat cluster pengguna
Contoh main.tf berisi modul dan resource berikut:
enable_google_apis_primary: mengaktifkan Google API yang diperlukan dalam project. Anda hanya perlu mengaktifkan API dalam project satu kali. Jika API telah diaktifkan di project, Anda tidak perlu menyertakannya dalam file konfigurasi Terraform.google_project_service: mengaktifkan GKE On-Prem API dalam project. Seperti Google API lain yang diperlukan, Anda hanya perlu mengaktifkan GKE On-Prem API sekali.gcloud_update_admin_cluster_platform_controller: mengupdate pengontrol platform di cluster admin Anda. Hal ini diperlukan untuk upgrade cluster pengguna. Jika cluster admin sudah menggunakan versi yang benar, modul ini tidak akan mengubah apa pun. Meskipun modul ini bersifat opsional, pembuatan cluster pengguna akan gagal jika ada ketidakcocokan versi antara versi pengontrol platform di cluster admin dan versi yang Anda tentukan untuk cluster pengguna.google_gkeonprem_vmware_cluster: membuat cluster pengguna. Resource ini wajib diisi. Cluster pengguna terdaftar di GKE On-Prem API dan terdaftar ke fleet yang sama dengan cluster admin. Contoh ini membuat cluster menggunakan MetalLB yang dipaketkan. Dokumentasi referensigoogle_gkeonprem_vmware_clustermemberikan contoh cara mengonfigurasi load balancer manual.google_gkeonprem_vmware_node_pool: membuat node pool. Resource ini diperlukan dalam file konfigurasi Terraform. Cluster pengguna yang baru dibuat harus memiliki setidaknya satu node pool untuk beralih ke status responsif.
Untuk mengetahui informasi selengkapnya dan contoh lainnya, lihat
dokumentasi referensi google_gkeonprem_vmware_cluster.
Menetapkan variabel di terraform.tfvars
Contoh ini menyediakan contoh file variabel untuk diteruskan ke main.tf, yang
menunjukkan cara mengonfigurasi load balancer MetalLB yang dipaketkan dan mengaktifkan
node cluster Anda untuk mendapatkan alamat IP-nya dari server DHCP yang Anda
sediakan.
Buat clone repositori
anthos-samplesdan ubah ke direktori tempat contoh Terraform berada:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-onprem-terraform/avmw_user_cluster_metallbBuat salinan file
terraform.tfvars.sample:cp terraform.tfvars.sample terraform.tfvarsUbah nilai parameter di
terraform.tfvars.Daftar berikut menjelaskan variabel:
project_id: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin didaftarkan. Setelah cluster pengguna dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.region: Region Google Cloud tempat GKE On-Prem API (gkeonprem.googleapis.com), layanan Fleet (gkehub.googleapis.com), dan layanan Connect (gkeconnect.googleapis.com) berjalan. Tentukanus-west1atau wilayah yang didukung.admin_cluster_name: Nama cluster admin yang mengelola cluster pengguna. Contoh ini mengasumsikan bahwa cluster admin menggunakan global sebagai region. Jika Anda memiliki cluster admin regional:- Buka
main.tfdi editor teks. - Telusuri
admin_cluster_membership, yang terlihat seperti berikut:
admin_cluster_membership = "projects/${var.project_id}/locations/global/memberships/${var.admin_cluster_name}"- Ubah
globalke region yang digunakan cluster admin, lalu simpan file.
- Buka
on_prem_version: Versi Google Distributed Cloud untuk cluster pengguna Anda.admin_user_emails: Daftar alamat email pengguna yang akan diberi hak istimewa administratif di cluster. Pastikan untuk menambahkan alamat email Anda jika Anda ingin mengelola cluster.Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan role-based access control (RBAC) Kubernetes ke cluster untuk memberi pengguna admin peran
clusterrole/cluster-adminKubernetes, yang memberikan akses penuh ke setiap resource di cluster di semua namespace. Hal ini juga memungkinkan pengguna login ke konsol menggunakan Google Identity mereka.cluster_name: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Nama harus:- berisi maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
control_plane_node_cpus: Jumlah vCPU untuk setiap node bidang kontrol untuk cluster pengguna Anda. Jumlah minimumnya adalah 4 vCPU.control_plane_node_memory: Ukuran memori dalam mebibyte (MiB) untuk setiap bidang kontrol untuk cluster pengguna Anda. Nilai minimumnya adalah 8192 dan harus berupa kelipatan 4.control_plane_node_replicas: Jumlah node bidang kontrol untuk cluster pengguna Anda. Misalnya, Anda dapat memasukkan 1 node bidang kontrol untuk lingkungan pengembangan dan 3 node bidang kontrol untuk lingkungan produksi dengan ketersediaan tinggi (HA).control_plane_vip: Alamat IP virtual (VIP) yang telah Anda pilih untuk dikonfigurasi pada load balancer untuk server Kubernetes API cluster pengguna.ingress_vip: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy ingress.lb_address_pools: Daftar peta yang menentukan kumpulan alamat yang akan digunakan oleh load balancer MetalLB. VIP ingress harus berada di salah satu pool ini. Tentukan nilai berikut:name: Nama untuk pool.addresses: Rentang alamat dalam notasi CIDR atau format rentang dengan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (seperti untuk VIP ingress), gunakan /32 dalam notasi CIDR, misalnya:192.0.2.1/32.
Ganti contoh alamat IP dengan nilai Anda, dan tambahkan kumpulan alamat tambahan jika diperlukan.
Simpan perubahan di
terraform.tfvars. Jika Anda tidak ingin membuat perubahan opsional apa pun padamain.tf, lanjutkan ke bagian berikutnya, Membuat cluster dan satu node pool.
Mengonfigurasi Controlplane V2
Di versi 1.30 dan yang lebih tinggi, Anda harus mengaktifkan Controlplane V2. File main.tf
dalam contoh tidak mengaktifkan Controlplane V2. Anda harus mengubah
main.tf untuk mengaktifkan Controlplane V2 dan menambahkan alamat IP untuk
gateway, netmask, dan node bidang kontrol. Sebelum melakukan perubahan, buat
cadangan main.tf:
cp main.tf main.tf.bak
Untuk mengonfigurasi Controlplane V2, lakukan perubahan berikut pada main.tf:
Tambahkan baris berikut ke blok
resource:enable_control_plane_v2 = "true"Tambahkan peta
control_plane_v2_configke bloknetwork_config, misalnya:control_plane_v2_config { control_plane_ip_block { netmask = "255.255.252.0" gateway = "10.250.71.254" ips { ip = "10.250.68.54" hostname = "cpv2-vm1" } ips { ip = "10.250.68.128" hostname = "cpv2-vm2" } ips { ip = "10.250.71.50" hostname = "cpv2-vm3" } } }Ganti nilai untuk
netmaskdangatewaydengan alamat IP dari jaringan Anda. Gantiipdanhostnamedengan alamat IP node bidang kontrol Anda.
Opsional: Mengaktifkan cluster lanjutan
Secara default di versi 1.32 dan yang lebih tinggi, cluster pengguna yang dibuat menggunakan Terraform tidak mengaktifkan cluster lanjutan. Jika Anda ingin mengaktifkan cluster lanjutan, tambahkan
kolom level teratas berikut ke main.tf:
enable_advanced_cluster = true
Pastikan untuk meninjau Perbedaan saat menjalankan cluster lanjutan sebelum mengaktifkan cluster lanjutan.
Opsional: Mode alamat IP worker node
Bagian ini menjelaskan beberapa perubahan konfigurasi opsional yang dapat Anda
lakukan di main.tf. Sebelum melakukan perubahan, buat cadangan main.tf:
cp main.tf main.tf.bak
Secara default, main.tf mengonfigurasi cluster untuk menggunakan server DHCP yang Anda sediakan guna menetapkan alamat IP ke worker node cluster. DHCP dikonfigurasi dengan menyertakan peta dhcp_config dalam blok network_config. Jika Anda ingin menyediakan alamat IP statis untuk worker node, lakukan
perubahan berikut pada main.tf:
Ganti blok
network_configdan sertakan blokstatic_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" } } } }Ganti nilai berikut dengan nilai Anda:
service_address_cidr_blocks: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Service di cluster Anda. Harus minimal rentang /24.pod_address_cidr_blocks: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Harus minimal rentang /18.dns_servers: Daftar alamat IP server DNS untuk VM.ntp_servers: Daftar alamat IP server waktu yang akan digunakan VM.Di blok
static_ip_config, ganti nilai untuknetmaskdangatewaydengan alamat untuk jaringan Anda. Gantiipdanhostnamedengan alamat IP dan nama host worker node Anda.
Membuat cluster dan satu node pool
Lakukan inisialisasi dan buat rencana Terraform:
terraform initTerraform menginstal library yang diperlukan, seperti penyedia Google Cloud .
Tinjau konfigurasi dan buat perubahan jika diperlukan:
terraform planTerapkan Terraform plan untuk membuat cluster pengguna:
terraform applyDiperlukan waktu sekitar 15 menit atau lebih untuk membuat cluster pengguna, dan 15 menit lagi untuk membuat node pool. Anda dapat melihat cluster di konsol Google Cloud di halaman cluster GKE.
Opsional: Menjalankan alat command line sebelum pembuatan resource
Jika perlu, Anda dapat menjalankan alat command line seperti gcloud CLI dan
gkectl untuk melakukan tugas penyiapan atau konfigurasi sebelum pembuatan resource. Anda menentukan command line yang akan dijalankan dalam file konfigurasi Terraform menggunakan penyedia local-exec, yang memungkinkan Anda menggunakan kembali variabel Terraform yang ditentukan.
Contoh berikut menunjukkan cara mengubah main.tf untuk menjalankan perintah gkectl prepare sebelum pembuatan cluster:
resource "null_resource" "gkectl_prepare" {
provisioner "local-exec" {
command = "gkectl prepare --kubeconfig=${var.kubeconfig} --cluster-name=${var.cluster_name} --vcenter-username=${var.vcenter_username} --vcenter-password=${var.vcenter_password} --vcenter-address=${var.vcenter_address} --datacenter=${var.datacenter} --datastore=${var.datastore} --network=${var.network} --os-image=${var.os_image} --service-account-key-file=${var.service_account_key_file} --location=${var.location}"
working_dir = path.module # Important: Set working directory
environment = {
# Optional: set environment variables if needed.
# Example: GOOGLE_APPLICATION_CREDENTIALS = "/path/to/your/credentials.json"
}
}
}
resource "google_gkeonprem_vmware_cluster" "cluster" {
# ... your cluster configuration ...
# Ensure this depends on the null_resource
depends_on = [null_resource.gkectl_prepare]
# ... rest of your cluster configuration ...
location = var.location
name = var.cluster_name
# ... other required fields ...
}
Pemecahan masalah
Lihat Memecahkan masalah pembuatan dan upgrade cluster.