Di Google Distributed Cloud, workload Anda berjalan di satu atau beberapa cluster pengguna. Dokumen ini menunjukkan cara membuat cluster pengguna. Jika Anda ingin menggunakan domain topologi, lihat Membuat cluster pengguna untuk digunakan dengan domain topologi.
Halaman ini ditujukan untuk Admin, Arsitek, dan Operator yang menyiapkan, memantau, dan mengelola infrastruktur teknologi. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten, lihat Peran dan tugas pengguna GKE umum. Google Cloud
Pada versi 1.33 dan yang lebih baru, semua cluster baru dibuat sebagai cluster lanjutan. Pastikan untuk meninjau Perbedaan saat menjalankan cluster lanjutan.
Ada beberapa alat yang dapat Anda gunakan untuk membuat cluster pengguna:
gkectl
- Google Cloud console
Google Cloud CLI
- Terraform
Tiga alat ini (konsol, gcloud CLI, dan Terraform) adalah klien GKE On-Prem API.
Untuk mendapatkan panduan tentang alat yang mungkin ingin Anda gunakan, lihat Memilih alat untuk mengelola siklus proses cluster.
Sebelum memulai
Jika Anda berencana menggunakan
gkectl
untuk membuat cluster pengguna, pastikan Anda telah menyiapkan dan dapat login ke workstation admin seperti yang dijelaskan dalam Membuat workstation admin.Pastikan workstation admin Anda memiliki
gkectl
versi yang diperlukan. Biasanya, Anda menggunakan versigkectl
yang sama dengan versi yang akan digunakan saat membuat cluster. Anda menentukan versi cluster di kolomgkeOnPremVersion
dalam file konfigurasi cluster. Aturan versi berikut diterapkan selama pembuatan cluster:Versi minor
gkectl
tidak boleh lebih rendah dari versi minor untuk cluster. Misalnya, membuat cluster 1.30 menggunakan versi 1.29gkectl
tidak diizinkan. Versi patch tidak penting. Misalnya, Anda dapat menggunakangkectl
versi 1.29.0-gke.1456 untuk membuat cluster dengan versi patch yang lebih tinggi, seperti 1.29.1000-gke.94.Versi minor
gkectl
tidak boleh lebih dari dua versi minor lebih tinggi dari versi cluster. Misalnya, jika Anda membuat cluster 1.28, versigkectl
dapat berupa 1.29 atau 1.30. Namun, Anda tidak dapat menggunakangkectl
versi 1.31 karena versi tersebut tiga versi minor lebih tinggi daripada versi cluster.
Jika perlu, lihat Mendownload
gkectl
untuk mendapatkangkectl
versi yang didukung.Jika Anda belum melakukannya, siapkan resource Google Cloud seperti yang dijelaskan dalam dokumen berikut:
Saat menyiapkan project host fleet, perhatikan pilihan alat Anda, karena jika Anda telah memilih salah satu klien GKE On-Prem API, ada API tambahan yang harus Anda aktifkan. Untuk mengetahui daftar API, lihat Mengaktifkan API di project host fleet.
Sebelum membuat cluster pengguna, Anda harus memiliki cluster admin untuk mengelola cluster pengguna. Jika Anda belum melakukannya, buat workstation admin dan cluster admin.
Tentukan versi cluster pengguna yang ingin Anda instal. Saat Anda membuat cluster pengguna, biasanya Anda menginstal versi yang cocok dengan versi cluster admin. Jika Anda ingin menginstal versi lain pada cluster pengguna, lihat Aturan versi.
Jika Anda berencana menginstal versi 1.30 atau yang lebih tinggi, Controlplane V2 diperlukan. Meskipun Anda menginstal 1.29 atau yang lebih rendah, sebaiknya aktifkan Controlplane V2. Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node di cluster pengguna itu sendiri. Alternatifnya adalah membuat cluster pengguna yang menggunakan kubeception. Dalam kasus kubeception, bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node di cluster admin.
Tinjau dokumen perencanaan alamat IP, dan pastikan Anda memiliki alamat IP yang cukup.
Tinjau ringkasan load balancing dan tinjau kembali keputusan Anda tentang jenis load balancer yang ingin Anda gunakan. Anda dapat menggunakan load balancer MetalLB yang dibundel, atau mengonfigurasi load balancer pilihan Anda secara manual. Untuk load balancing manual, Anda harus menyiapkan load balancer sebelum membuat cluster pengguna.
Pikirkan berapa banyak node pool yang Anda butuhkan dan sistem operasi mana yang ingin Anda jalankan di setiap pool.
Pikirkan apakah Anda ingin menggunakan cluster vSphere terpisah untuk cluster admin dan cluster pengguna, dan apakah Anda ingin menggunakan pusat data terpisah. Pikirkan juga apakah Anda ingin menggunakan instance vCenter Server yang terpisah.
Pada versi 1.29 dan yang lebih baru, pemeriksaan pra-penerbangan sisi server diaktifkan secara default. Pemeriksaan pra-penerbangan sisi server memerlukan aturan firewall tambahan. Di Firewall rules for admin clusters, telusuri "Preflight checks" dan pastikan semua aturan firewall yang diperlukan telah dikonfigurasi.
Dengan pemeriksaan pra-penerbangan sisi server, saat Anda membuat cluster pengguna menggunakan
gkectl
, pemeriksaan pra-penerbangan dijalankan di cluster admin, bukan secara lokal di workstation admin. Pemeriksaan pra-penerbangan sisi server juga dijalankan jika Anda menggunakan konsol, Google Cloud CLI, atau Terraform untuk membuat cluster pengguna. Google Cloud
Buat cluster pengguna dengan alat pilihan Anda
Bagian ini memberikan langkah-langkah untuk membuat cluster pengguna menggunakan gkectl
, konsol, gcloud CLI, dan Terraform.
gkectl
Ringkasan prosedur
Berikut adalah langkah-langkah utama yang terlibat dalam penggunaan gkectl
untuk membuat cluster pengguna:
- Isi file konfigurasi Anda
- Tentukan detail untuk cluster baru Anda dengan menyelesaikan 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 berlaku.
- Jalankan
gkectl prepare
.
- Membuat cluster pengguna
- Jalankan
gkectl create cluster
untuk membuat cluster seperti yang ditentukan dalam file konfigurasi Anda.
- Pastikan cluster pengguna Anda berjalan
- Gunakan
kubectl
untuk melihat node cluster Anda.
Di akhir prosedur ini, Anda akan memiliki cluster pengguna yang berjalan tempat Anda dapat men-deploy beban kerja.
Jika Anda menggunakan Kontrol Layanan VPC, Anda mungkin melihat error saat menjalankan beberapa perintah gkectl
, seperti "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services"
. Untuk menghindari error ini, tambahkan
parameter --skip-validation-gcp
ke perintah Anda.
Isi file konfigurasi Anda
Jika Anda menggunakan gkeadm
untuk membuat workstation admin, gkeadm
akan membuat template untuk file konfigurasi cluster pengguna Anda yang bernama user-cluster.yaml
.
Selain itu, gkeadm
mengisi beberapa kolom untuk Anda.
Jika Anda tidak menggunakan gkeadm
untuk membuat workstation admin, Anda dapat menggunakan
gkectl
untuk membuat template bagi file konfigurasi cluster pengguna.
Untuk membuat template file konfigurasi cluster pengguna:
gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION
Ganti kode berikut:
OUTPUT_FILENAME
: jalur pilihan Anda untuk
template yang dihasilkan. Jika Anda menghilangkan tanda ini, gkectl
akan memberi nama file
user-cluster.yaml
dan menempatkannya di direktori saat ini.
VERSION
: nomor versi yang diinginkan. Contoh: gkectl create-config cluster --gke-on-prem-version=1.33.0-gke.799
.
Pelajari file konfigurasi dengan memindai dokumen file konfigurasi cluster pengguna. Sebaiknya buka dokumen ini di tab atau jendela terpisah, karena Anda akan merujuknya saat menyelesaikan langkah-langkah berikut.
name
Tetapkan kolom
name
ke nama pilihan Anda untuk cluster pengguna.
gkeOnPremVersion
Kolom ini sudah diisi untuk Anda. Menentukan versi Google Distributed Cloud. Misalnya, 1.33.0-gke.799
.
enableAdvancedCluster
Pada versi 1.31, jika Anda ingin mengaktifkan fitur cluster lanjutan, tetapkan
enableAdvancedCluster
ke true
. Kolom ini harus disetel ke true
jika cluster admin memiliki
cluster lanjutan yang diaktifkan.
Perhatikan perbedaan berikut antara versi:
Pada versi 1.31, fitur cluster lanjutan berada dalam pratinjau:
Anda dapat mengaktifkan cluster lanjutan pada saat pembuatan cluster untuk cluster 1.31 baru saja.
Setelah cluster lanjutan diaktifkan, Anda tidak akan dapat mengupgrade cluster ke 1.32. Aktifkan cluster lanjutan hanya di lingkungan pengujian.
Pada versi 1.32, fitur cluster lanjutan berstatus GA.
Secara default, cluster pengguna dibuat sebagai cluster lanjutan. Anda harus menetapkan
enableAdvancedCluster
kefalse
secara eksplisit jika ingin membuat cluster non-lanjutan.Untuk cluster yang mengaktifkan fitur cluster lanjutan, upgrade cluster didukung.
Pada versi 1.33 dan yang lebih baru, semua cluster dibuat sebagai cluster lanjutan. Jika Anda menyetel
enableAdvancedCluster
kefalse
, pembuatan cluster akan gagal.
enableControlplaneV2
Untuk membuat cluster pengguna yang mengaktifkan Controlplane V2, tetapkan
enableControlplaneV2
ke true
.
Jika Anda mengaktifkan cluster lanjutan,
Anda harus menyetel enableControlplaneV2
ke true
.
Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna berjalan di node dalam cluster pengguna itu sendiri. Sebaiknya Anda mengaktifkan Controlplane V2.
kubeception
Jika Anda menyetel kolom ini ke false
, cluster akan menggunakan
kubecetption.
Dengan kubeception, bidang kontrol untuk cluster pengguna berjalan di node dalam cluster admin.
Untuk cluster kubeception:
Tetapkan
enableControlplaneV2
kefalse
.Jangan isi bagian
controlPlaneIPBlock
.Tentukan alamat IP untuk node bidang kontrol cluster pengguna dalam file blok IP cluster admin.
enableDataplaneV2
Tetapkan
enableDataplaneV2
ke true
.
vCenter
Nilai yang Anda tetapkan di bagian vCenter
dari
file konfigurasi cluster admin
bersifat global. Artinya, kebijakan ini berlaku untuk cluster admin dan cluster pengguna terkait.
Untuk setiap cluster pengguna yang Anda buat, Anda memiliki opsi untuk mengganti beberapa nilai vCenter
global.
Untuk mengganti nilai vCenter
global, isi kolom yang relevan di bagian vCenter
file konfigurasi cluster pengguna Anda.
Khususnya, Anda dapat menggunakan cluster vSphere terpisah untuk cluster admin dan cluster pengguna, serta menggunakan pusat data terpisah untuk cluster admin dan cluster pengguna.
Menggunakan satu pusat data dan satu cluster vSphere
Opsi default adalah menggunakan satu pusat data dan satu cluster vSphere untuk
cluster admin dan cluster pengguna. Untuk opsi ini, jangan tetapkan nilai vCenter
apa pun dalam file konfigurasi cluster pengguna. Nilai vCenter
akan diwarisi dari cluster admin.
Menggunakan cluster vSphere terpisah
Jika Anda ingin membuat cluster pengguna yang berada di cluster vSphere-nya sendiri,
tentukan nilai untuk vCenter.cluster
dalam file konfigurasi cluster pengguna.
Jika cluster admin dan cluster pengguna Anda berada di cluster vSphere yang terpisah, keduanya dapat berada di pusat data yang sama atau pusat data yang berbeda.
Menggunakan pusat data vSphere terpisah
Cluster pengguna dan cluster admin dapat berada di pusat data yang berbeda. Dalam hal ini, keduanya juga berada di cluster vSphere yang terpisah.
Jika Anda menentukan vCenter.datacenter
dalam file konfigurasi cluster pengguna, Anda juga harus menentukan:
vCenter.networkName
vCenter.datastore
atauvCenter.storagePolicyName
vCenter.cluster
atauvCenter.resourcePool
Menggunakan akun vCenter terpisah
Cluster pengguna dapat menggunakan akun vCenter yang berbeda, dengan vCenter.credentials
yang berbeda, dari cluster admin. Akun vCenter untuk
admin cluster memerlukan akses ke pusat data admin cluster, sedangkan akun vCenter
untuk cluster pengguna hanya memerlukan akses ke pusat data cluster pengguna.
Menggunakan instance vCenter Server terpisah
Dalam situasi tertentu, sebaiknya buat cluster pengguna yang menggunakan instance vCenter Server-nya sendiri. Artinya, cluster admin dan cluster pengguna terkait menggunakan instance vCenter Server yang berbeda.
Misalnya, di lokasi edge, Anda mungkin ingin memiliki satu mesin fisik yang menjalankan vCenter Server dan satu atau beberapa mesin fisik yang menjalankan ESXi. Kemudian, Anda dapat menggunakan instance lokal vCenter Server untuk membuat hierarki objek vSphere, termasuk pusat data, cluster, kumpulan resource, datastore, dan folder.
Isi seluruh bagian
vCenter
file konfigurasi cluster pengguna Anda. Khususnya, tentukan nilai
untuk vCenter.address
yang berbeda dengan alamat Server vCenter yang Anda
tentukan dalam file konfigurasi cluster admin. Contoh:
vCenter: address: "vc-edge.example" datacenter: "vc-edge" cluster: "vc-edge-workloads" resourcePool: "vc-edge-pool datastore: "vc-edge-datastore caCertPath: "/usr/local/google/home/me/certs/edge-cacert.pem" credentials: fileRef: path: "credential.yaml" entry: "vCenter-edge" folder: "edge-vm-folder"
Isi juga kolom
network.vCenter.networkName
.
network
Tentukan cara Anda ingin agar node pekerja mendapatkan alamat IP-nya. Opsi yang tersedia adalah:
Dari server DHCP yang Anda siapkan sebelumnya. Tetapkan
network.ipMode.type
ke"dhcp"
.Dari daftar alamat IP statis yang Anda berikan. Tetapkan
network.ipMode.type
ke"static"
, lalu buat file blok IP yang menyediakan alamat IP statis. Untuk contoh file pemblokiran IP, lihat Contoh file konfigurasi yang sudah diisi.
Jika Anda telah memutuskan untuk menggunakan alamat IP statis untuk worker node, isi kolom
network.ipMode.ipBlockFilePath
.
Node bidang kontrol untuk cluster pengguna harus mendapatkan alamat IP dari daftar alamat statis yang Anda berikan. Hal ini terjadi meskipun node
pekerja Anda mendapatkan alamat dari server DHCP. Untuk menentukan alamat IP statis bagi node bidang kontrol, isi bagian network.controlPlaneIPBlock
. Jika Anda menginginkan cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP. Jika tidak, tentukan satu alamat IP.
Tentukan server DNS dan NTP dengan mengisi bagian hostConfig
. Server DNS dan NTP ini ditujukan untuk node bidang kontrol. Jika Anda menggunakan alamat IP statis untuk worker node, server DNS dan NTP ini juga ditujukan untuk worker node.
network.podCIDR dan network.serviceCIDR memiliki nilai yang sudah diisi sebelumnya yang dapat Anda biarkan tidak berubah kecuali jika bertentangan dengan alamat yang sudah digunakan di jaringan Anda. Kubernetes menggunakan rentang ini untuk menetapkan alamat IP ke Pod dan Layanan di cluster Anda.
Terlepas dari apakah Anda mengandalkan server DHCP atau menentukan daftar alamat IP statis, Anda harus memiliki alamat IP yang cukup untuk cluster pengguna. Untuk mengetahui penjelasan tentang jumlah alamat IP yang Anda perlukan, lihat Merencanakan alamat IP Anda.
loadBalancer
Sisihkan VIP untuk server Kubernetes API cluster pengguna Anda. Sisihkan
VIP lain untuk layanan ingress cluster pengguna Anda. Berikan VIP Anda sebagai
nilai untuk
loadBalancer.vips.controlPlaneVIP
dan
loadBalancer.vips.ingressVIP
.
Tentukan jenis load balancing yang ingin Anda gunakan. Opsinya adalah:
Load balancing yang dibundel MetalLB. Tetapkan
loadBalancer.kind
ke"MetalLB"
. Isi juga bagianloadBalancer.metalLB.addressPools
, dan tetapkanenableLoadBalancer
ketrue
untuk setidaknya satu kumpulan node. Untuk mengetahui informasi selengkapnya, lihat Load balancing gabungan dengan MetalLB.Load balancing manual. Tetapkan
loadBalancer.kind
ke"ManualLB"
, lalu 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 keluar, tetapkan
advancedNetworking
ke true
.
multipleNetworkInterfaces
Tentukan apakah Anda ingin mengonfigurasi beberapa antarmuka jaringan untuk Pod, dan tetapkan multipleNetworkInterfaces dengan tepat.
storage
Jika Anda ingin menonaktifkan deployment komponen vSphere CSI, tetapkan
storage.vSphereCSIDisabled
ke true
.
masterNode
Di bagian
masterNode
, Anda dapat menentukan jumlah node bidang kontrol yang diinginkan untuk cluster pengguna: tentukan 3
untuk cluster dengan ketersediaan tinggi (HA) atau 1
untuk cluster non-HA. Anda juga dapat menentukan penyimpanan data untuk node bidang kontrol dan apakah Anda ingin mengaktifkan pengubahan ukuran otomatis untuk node bidang kontrol.
Jika kolom
enableAdvancedCluster
adalah true
, Anda harus menetapkan kolom replicas
ke 3
. Hanya cluster pengguna HA yang didukung di cluster lanjutan.
Ingatlah bahwa Anda menentukan alamat IP untuk node bidang kontrol di bagian
network.controlPlaneIPBlock
.
nodePools
Kumpulan node adalah sekelompok node dalam cluster yang semuanya memiliki konfigurasi yang sama. Misalnya, node dalam satu kumpulan dapat menjalankan Windows dan node dalam kumpulan lain dapat menjalankan Linux.
Anda harus menentukan setidaknya satu kumpulan node dengan mengisi bagian
nodePools
.
Jika Anda mengaktifkan cluster lanjutan, tetapkan nodePools[i]osImageType
ke
ubuntu_cgroupv2
atau ubuntu_containerd
.
Untuk mengetahui informasi selengkapnya, lihat Node pool dan Membuat dan mengelola node pool.
antiAffinityGroups
Tetapkan
antiAffinityGroups.enabled
ke true
atau false
.
Kolom ini menentukan apakah Google Distributed Cloud membuat aturan anti-afinitas Distributed Resource Scheduler (DRS) untuk node pekerja Anda, sehingga node tersebut tersebar di setidaknya tiga host fisik di pusat data Anda.
stackdriver
Jika Anda ingin mengaktifkan
Cloud Logging dan Cloud Monitoring
untuk cluster Anda, isi bagian
stackdriver
.
Bagian ini wajib diisi secara default. Artinya, jika Anda tidak mengisi bagian ini, Anda harus menyertakan flag --skip-validation-stackdriver
saat menjalankan gkectl create cluster
.
Perhatikan persyaratan berikut untuk cluster baru:
ID di
stackdriver.projectID
harus sama dengan ID digkeConnect.projectID
dancloudAuditLogging.projectID
.Region Google Cloud yang ditetapkan di
stackdriver.clusterLocation
harus sama dengan region yang ditetapkan dicloudAuditLogging.clusterLocation
dangkeConnect.location
. Selain itu, jikagkeOnPremAPI.enabled
adalahtrue
, 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 1.28 dan yang lebih baru, Anda dapat secara opsional menentukan region tempat layanan Fleet dan Connect berjalan di gkeConnect.location
. Jika Anda tidak menyertakan kolom ini,
cluster akan menggunakan instance global dari layanan ini.
Jika Anda menyertakan gkeConnect.location
dalam file konfigurasi, region yang Anda tentukan harus sama dengan region yang dikonfigurasi di cloudAuditLogging.clusterLocation
, stackdriver.clusterLocation
, dan gkeOnPremAPI.location
. Jika region tidak sama, pembuatan cluster akan gagal.
gkeOnPremAPI
Di 1.16 dan yang lebih baru, jika GKE On-Prem API diaktifkan di projectGoogle Cloud , semua cluster dalam project akan terdaftar di GKE On-Prem API secara otomatis di region yang dikonfigurasi di stackdriver.clusterLocation
.
Region gkeOnPremAPI.location
harus sama dengan region yang ditentukan dalam
cloudAuditLogging.clusterLocation
, gkeConnect.location
(jika kolom disertakan dalam file konfigurasi Anda), dan stackdriver.clusterLocation
.
Jika Anda ingin mendaftarkan semua cluster dalam project di GKE On-Prem API, pastikan untuk melakukan langkah-langkah di bagian Sebelum memulai untuk mengaktifkan dan menggunakan GKE On-Prem API dalam project.
Jika Anda tidak ingin mendaftarkan cluster di GKE On-Prem API, sertakan bagian ini dan tetapkan
gkeOnPremAPI.enabled
kefalse
. 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.serviceAccountKeyPath
ke jalur yang sama denganstackdriver.serviceAccountKeyPath
.ID di
cloudAuditLogging.projectID
harus sama dengan ID digkeConnect.projectID
danstackdriver.projectID
.Region di
cloudAuditLogging.clusterLocation
harus sama dengan region yang ditetapkan digkeConnect.location
danstackdriver.clusterLocation
. Selain itu, jikagkeOnPremAPI.enabled
adalahtrue
, 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
cat user-cluster.yaml apiVersion: v1 kind: UserCluster name: "my-user-cluster" gkeOnPremVersion: 1.33.0-gke.799 enableControlplaneV2: true enableDataplaneV2: true network: hostConfig: dnsServers: - "203.0.113.2" - "198.51.100.2" ntpServers: - "216.239.35.4" ipMode: type: "static" ipBlockFilePath: "user-ipblock.yaml" serviceCIDR: 10.96.0.0/20 podCIDR: 192.168.0.0/16 controlPlaneIPBlock: netmask: "255.255.255.0" gateway: "172.16.21.1" ips: - ip: "172.16.21.6" hostname: "cp-vm-1" - ip: "172.16.21.7" hostname: "cp-vm-2" - ip: "172.16.21.8" hostname: "cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" ingressVIP: "172.16.21.30" kind: MetalLB metalLB: addressPools: - name: "address-pool-1" addresses: - "172.16.21.30-172.16.21.39" masterNode: cpus: 4 memoryMB: 8192 replicas: 3 nodePools: - name: "worker-node-pool" cpus: 4 memoryMB: 8192 replicas: 3 enableLoadBalancer: true antiAffinityGroups: enabled: true gkeConnect: projectID: "my-project-123" location: "us-central1" registerServiceAccountKeyPath: "connect-register-sa-2203040617.json" stackdriver: projectID: "my-project-123" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "log-mon-sa-2203040617.json" autoRepair: enabled: true
Berikut adalah poin-poin penting yang perlu dipahami dalam contoh sebelumnya:
Kolom
nodePools.replicas
ditetapkan ke3
, yang berarti ada tiga node pekerja di"worker-node-pool"
. Semua worker node menggunakan alamat IP statis karenanetwork.ipMode.type
disetel ke"static"
.Alamat IP statis untuk node pekerja ditentukan dalam file blok IP. File blok IP memiliki empat alamat meskipun hanya ada tiga node pekerja. Alamat IP tambahan diperlukan selama upgrade, update, dan perbaikan otomatis cluster.
Server DNS dan NTP ditentukan di bagian
hostConfig
. Dalam contoh ini, server DNS dan NTP ini ditujukan untuk node bidang kontrol dan worker node. Hal ini karena node pekerja memiliki alamat IP statis. Jika node pekerja mendapatkan alamat IP dari server DHCP, maka server DNS dan NTP ini hanya untuk node bidang kontrol.Alamat IP statis untuk tiga node bidang kontrol ditentukan di bagian
network.controlPlaneIPBlock
file konfigurasi cluster pengguna. Tidak ada alamat IP tambahan yang diperlukan dalam blok ini.Controlplane V2 diaktifkan.
Kolom
masterNode.replicas
disetel ke3
, sehingga cluster akan memiliki bidang kontrol dengan ketersediaan tinggi.VIP bidang kontrol dan VIP ingress berada di VLAN yang sama dengan worker node dan node bidang kontrol.
VIP yang dicadangkan untuk Layanan jenis LoadBalancer ditentukan di bagian
loadBalancer.metalLB.addressPools
pada file konfigurasi cluster pengguna. VIP ini berada di VLAN yang sama dengan worker node dan node bidang kontrol. Kumpulan VIP yang ditentukan di bagian ini harus mencakup VIP ingress dan tidak boleh mencakup VIP control plane.File konfigurasi cluster pengguna tidak menyertakan bagian
vCenter
. Jadi, cluster pengguna menggunakan resource vSphere yang sama dengan cluster admin.
Memvalidasi file konfigurasi Anda
Setelah mengisi file konfigurasi cluster pengguna, jalankan
gkectl check-config
untuk memverifikasi bahwa file tersebut valid:
gkectl check-config --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig untuk admin cluster Anda
USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna Anda
Jika perintah menampilkan pesan kegagalan, perbaiki masalahnya dan validasi file lagi.
Jika Anda ingin melewati validasi yang lebih memakan waktu, teruskan flag --fast
.
Untuk melewati validasi satu per satu, gunakan flag --skip-validation-xxx
. Untuk
mempelajari perintah check-config
lebih lanjut, lihat
Menjalankan pemeriksaan preflight.
(Opsional) Impor image OS ke vSphere, dan kirim image container ke registry pribadi
Jalankan gkectl prepare
jika salah satu hal berikut berlaku:
Cluster pengguna Anda berada di pusat data vSphere yang berbeda dengan cluster admin Anda.
Cluster pengguna Anda memiliki Server vCenter yang berbeda dengan cluster admin Anda.
Cluster pengguna Anda memiliki folder vCenter yang berbeda dari cluster admin Anda.
Cluster pengguna Anda menggunakan registry container pribadi yang berbeda dengan registry pribadi yang digunakan oleh cluster admin Anda.
gkectl prepare --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --bundle-path BUNDLE \ --user-cluster-config USER_CLUSTER_CONFIG
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig cluster admin Anda
BUNDLE: jalur file paket. File ini ada di workstation admin Anda di
/var/lib/gke/bundles/
. Contoh:/var/lib/gke/bundles/gke-onprem-vsphere-1.33.0-gke.799-full.tgz
USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna Anda
Membuat cluster pengguna
Jalankan perintah berikut untuk membuat cluster pengguna:
gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Jika Anda menggunakan Kontrol Layanan VPC, Anda mungkin melihat error saat menjalankan beberapa perintah gkectl
, seperti "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services"
. Untuk menghindari error ini, tambahkan
parameter --skip-validation-gcp
ke perintah Anda.
Cari file kubeconfig cluster pengguna
Perintah gkectl create cluster
akan membuat file kubeconfig bernama USER_CLUSTER_NAME-kubeconfig
di direktori saat ini. Anda akan memerlukan file kubeconfig ini nanti untuk berinteraksi dengan cluster pengguna.
File kubeconfig berisi nama cluster pengguna Anda. Untuk melihat nama cluster, Anda dapat menjalankan:
kubectl config get-clusters --kubeconfig USER_CLUSTER_KUBECONFIG
Output menampilkan nama cluster. Contoh:
NAME my-user-cluster
Jika ingin, Anda dapat mengubah nama dan lokasi file kubeconfig.
Pastikan cluster pengguna Anda berjalan
Pastikan cluster pengguna Anda berjalan:
kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG
Ganti USER_CLUSTER_KUBECONFIG dengan jalur file kubeconfig cluster pengguna Anda.
Output menampilkan node cluster pengguna. Contoh:
cp-vm-1 Ready control-plane,master 18m cp-vm-2 Ready control-plane,master 18m cp-vm-3 Ready control-plane,master 18m worker-vm-1 Ready 6m7s worker-vm-2 Ready 6m6s worker-vm-3 Ready 6m14s
Konsol
Mulai
Di konsol Google Cloud , buka halaman Create VM cluster.
Pilih Google Cloud project tempat Anda ingin membuat cluster. Project yang dipilih digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin terdaftar. Setelah cluster pengguna dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang dipilih.
Di bagian Pilih jenis cluster Anda, pilih Buat cluster pengguna untuk cluster admin yang ada.
Dasar-dasar cluster
Masukkan informasi dasar tentang cluster.
Masukkan Name untuk cluster pengguna.
Di bagian Admin cluster, pilih admin cluster dari daftar. Jika Anda tidak menentukan nama untuk cluster admin saat membuatnya, nama akan dibuat dalam bentuk
gke-admin-[HASH]
. Jika Anda tidak mengenali nama cluster admin, jalankan perintah berikut di workstation admin Anda:KUBECONFIG=ADMIN_CLUSTER_KUBECONFIG kubectl get OnPremAdminCluster -n kube-system -o=jsonpath='{.items[0].metadata.name}'
Jika cluster admin yang ingin Anda gunakan tidak ditampilkan, lihat bagian pemecahan masalah Cluster admin tidak ditampilkan di daftar drop-down Dasar-dasar cluster.
Di kolom GCP API Location, pilih region Google Cloud dari daftar. Setelan ini menentukan region tempat API dan layanan berikut berjalan:
- GKE On-Prem API (
gkeonprem.googleapis.com
) - Layanan armada (
gkehub.googleapis.com
) - Layanan Connect (
gkeconnect.googleapis.com
)
Setelan ini juga mengontrol region tempat item berikut disimpan:
- Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
- Data Cloud Logging dan Cloud Monitoring dari komponen sistem
- Log Audit Admin yang dibuat oleh Cloud Audit Logs
Nama cluster, project, dan lokasi bersama-sama mengidentifikasi cluster secara unik di Google Cloud.
- GKE On-Prem API (
Pilih versi Google Distributed Cloud untuk cluster pengguna Anda.
Sebagai pembuat cluster, Anda diberi hak istimewa admin cluster ke cluster. Secara opsional, masukkan alamat email pengguna lain yang akan mengelola cluster di kolom Cluster admin user di bagian Authorization.
Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan kontrol akses berbasis peran (RBAC) Kubernetes ke cluster untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-admin
Kubernetes, yang memberikan akses penuh ke setiap resource di cluster dalam semua namespace.Klik Berikutnya untuk membuka bagian Control plane.
Bidang Kontrol
Semua kolom di bagian Control plane ditetapkan dengan nilai default. Tinjau setelan default dan ubah sesuai kebutuhan.
Di kolom vCPU node bidang kontrol, masukkan jumlah vCPU (minimum 4) untuk setiap node bidang kontrol untuk cluster pengguna Anda.
Di kolom Memori node bidang kontrol, masukkan ukuran memori dalam MiB (minimum 8192 dan harus kelipatan 4) untuk setiap bidang kontrol bagi cluster pengguna Anda.
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 mau, pilih Pengubahan ukuran node otomatis. Mengubah ukuran berarti resource vCPU dan memori yang ditetapkan ke node disesuaikan secara otomatis. Jika diaktifkan, node control plane untuk cluster pengguna akan diubah ukurannya sesuai dengan jumlah node pekerja di cluster pengguna. Jadi, saat Anda menambahkan lebih banyak node pekerja ke cluster pengguna, ukuran node bidang kontrol akan bertambah.
Di bagian Control plane node IPs, masukkan alamat IP untuk gateway, subnet mask, dan node bidang kontrol.
Klik Berikutnya untuk membuka bagian Networking.
Jaringan
Di bagian ini, Anda menentukan alamat IP untuk node, Pod, dan Layanan cluster. Cluster pengguna harus memiliki satu alamat IP untuk setiap node dan alamat IP tambahan untuk node sementara yang diperlukan selama upgrade, update, dan perbaikan otomatis cluster. Untuk mengetahui informasi selengkapnya, lihat Berapa banyak alamat IP yang dibutuhkan cluster pengguna?.
Di bagian Node IPs, pilih IP mode untuk cluster pengguna. Pilih salah satu opsi berikut:
DHCP: Pilih DHCP jika Anda ingin node cluster mendapatkan alamat IP dari server DHCP.
Statis: Pilih Statis jika Anda ingin menyediakan alamat IP statis untuk node cluster, atau jika Anda ingin menyiapkan load balancing manual.
Jika Anda memilih DHCP, lewati ke langkah berikutnya untuk menentukan CIDR Layanan dan Pod. Untuk mode IP Statis, 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 IP v4 individual (seperti 192.0.2.1) atau blok alamat IPv4 CIDR (seperti 192.0.2.0/24).
Jika Anda memasukkan blok CIDR, jangan masukkan nama host.
Jika memasukkan alamat IP individual, Anda dapat memasukkan nama host secara opsional. Jika Anda tidak memasukkan nama host, Google Distributed Cloud akan menggunakan nama VM dari vSphere sebagai nama host.
Klik + Tambahkan Alamat IP sesuai kebutuhan untuk memasukkan lebih banyak alamat IP.
Di bagian Service and Pod CIDRs, konsol menyediakan rentang alamat berikut untuk Layanan dan Pod Kubernetes Anda:
- CIDR Layanan: 10.96.0.0/20
- CIDR Pod: 192.168.0.0/16
Jika Anda lebih memilih untuk memasukkan rentang alamat sendiri, lihat Alamat IP untuk Pod dan Service untuk mengetahui praktik terbaiknya.
Jika Anda memilih Static IP mode atau Enable control plane v2, tentukan informasi berikut di bagian Host config:
- Masukkan alamat IP server DNS.
- Masukkan alamat IP server NTP.
- Secara opsional, masukkan domain penelusuran DNS.
Klik Berikutnya untuk membuka bagian Load balancer.
Load balancer
Pilih load balancer yang akan disiapkan untuk cluster Anda. Lihat Ringkasan load balancer untuk mengetahui informasi selengkapnya.
Pilih Load balancer type dari daftar.
Disertakan dengan MetalLB
Mengonfigurasi load balancing gabungan dengan MetalLB. Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin Anda menggunakan SeeSaw atau MetalLB. Opsi ini memerlukan konfigurasi minimal. MetalLB berjalan langsung di node cluster Anda dan tidak memerlukan VM tambahan. Untuk mengetahui informasi selengkapnya tentang manfaat penggunaan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Load balancing gabungan dengan MetalLB.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 (mis. 192.0.2.0/26) atau notasi rentang (mis. 192.0.2.64-192.0.2.72). Untuk menentukan satu alamat IP dalam kumpulan, gunakan /32 dalam notasi CIDR (mis. 192.0.2.1/32).
Jika alamat IP untuk Layanan Anda yang berjenis
LoadBalancer
tidak berada dalam rentang alamat IP yang sama dengan VIP ingress, klik + Tambahkan Rentang Alamat IP dan masukkan rentang alamat lain.Alamat IP di setiap kumpulan tidak boleh tumpang-tindih, dan harus berada di subnet yang sama dengan node cluster.
Di bagian Penetapan alamat IP, pilih salah satu opsi berikut:
Otomatis: Pilih opsi ini jika Anda ingin pengontrol MetalLB menetapkan alamat IP secara otomatis dari kumpulan alamat ke Layanan berjenis
LoadBalancer
Manual: Pilih opsi ini jika Anda ingin menggunakan alamat dari kumpulan untuk menentukan alamat secara manual untuk Layanan jenis
LoadBalancer
Klik Hindari alamat IP yang bermasalah jika Anda ingin pengontrol MetalLB tidak menggunakan alamat dari kumpulan yang diakhiri dengan .0 atau .255. Hal ini menghindari masalah perangkat konsumen yang bermasalah yang secara keliru menghentikan traffic yang dikirim ke alamat IP khusus tersebut.
Setelah selesai, klik Selesai.
Jika perlu, klik Tambahkan Kumpulan Alamat.
Di bagian Virtual IPs, masukkan informasi berikut:
VIP bidang kontrol: Alamat IP tujuan yang akan digunakan untuk traffic yang dikirim ke server Kubernetes API cluster pengguna. Server Kubernetes API untuk cluster pengguna berjalan di node di cluster admin. Alamat IP ini harus berada di domain L2 yang sama dengan node cluster admin. Jangan tambahkan alamat ini di bagian Kumpulan alamat.
VIP Ingress: Alamat IP yang akan dikonfigurasi di load balancer untuk proxy ingress. Anda harus menambahkannya ke kumpulan alamat di bagian Kumpulan alamat.
Klik Lanjutkan.
F5 BIG-IP
Anda dapat menggunakan F5 BIG-IP untuk cluster pengguna hanya jika cluster admin Anda menggunakan F5 BIG-IP. Pastikan untuk menginstal dan mengonfigurasi ADC F5 BIG-IP sebelum mengintegrasikannya dengan Google Distributed Cloud.Nama pengguna dan sandi F5 diwarisi dari admin cluster.
Di bagian Virtual IPs, masukkan informasi berikut:
VIP bidang kontrol: Alamat IP tujuan yang akan digunakan untuk traffic yang dikirim ke server Kubernetes API.
VIP Ingress: Alamat IP yang akan dikonfigurasi di load balancer untuk proxy ingress.
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 Layanan Kubernetes berjenisLoadBalancer
. Pilih nilai nodePort
Anda sendiri dalam rentang 30000 - 32767 untuk Layanan ini. Untuk proxy ingress, pilih nilai
nodePort
untuk traffic HTTP dan HTTPS. Lihat
Mengaktifkan mode load balancing manual
untuk mengetahui informasi selengkapnya.
Di bagian Virtual IPs, masukkan informasi berikut:
VIP bidang kontrol: Alamat IP tujuan yang akan digunakan untuk traffic yang dikirim ke server Kubernetes API.
VIP Ingress: Alamat IP yang akan dikonfigurasi di load balancer untuk proxy ingress.
Di kolom Control-plane node port, masukkan nilai
nodePort
untuk server Kubernetes API.Di kolom Ingress HTTP node port, masukkan nilai
nodePort
untuk traffic HTTP ke proxy ingress.Di kolom Ingress HTTPS node port, masukkan nilai
nodePort
untuk traffic HTTPS ke proxy ingress.Di kolom Konnectivity server node port, masukkan nilai
nodePort
untuk 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 untuk layanan sistem
Cloud Monitoring untuk layanan sistem
Berikut ini diaktifkan secara default, tetapi Anda dapat menonaktifkannya:
Aktifkan driver CSI vSphere: Juga disebut vSphere Container Storage Plug-in. Driver Container Storage Interface (CSI) berjalan di cluster Kubernetes yang di-deploy di vSphere untuk menyediakan volume persisten di penyimpanan vSphere. Untuk mengetahui informasi selengkapnya, lihat Menggunakan driver vSphere Container Storage Interface.
Aktifkan grup anti-afinitas: Aturan anti-afinitas VMware Distributed Resource Scheduler (DRS) dibuat secara otomatis untuk node cluster pengguna Anda, sehingga node tersebut tersebar di setidaknya 3 host fisik di pusat data Anda. Pastikan lingkungan vSphere Anda memenuhi persyaratan.
Klik Berikutnya untuk mengonfigurasi node pool
Kumpulan node
Cluster Anda akan dibuat dengan minimal satu node pool. Node pool adalah template untuk grup node pekerja yang dibuat di cluster ini. Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola kumpulan node .
Di bagian Node pool defaults, selesaikan langkah-langkah berikut:
- Masukkan Nama kumpulan node atau terima "default-pool" sebagai nama.
- Masukkan jumlah vCPUs untuk setiap node di pool (minimal 4 per pekerja cluster pengguna).
- Masukkan ukuran memori dalam mebibyte (MiB) untuk setiap node di pool (minimum 8192 MiB per node pekerja cluster pengguna dan harus kelipatan 4).
- Di kolom Nodes, masukkan jumlah node dalam pool (minimum 3). Jika Anda memasukkan alamat IP statis untuk IP Node di bagian Jaringan, pastikan Anda memasukkan alamat IP yang cukup untuk mengakomodasi node cluster pengguna ini.
- Pilih jenis image OS: Ubuntu, Ubuntu Containerd, atau COS.
- Masukkan Boot disk size dalam gibibyte (GiB) (minimal 40 GiB).
- Jika Anda menggunakan MetalLB sebagai load balancer, MetalLB harus diaktifkan di setidaknya satu node pool. Biarkan Gunakan kumpulan node ini untuk load balancing MetalLB dipilih, atau tambahkan kumpulan node lain untuk digunakan bagi MetalLB.
Di bagian Metadata kumpulan node (opsional), jika Anda ingin menambahkan label dan taint Kubernetes, lakukan hal berikut:
- Klik + Tambahkan Label Kubernetes. Masukkan Kunci dan Nilai untuk label. Ulangi jika perlu.
- Klik + Add Taint. Masukkan Kunci, Nilai, dan Efek untuk taint. Ulangi jika perlu.
Klik Verifikasi dan Selesaikan untuk membuat cluster pengguna. Diperlukan waktu 15 menit atau lebih untuk membuat cluster pengguna. Konsol menampilkan pesan status saat memverifikasi setelan dan membuat cluster di pusat data Anda.
Jika terjadi error saat memverifikasi setelan, konsol akan menampilkan pesan error yang seharusnya cukup jelas bagi Anda untuk memperbaiki masalah konfigurasi dan mencoba lagi membuat cluster.
Untuk mengetahui informasi selengkapnya tentang kemungkinan error dan cara memperbaikinya, lihat Memecahkan masalah pembuatan cluster pengguna di konsol Google Cloud .
gcloud CLI
Anda menggunakan perintah berikut untuk membuat cluster pengguna:
gcloud container vmware clusters create
Setelah membuat cluster, Anda harus membuat setidaknya satu node pool menggunakan perintah berikut:
gcloud container vmware node-pools create
Sebagian besar flag untuk membuat cluster dan node pool sesuai dengan kolom di file konfigurasi cluster pengguna. Untuk membantu Anda memulai, Anda dapat menguji perintah lengkap di bagian examples.
Mengumpulkan informasi
Kumpulkan beberapa informasi yang Anda butuhkan untuk membuat cluster.
Dapatkan nama dan lokasi keanggotaan fleet cluster admin Anda:
gcloud container fleet memberships list \ --project=FLEET_HOST_PROJECT_ID
Ganti
FLEET_HOST_PROJECT_ID
dengan ID project tempat cluster admin didaftarkan.Outputnya mirip dengan hal berikut ini:
NAME EXTERNAL_ID LOCATION admin-cluster-1 bb7803b4-8438-4b22-859f-4559b4b29072 global admin-cluster-2 ee16ee2b-6ec0-49fc-9413-3c89cbc70854 global admin-cluster-3 fc2b7ef5-39ff-4b63-b919-04c5adc67be4 us-west1
Lokasi menentukan tempat layanan Fleet dan Connect berjalan. Cluster Admin yang dibuat sebelum 1.28 dikelola oleh layanan Fleet dan Connect global. Di 1.28 dan yang lebih tinggi, Anda dapat menentukan
global
atau Google Cloud region saat membuat cluster admin. Anda menentukan region dalam flag--admin-cluster-membership-location
pada contoh perintah berikut.Dapatkan daftar versi yang tersedia:
gcloud container vmware clusters query-version-config \ --admin-cluster-membership=ADMIN_CLUSTER_NAME \ --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \ --location=REGION
Ganti kode berikut:
ADMIN_CLUSTER_NAME
: Nama cluster admin.FLEET_HOST_PROJECT_ID
: ID project tempat admin cluster terdaftar.ADMIN_CLUSTER_REGION
: Region keanggotaan fleet cluster admin. Ini bisa berupa global atau Google Cloud region. Gunakan lokasi untuk cluster admin dari 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-west1
atau region yang didukung lainnya. Jika Anda selanjutnya mendaftarkan cluster admin di GKE On-Prem API, gunakan region yang sama dengan cluster pengguna.
Output perintah
gcloud container vmware clusters query-version-config
mirip dengan berikut ini:versions: - isInstalled: true version: 1.28.800-gke.109 - version: 1.29.0-gke.1456 - version: 1.29.100-gke.248 - version: 1.29.200-gke.245 - version: 1.29.300-gke.184
Perintah ini juga menampilkan penjelasan tentang versi yang dapat Anda gunakan untuk pembuatan atau upgrade cluster pengguna. Versi yang diizinkan diberi anotasi dengan
isInstalled: true
, yang berarti cluster admin memiliki komponen khusus versi yang diperlukan untuk mengelola cluster pengguna versi tersebut. Jika Anda ingin menggunakan versi yang diinstal di cluster admin, lanjutkan ke bagian Contoh untuk membuat cluster pengguna.
Menginstal versi lain
Cluster admin dapat mengelola cluster pengguna dengan versi yang berbeda. Output
perintah query-version-config
mencantumkan versi lain yang dapat Anda gunakan
saat membuat cluster. Jika ingin membuat cluster pengguna yang
memiliki versi berbeda dengan cluster admin, Anda perlu mendownload dan men-deploy
komponen yang diperlukan cluster admin untuk mengelola cluster pengguna dengan versi tersebut,
sebagai berikut:
gcloud container vmware admin-clusters update ADMIN_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION \ --required-platform-version=VERSION
Ganti VERSION
dengan salah satu versi yang tercantum dalam
output perintah query-version-config
.
Perintah ini mendownload versi komponen yang Anda tentukan di
--required-platform-version
ke cluster admin, lalu men-deploy
komponen. Sekarang Anda dapat membuat cluster pengguna dengan versi yang ditentukan.
Jika Anda menjalankan ulang gcloud container vmware clusters query-version-config
,
versi yang Anda tentukan akan dianotasi dengan isInstalled: true
.
Contoh
Contoh berikut menunjukkan cara membuat cluster pengguna dengan load balancer yang berbeda dengan Controlplane V2 diaktifkan. Dengan Controlplane V2, bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node di cluster pengguna itu sendiri. Sebaiknya Anda mengaktifkan Controlplane V2, dan di versi 1.30 dan yang lebih tinggi, cluster pengguna baru harus mengaktifkan Controlplane V2. Untuk mengetahui informasi tentang opsi load balancing yang tersedia, lihat Ringkasan load balancer.
Sebagian besar contoh menggunakan nilai default untuk mengonfigurasi node bidang kontrol. Jika Anda ingin mengubah salah satu setelan default, sertakan flag yang dijelaskan di bagian Flag bidang kontrol. Jika perlu, Anda juga dapat mengubah beberapa setelan vSphere.
Sebelum menjalankan perintah gcloud
untuk membuat cluster, Anda dapat
menyertakan --validate-only
untuk memvalidasi konfigurasi yang Anda tentukan di
flag ke perintah gcloud
. Saat Anda siap membuat cluster, hapus tanda ini dan jalankan perintah.
Jika Anda mendapatkan error setelah perintah gcloud container vmware clusters create
berjalan selama sekitar satu menit atau lebih, periksa apakah cluster dibuat sebagian
dengan menjalankan perintah berikut:
gcloud container vmware clusters list \ --project=FLEET_HOST_PROJECT_ID \ --location=-
Jika cluster tidak tercantum dalam output, perbaiki error dan jalankan kembali
gcloud container vmware clusters create
.
Jika cluster tercantum dalam output, hapus cluster menggunakan perintah berikut:
gcloud container vmware clusters delete USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION \ --force \ --allow-missing
Kemudian, perbaiki error dan jalankan ulang gcloud container vmware clusters create
.
Setelah cluster berjalan, Anda harus menambahkan node pool sebelum men-deploy beban kerja, seperti yang dijelaskan di bagian Membuat node pool.
MetalLB & DHCP
Contoh ini menunjukkan cara membuat cluster pengguna dengan load balancer MetalLB yang dibundel dan menggunakan server DHCP Anda untuk mendapatkan alamat IP bagi node pekerja cluster Anda.Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin Anda menggunakan MetalLB. Opsi load balancing ini memerlukan konfigurasi minimal. MetalLB berjalan langsung di node cluster Anda dan tidak memerlukan VM tambahan. Untuk mengetahui informasi selengkapnya tentang manfaat penggunaan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Load balancing gabungan dengan MetalLB.
Contoh perintah membuat cluster pengguna dengan karakteristik berikut, yang dapat Anda ubah sesuai kebutuhan lingkungan Anda.
Flag | Deskripsi |
---|---|
--admin-users |
Memberi Anda dan pengguna lain hak administratif penuh di cluster. |
--enable-control-plane-v2 |
Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan di versi 1.30 dan yang lebih tinggi. |
--control-plane-ip-block |
Satu alamat IP untuk node bidang kontrol. Untuk membuat cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP dan tambahkan flag --replicas=3 . |
--metal-lb-config-address-pools |
Dua kumpulan alamat untuk load balancer MetalLB. Anda memerlukan
setidaknya satu kumpulan alamat, dan Anda dapat menentukan lebih banyak jika diperlukan. Untuk
memudahkan, contoh ini berisi kumpulan alamat dengan nama
"ingress-vip-pool" sebagai pengingat bahwa alamat IP untuk
VIP ingress harus berada di salah satu kumpulan alamat. Anda menentukan
CIDR untuk satu alamat IP dengan menambahkan /32 ke
alamat IP. |
gcloud container vmware clusters create USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership=ADMIN_CLUSTER_NAME \ --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \ --location=REGION \ --version=VERSION \ --admin-users=YOUR_EMAIL_ADDRESS \ --admin-users=ANOTHER_EMAIL_ADDRESS \ --service-address-cidr-blocks=10.96.0.0/20 \ --pod-address-cidr-blocks=192.168.0.0/16 \ --metal-lb-config-address-pools='pool=NAME,avoid-buggy-ips=AVOID_BUGGY_IPS,manual-assign=MANUAL_ASSIGN,addresses=IP_ADDRESS_RANGE_1' \ --metal-lb-config-address-pools='pool=ingress-vip-pool,avoid-buggy-ips=False,manual-assign=True,addresses=INGRESS_VIP/32' \ --enable-control-plane-v2 \ --dns-servers=DNS_SERVER_1 \ --ntp-servers=NTP_SERVER_1 \ --control-plane-ip-block 'gateway=CP_GATEWAY,netmask=CP_NETMASK,ips=CP_IP_ADDRESS_1 CP_HOST_1' \ --control-plane-vip=CONTROL_PLANE_VIP \ --ingress-vip=INGRESS_VIP \ --enable-dhcp
Ganti kode berikut:
-
USER_CLUSTER_NAME
: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Nama harus:- berisi paling banyak 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
-
FLEET_HOST_PROJECT_ID
: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin terdaftar. Setelah cluster pengguna dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang dipilih. Project host armada tidak dapat diubah setelah cluster dibuat. -
ADMIN_CLUSTER_NAME
: Nama cluster admin yang mengelola cluster pengguna. Di tanda--admin-cluster-membership
, Anda dapat menggunakan nama cluster yang ditentukan sepenuhnya, yang memiliki format berikut:projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME
Atau, Anda dapat menetapkan
--admin-cluster-membership
ke nama cluster admin, seperti pada contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan--admin-cluster-membership-project
dan lokasi dengan--admin-cluster-membership-location
. Lokasi cluster admin adalahglobal
atau 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-west1
atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat hal berikut disimpan:- Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
- Data Cloud Logging dan Cloud Monitoring dari komponen sistem
- Log Audit Admin yang dibuat oleh Cloud Audit Logs
Nama, project, dan lokasi cluster secara bersama-sama mengidentifikasi cluster secara unik di Google Cloud.
-
VERSION
: Versi Google Distributed Cloud untuk cluster pengguna Anda. -
YOUR_EMAIL_ADDRESS
danANOTHER_EMAIL_ADDRESS
: Jika Anda tidak menyertakan tanda--admin-users
, sebagai pembuat cluster, secara default Anda akan diberi hak istimewa admin cluster. Namun, jika Anda menyertakan--admin-users
untuk menetapkan pengguna lain sebagai administrator, Anda mengganti default dan harus menyertakan alamat email Anda dan alamat email administrator lain. Misalnya, untuk menambahkan dua administrator:--admin-users=sara@example.com \ --admin-users=amal@example.com
Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan kontrol akses berbasis peran (RBAC) Kubernetes ke cluster untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-admin
Kubernetes, yang memberikan akses penuh ke setiap resource di cluster dalam semua namespace.
-
SERVICE_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Harus berupa rentang /24.Contoh:
--service-address-cidr-blocks=10.96.0.0/20
-
POD_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Harus berupa rentang /18.Contoh:
--pod-address-cidr-blocks=192.168.0.0/16
-
--metal-lb-config-address-pools
: Sertakan flag ini untuk menentukan konfigurasi kumpulan alamat yang akan digunakan oleh load balancer MetalLB. Nilai untuk tanda memiliki format berikut:--metal-lb-config-address-pool 'pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
Nilai memiliki segmen yang dimulai dengan kata kunci
pool
,avoid-buggy-ip
,manual-assign
, danaddresses
. Pisahkan setiap segmen dengan koma.-
pool
: Nama pilihan Anda untuk pool. -
avoid-buggy-ips
1: Jika Anda menyetelnya keTrue
, pengontrol MetalLB tidak akan menetapkan alamat IP yang diakhiri dengan .0 atau .255 ke Layanan. Hal ini menghindari masalah perangkat konsumen yang penuh bug secara keliru menghentikan traffic yang dikirim ke alamat IP khusus tersebut. Jika tidak ditentukan, nilai defaultnya adalahFalse
. -
manual-assign
: Jika Anda tidak ingin pengontrol MetalLB menetapkan alamat IP dari pool ini ke Layanan secara otomatis, tetapkan ini keTrue
. Kemudian, developer dapat membuat Layanan berjenisLoadBalancer
dan menentukan salah satu alamat dari kumpulan secara manual. Jika tidak ditentukan,manual-assign
akan ditetapkan keFalse
. -
Dalam daftar
addresses
: Setiap alamat harus berupa rentang dalam notasi CIDR atau format rentang dengan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (seperti untuk VIP ingress), gunakan /32 dalam notasi CIDR, misalnya:192.0.2.1/32
.
Perhatikan hal berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap rentang alamat IP dengan titik koma.
Contoh:
--metal-lb-config-address-pool 'pool=pool1,avoid-buggy-ips=True,manual-assign=True,addresses=10.251.134.80/32;192.168.1.0/26;192.168.1.2-192.168.1.3'
-
-
CONTROL_PLANE_VIP
: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk server Kubernetes API cluster pengguna.Contoh:
--control-plane-vip=203.0.113.3
-
INGRESS_VIP
: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy ingress.Contoh:
--ingress-vip=10.251.134.80
Alamat IP untuk VIP ingress harus berada di salah satu kumpulan alamat MetalLB.
--enable-dhcp
: Sertakan--enable-dhcp
jika Anda ingin node cluster mendapatkan alamat IP dari server DHCP yang Anda berikan. Jangan sertakan tanda ini jika Anda ingin memberikan alamat IP statis untuk node cluster, atau jika Anda ingin menyiapkan load balancing manual.
MetalLB & IP statis
Contoh ini menunjukkan cara membuat cluster pengguna dengan load balancer MetalLB yang dibundel dan menetapkan alamat IP statis ke node pekerja cluster Anda.Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin Anda menggunakan MetalLB. Opsi load balancing ini memerlukan konfigurasi minimal. MetalLB berjalan langsung di node cluster Anda dan tidak memerlukan VM tambahan. Untuk mengetahui informasi selengkapnya tentang manfaat penggunaan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Load balancing gabungan dengan MetalLB.
Contoh perintah membuat cluster pengguna dengan karakteristik berikut, yang dapat Anda ubah sesuai kebutuhan lingkungan Anda.
Flag | Deskripsi |
---|---|
--admin-users |
Memberi Anda dan pengguna lain hak administratif penuh di cluster. |
--enable-control-plane-v2 |
Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan di versi 1.30 dan yang lebih tinggi. |
--control-plane-ip-block |
Satu alamat IP untuk node bidang kontrol. Untuk membuat cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP dan tambahkan flag --replicas=3 . |
--metal-lb-config-address-pools |
Dua kumpulan alamat untuk load balancer MetalLB. Anda memerlukan
setidaknya satu kumpulan alamat, dan Anda dapat menentukan lebih banyak jika diperlukan. Untuk
memudahkan, contoh ini berisi kumpulan alamat dengan nama
"ingress-vip-pool" sebagai pengingat bahwa alamat IP untuk
VIP ingress harus berada di salah satu kumpulan alamat. Anda menentukan
CIDR untuk satu alamat IP dengan menambahkan /32 ke
alamat IP. |
--static-ip-config-ip-blocks |
Empat alamat IP untuk node pekerja di cluster. Hal ini mencakup alamat untuk node tambahan yang dapat digunakan selama upgrade dan update. Anda dapat menentukan lebih banyak alamat IP jika diperlukan. Nama host bersifat opsional. |
gcloud container vmware clusters create USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership=ADMIN_CLUSTER_NAME \ --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \ --location=REGION \ --version=VERSION \ --admin-users=YOUR_EMAIL_ADDRESS \ --admin-users=ANOTHER_EMAIL_ADDRESS \ --service-address-cidr-blocks=10.96.0.0/20 \ --pod-address-cidr-blocks=192.168.0.0/16 \ --metal-lb-config-address-pools='pool=NAME,avoid-buggy-ips=AVOID_BUGGY_IPS,manual-assign=MANUAL_ASSIGN,addresses=IP_ADDRESS_RANGE_1' \ --metal-lb-config-address-pools='pool=ingress-vip-pool,avoid-buggy-ips=False,manual-assign=True,addresses=INGRESS_VIP/32' \ --enable-control-plane-v2 \ --control-plane-ip-block 'gateway=CP_GATEWAY,netmask=CP_NETMASK,ips=CP_IP_ADDRESS_1 CP_HOST_1' \ --control-plane-vip=CONTROL_PLANE_VIP \ --ingress-vip=INGRESS_VIP \ --static-ip-config-ip-blocks='gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1 HOST_1;IP_ADDRESS_2 HOST_2;IP_ADDRESS_3 HOST_3;IP_ADDRESS_4 HOST_4' \ --dns-servers=DNS_SERVER_1 \ --ntp-servers=NTP_SERVER_1
Ganti kode berikut:
-
USER_CLUSTER_NAME
: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Nama harus:- berisi paling banyak 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
-
FLEET_HOST_PROJECT_ID
: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin terdaftar. Setelah cluster pengguna dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang dipilih. Project host armada tidak dapat diubah setelah cluster dibuat. -
ADMIN_CLUSTER_NAME
: Nama cluster admin yang mengelola cluster pengguna. Di tanda--admin-cluster-membership
, Anda dapat menggunakan nama cluster yang ditentukan sepenuhnya, yang memiliki format berikut:projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME
Atau, Anda dapat menetapkan
--admin-cluster-membership
ke nama cluster admin, seperti pada contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan--admin-cluster-membership-project
dan lokasi dengan--admin-cluster-membership-location
. Lokasi cluster admin adalahglobal
atau 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-west1
atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat hal berikut disimpan:- Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
- Data Cloud Logging dan Cloud Monitoring dari komponen sistem
- Log Audit Admin yang dibuat oleh Cloud Audit Logs
Nama, project, dan lokasi cluster secara bersama-sama mengidentifikasi cluster secara unik di Google Cloud.
-
VERSION
: Versi Google Distributed Cloud untuk cluster pengguna Anda. -
YOUR_EMAIL_ADDRESS
danANOTHER_EMAIL_ADDRESS
: Jika Anda tidak menyertakan tanda--admin-users
, sebagai pembuat cluster, secara default Anda akan diberi hak istimewa admin cluster. Namun, jika Anda menyertakan--admin-users
untuk menetapkan pengguna lain sebagai administrator, Anda mengganti default dan harus menyertakan alamat email Anda dan alamat email administrator lain. Misalnya, untuk menambahkan dua administrator:--admin-users=sara@example.com \ --admin-users=amal@example.com
Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan kontrol akses berbasis peran (RBAC) Kubernetes ke cluster untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-admin
Kubernetes, yang memberikan akses penuh ke setiap resource di cluster dalam semua namespace.
-
SERVICE_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Harus berupa rentang /24.Contoh:
--service-address-cidr-blocks=10.96.0.0/20
-
POD_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Harus berupa rentang /18.Contoh:
--pod-address-cidr-blocks=192.168.0.0/16
-
--metal-lb-config-address-pools
: Sertakan flag ini untuk menentukan konfigurasi kumpulan alamat yang akan digunakan oleh load balancer MetalLB. Nilai untuk tanda memiliki format berikut:--metal-lb-config-address-pool 'pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
Nilai memiliki segmen yang dimulai dengan kata kunci
pool
,avoid-buggy-ip
,manual-assign
, danaddresses
. Pisahkan setiap segmen dengan koma.-
pool
: Nama pilihan Anda untuk pool. -
avoid-buggy-ips
1: Jika Anda menyetelnya keTrue
, pengontrol MetalLB tidak akan menetapkan alamat IP yang diakhiri dengan .0 atau .255 ke Layanan. Hal ini menghindari masalah perangkat konsumen yang penuh bug secara keliru menghentikan traffic yang dikirim ke alamat IP khusus tersebut. Jika tidak ditentukan, nilai defaultnya adalahFalse
. -
manual-assign
: Jika Anda tidak ingin pengontrol MetalLB menetapkan alamat IP dari pool ini ke Layanan secara otomatis, tetapkan ini keTrue
. Kemudian, developer dapat membuat Layanan berjenisLoadBalancer
dan menentukan salah satu alamat dari kumpulan secara manual. Jika tidak ditentukan,manual-assign
akan ditetapkan keFalse
. -
Dalam daftar
addresses
: Setiap alamat harus berupa rentang dalam notasi CIDR atau format rentang dengan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (seperti untuk VIP ingress), gunakan /32 dalam notasi CIDR, misalnya:192.0.2.1/32
.
Perhatikan hal berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap rentang alamat IP dengan titik koma.
Contoh:
--metal-lb-config-address-pool 'pool=pool1,avoid-buggy-ips=True,manual-assign=True,addresses=10.251.134.80/32;192.168.1.0/26;192.168.1.2-192.168.1.3'
-
-
CONTROL_PLANE_VIP
: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk server Kubernetes API cluster pengguna.Contoh:
--control-plane-vip=203.0.113.3
-
INGRESS_VIP
: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy ingress.Contoh:
--ingress-vip=10.251.134.80
Alamat IP untuk VIP ingress harus berada di salah satu kumpulan alamat MetalLB.
-
--static-ip-config-ip-blocks
: Tentukan gateway default, subnet mask, dan daftar alamat IP statis untuk node pekerja di cluster pengguna. Nilai untuk tanda memiliki format berikut:--static-ip-config-ip-blocks 'gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1;IP_ADDRESS_2 HOST_2;...'
Nilai memiliki segmen yang dimulai dengan kata kunci
gateway
,netmask
, 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 secara opsional menentukan nama host setelah alamat IP. Pisahkan alamat IP dan nama host dengan spasi. Jika Anda tidak menentukan nama host, Google Distributed Cloud akan menggunakan nama VM dari vSphere sebagai nama host.
- Jika Anda menentukan blok CIDR, jangan tentukan nilai untuk nama host.
Contoh:
--static-ip-config-ip-blocks 'gateway=172.16.23.254,netmask=255.255.252.0,ips=172.16.20.10;172.16.20.11 host2;172.16.20.12/30'
-
DNS_SERVER
: Daftar alamat IP server DNS yang dipisahkan koma untuk VM. -
DNS_SEARCH_DOMAIN
: Daftar yang dipisahkan koma dari domain penelusuran DNS yang akan digunakan host. Domain ini digunakan sebagai bagian dari daftar penelusuran domain.Contoh:
--dns-search-domains example.com,examplepetstore.com
-
NTP_SERVER
: Daftar alamat IP server waktu yang dipisahkan koma untuk digunakan VM.
LB manual & IP statis
Contoh ini menunjukkan cara membuat cluster pengguna dengan load balancer manual dan menetapkan alamat IP statis ke node pekerja cluster Anda.Anda dapat menggunakan load balancer manual untuk cluster pengguna hanya jika cluster admin
Anda menggunakan load balancer manual. Di Google Distributed Cloud, server Kubernetes API, proxy ingress, dan layanan add-on untuk agregasi log masing-masing diekspos oleh Layanan Kubernetes jenis LoadBalancer
. Pilih nilai nodePort
Anda sendiri dalam rentang 30000 - 32767
untuk Layanan ini. Untuk proxy ingress, pilih nilai nodePort
untuk traffic HTTP dan HTTPS. Lihat
Mengaktifkan mode load balancing manual
untuk mengetahui informasi selengkapnya.
Contoh perintah membuat cluster pengguna dengan karakteristik berikut, yang dapat Anda ubah sesuai kebutuhan lingkungan Anda.
Flag | Deskripsi |
---|---|
--admin-users |
Memberi Anda dan pengguna lain hak administratif penuh di cluster. |
--enable-control-plane-v2 |
Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan di versi 1.30 dan yang lebih tinggi. |
--control-plane-ip-block |
Satu alamat IP untuk node bidang kontrol. Untuk membuat cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP dan tambahkan flag --replicas=3 . |
--static-ip-config-ip-blocks |
Empat alamat IP untuk node pekerja di cluster. Hal ini mencakup alamat untuk node tambahan yang dapat digunakan selama upgrade dan update. Anda dapat menentukan lebih banyak alamat IP jika diperlukan. Nama host bersifat opsional. |
gcloud container vmware clusters create USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership=ADMIN_CLUSTER_NAME \ --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \ --location=REGION \ --version=VERSION \ --admin-users=YOUR_EMAIL_ADDRESS \ --admin-users=ANOTHER_EMAIL_ADDRESS \ --service-address-cidr-blocks=10.96.0.0/20 \ --pod-address-cidr-blocks=192.168.0.0/16 \ --enable-control-plane-v2 \ --control-plane-ip-block 'gateway=CP_GATEWAY,netmask=CP_NETMASK,ips=CP_IP_ADDRESS_1 CP_HOST_1' \ --control-plane-vip=CONTROL_PLANE_VIP \ --ingress-vip=INGRESS_VIP \ --ingress-http-node-port=INGRESS_HTTP_NODE_PORT \ --ingress-https-node-port=INGRESS_HTTPS_NODE_PORT \ --static-ip-config-ip-blocks='gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1 HOST_1;IP_ADDRESS_2 HOST_2;IP_ADDRESS_3 HOST_3;IP_ADDRESS_4 HOST_4' \ --dns-servers=DNS_SERVER_1 \ --ntp-servers=NTP_SERVER_1
Ganti kode berikut:
-
USER_CLUSTER_NAME
: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Nama harus:- berisi paling banyak 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
-
FLEET_HOST_PROJECT_ID
: ID project tempat Anda ingin membuat cluster. Project yang ditentukan juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin terdaftar. Setelah cluster pengguna dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang dipilih. Project host armada tidak dapat diubah setelah cluster dibuat. -
ADMIN_CLUSTER_NAME
: Nama cluster admin yang mengelola cluster pengguna. Di tanda--admin-cluster-membership
, Anda dapat menggunakan nama cluster yang ditentukan sepenuhnya, yang memiliki format berikut:projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME
Atau, Anda dapat menetapkan
--admin-cluster-membership
ke nama cluster admin, seperti pada contoh perintah. Jika Anda hanya menggunakan nama cluster admin, tetapkan project ID cluster admin dengan--admin-cluster-membership-project
dan lokasi dengan--admin-cluster-membership-location
. Lokasi cluster admin adalahglobal
atau 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-west1
atau wilayah yang didukung lainnya. Region tidak dapat diubah setelah cluster dibuat. Setelan ini menentukan region tempat hal berikut disimpan:- Metadata cluster pengguna yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
- Data Cloud Logging dan Cloud Monitoring dari komponen sistem
- Log Audit Admin yang dibuat oleh Cloud Audit Logs
Nama, project, dan lokasi cluster secara bersama-sama mengidentifikasi cluster secara unik di Google Cloud.
-
VERSION
: Versi Google Distributed Cloud untuk cluster pengguna Anda. -
YOUR_EMAIL_ADDRESS
danANOTHER_EMAIL_ADDRESS
: Jika Anda tidak menyertakan tanda--admin-users
, sebagai pembuat cluster, secara default Anda akan diberi hak istimewa admin cluster. Namun, jika Anda menyertakan--admin-users
untuk menetapkan pengguna lain sebagai administrator, Anda mengganti default dan harus menyertakan alamat email Anda dan alamat email administrator lain. Misalnya, untuk menambahkan dua administrator:--admin-users=sara@example.com \ --admin-users=amal@example.com
Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan kontrol akses berbasis peran (RBAC) Kubernetes ke cluster untuk memberi Anda dan pengguna admin lainnya peran
clusterrole/cluster-admin
Kubernetes, yang memberikan akses penuh ke setiap resource di cluster dalam semua namespace.
-
SERVICE_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Harus berupa rentang /24.Contoh:
--service-address-cidr-blocks=10.96.0.0/20
-
POD_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Harus berupa rentang /18.Contoh:
--pod-address-cidr-blocks=192.168.0.0/16
CONTROL_PLANE_VIP
: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk server Kubernetes API cluster pengguna.Contoh:
--control-plane-vip=203.0.113.3
INGRESS_VIP
: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy ingress.Contoh:
--ingress-vip=203.0.113.4
INGRESS_HTTP_NODE_PORT
: NilainodePort
untuk traffic HTTP ke proxy ingress (seperti30243
).INGRESS_HTTPS_NODE_PORT
: NilainodePort
untuk traffic HTTPS ke proxy ingress (seperti30879
).
-
--static-ip-config-ip-blocks
: Tentukan gateway default, subnet mask, dan daftar alamat IP statis untuk node pekerja di cluster pengguna. Nilai untuk tanda memiliki format berikut:--static-ip-config-ip-blocks 'gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1;IP_ADDRESS_2 HOST_2;...'
Nilai memiliki segmen yang dimulai dengan kata kunci
gateway
,netmask
, 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 secara opsional menentukan nama host setelah alamat IP. Pisahkan alamat IP dan nama host dengan spasi. Jika Anda tidak menentukan nama host, Google Distributed Cloud akan menggunakan nama VM dari vSphere sebagai nama host.
- Jika Anda menentukan blok CIDR, jangan tentukan nilai untuk nama host.
Contoh:
--static-ip-config-ip-blocks 'gateway=172.16.23.254,netmask=255.255.252.0,ips=172.16.20.10;172.16.20.11 host2;172.16.20.12/30'
-
DNS_SERVER
: Daftar alamat IP server DNS yang dipisahkan koma untuk VM. -
DNS_SEARCH_DOMAIN
: Daftar yang dipisahkan koma dari domain penelusuran DNS yang akan digunakan host. Domain ini digunakan sebagai bagian dari daftar penelusuran domain.Contoh:
--dns-search-domains example.com,examplepetstore.com
-
NTP_SERVER
: Daftar alamat IP server waktu yang dipisahkan koma untuk digunakan VM.
Tanda bidang kontrol
Jika Anda ingin menggunakan nilai non-default untuk konfigurasi bidang kontrol, sertakan satu atau beberapa flag berikut:
--cpus=vCPUS
: Jumlah vCPU (minimum 4) untuk setiap node control plane untuk cluster pengguna Anda. Jika tidak ditentukan, defaultnya adalah 4 vCPU.--memory=MEMORY
: Ukuran memori dalam mebibyte (MiB) untuk setiap bidang kontrol bagi cluster pengguna Anda. Nilai minimum adalah 8192 dan harus kelipatan 4. Jika tidak ditentukan, jumlah defaultnya adalah 8192.--replicas=NODES
: Jumlah node bidang kontrol untuk cluster pengguna Anda. Misalnya, Anda dapat memilih 1 node bidang kontrol untuk lingkungan pengembangan dan 3 node bidang kontrol untuk lingkungan produksi dengan ketersediaan tinggi (HA).--enable-auto-resize
: Jika Anda ingin mengaktifkan pengubahan ukuran otomatis node bidang kontrol untuk cluster pengguna, sertakan--enable-auto-resize
. Mengubah ukuran berarti resource vCPU dan memori yang ditetapkan ke node disesuaikan secara otomatis. Jika diaktifkan, node bidang kontrol untuk cluster pengguna akan diubah ukurannya sesuai dengan jumlah node pekerja di cluster pengguna. Jadi, saat Anda menambahkan lebih banyak worker node ke cluster pengguna, ukuran node bidang kontrol akan bertambah.--enable-control-plane-v2
: Untuk mengaktifkan Controlplane V2, yang kami rekomendasikan, sertakan flag ini. Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node di cluster pengguna itu sendiri. Pada versi 1.30 dan yang lebih baru, Controlplane V2 diperlukan.Saat mengaktifkan Controlplane V2, Anda juga harus menentukan flag berikut:
--dns-servers=DNS_SERVER_1,...
: Daftar alamat IP server DNS untuk VM yang dipisahkan koma.--ntp-servers=NTP_SERVER_1,...
: Daftar alamat IP server waktu yang dipisahkan koma untuk digunakan VM.--control-plane-ip-block
, yang memiliki format berikut:--control-plane-ip-block 'gateway=CP_GATEWAY,netmask=CP_NETMASK,ips=CP_IP_ADDRESS_1;CP_IP_ADDRESS_2 CP_HOST_2'
Nilai memiliki segmen yang dimulai dengan kata kunci
gateway
,netmask
, 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 secara opsional menentukan nama host setelah alamat IP. Pisahkan alamat IP dan nama host dengan spasi.
Jika Anda menentukan blok CIDR, jangan tentukan nilai untuk nama host.
Contoh:
--control-plane-ip-block 'gateway=192.168.0.1,netmask=255.0.0.0,ips=192.168.1.1;192.168.1.2 hostname-2;192.168.2.2/28`
Opsional:
--dns-search-domains=DNS_SEARCH_DOMAIN_1,...
: Daftar domain penelusuran DNS yang dipisahkan koma untuk digunakan host. Domain ini digunakan sebagai bagian dari daftar penelusuran domain.Contoh:
--dns-search-domains example.com,examplepetstore.com
Untuk mengetahui daftar lengkap flag dan deskripsinya, lihat referensi gcloud CLI.
Flag vSphere
Tentukan flag opsional berikut jika diperlukan:
--disable-aag-config
: Jika Anda tidak menyertakan tanda ini, aturan anti-afinitas VMware Distributed Resource Scheduler (DRS) akan dibuat secara otomatis untuk node cluster pengguna Anda, sehingga node tersebut tersebar di setidaknya 3 host fisik di pusat data Anda. Pastikan lingkungan vSphere Anda memenuhi persyaratan. Sertakan tanda ini jika cluster Anda tidak memenuhi persyaratan.--disable-vsphere-csi
: Jika Anda tidak menyertakan tanda ini, komponen vSphere Container Storage Interface (CSI) akan di-deploy di cluster pengguna. Driver CSI berjalan di cluster Kubernetes native yang di-deploy di vSphere untuk menyediakan volume persisten di penyimpanan vSphere. Untuk mengetahui informasi selengkapnya, lihat Menggunakan driver vSphere Container Storage Interface. Jika Anda tidak ingin men-deploy komponen CSI, sertakan tanda ini.Untuk mengetahui daftar lengkap flag dan deskripsinya, lihat referensi gcloud CLI
Melacak progres pembuatan cluster
Output dari perintah pembuatan cluster mirip dengan berikut ini:
Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
Dalam contoh output, string
operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179
adalahOPERATION_ID
dari operasi yang berjalan lama. Anda dapat mengetahui status operasi dengan perintah berikut:gcloud container vmware operations describe OPERATION_ID \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION
Untuk mengetahui informasi selengkapnya, lihat gcloud container vmware operations.
Pembuatan cluster pengguna memerlukan waktu 15 menit atau lebih. Anda dapat melihat cluster di konsol Google Cloud di halaman GKE clusters.
Membuat node pool
Setelah cluster dibuat, Anda perlu membuat setidaknya satu node pool sebelum men-deploy workload.
gcloud container vmware node-pools create NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION \ --image-type=IMAGE_TYPE \ --boot-disk-size=BOOT_DISK_SIZE \ --cpus=vCPUS \ --memory=MEMORY \ --replicas=NODES \ --enable-load-balancer
Ganti kode berikut:
NODE_POOL_NAME
: Nama pilihan Anda untuk node pool. Nama harus:- berisi paling banyak 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
USER_CLUSTER_NAME
: Nama cluster pengguna yang baru dibuat.FLEET_HOST_PROJECT_ID
: ID project tempat cluster terdaftar.REGION
: Region Google Cloud yang Anda tentukan saat membuat cluster.IMAGE_TYPE
: Jenis image OS yang akan dijalankan di VM dalam node pool. Tetapkan ke salah satu opsi berikut:ubuntu_containerd
ataucos
.BOOT_DISK_SIZE
: Ukuran boot disk dalam gibibyte (GiB) untuk setiap node di pool. Minimumnya adalah 40 GiB.vCPUs
: Jumlah vCPU untuk setiap node di node pool. Nilai minimumnya adalah 4.MEMORY
: Ukuran memori dalam mebibyte (MiB) untuk setiap node dalam pool. Minimumnya adalah 8192 MiB per node pekerja cluster pengguna dan nilainya harus kelipatan 4.NODES
: Jumlah node di node pool. Nilai minimumnya adalah 3.Jika Anda menggunakan MetalLB sebagai load balancer, secara opsional, sertakan
--enable-load-balancer
jika Anda ingin mengizinkan speaker MetalLB berjalan di node dalam pool. MetalLB harus diaktifkan di setidaknya satu node pool. Jika tidak menyertakan flag ini, Anda harus membuat node pool lain untuk digunakan dengan MetalLB.Untuk mengetahui informasi tentang flag opsional, lihat Menambahkan node pool dan referensi gcloud CLI.
Contoh perintah gcloud
MetalLB & DHCP
gcloud container vmware clusters create user-cluster-1 \ --project=example-project-12345 \ --location=us-west1 \ --admin-cluster-membership=projects/example-project-12345/locations/us-west1/memberships/admin-cluster-1 \ --version=1.32.300-gke.85 \ --admin-users=sara@example.com \ --admin-users=amal@example.com \ --enable-dhcp \ --service-address-cidr-blocks=10.96.0.0/20 \ --pod-address-cidr-blocks=192.168.0.0/16 \ --metal-lb-config-address-pools='pool=lb-pool-1,manual-assign=False,avoid-buggy-ips=True,addresses=192.0.2.0/26;pool=lb-ingress-vip-pool,manual-assign=True,addresses=198.51.100.1/32' \ --enable-control-plane-v2 \ --control-plane-vip=203.0.113.1 \ --ingress-vip=198.51.100.1
MetalLB & IP statis
gcloud container vmware clusters create user-cluster-3 \ --project=example-project-12345 \ --location=europe-west1 \ --admin-cluster-membership=projects/example-project-12345/locations/global/memberships/admin-cluster-1 \ --version=1.32.300-gke.85 \ --admin-users=sara@example.com \ --admin-users=amal@example.com \ --static-ip-config-ip-blocks='gateway=192.0.2.254,netmask=255.255.255.0,ips=192.0.2.10 user-vm-1;192.0.2.11 user-vm-2' \ --static-ip-config-ip-blocks='gateway=192.0.2.254,netmask=255.255.255.0,ips=192.0.2.12 user-vm-3;192.0.2.13 extra-vm' \ --dns-servers=203.0.113.1,203.0.113.2 \ --dns-search-domains=example.com,altostrat.com \ --ntp-servers=203.0.113.3,203.0.113.4 \ --service-address-cidr-blocks=10.96.0.0/20 \ --pod-address-cidr-blocks=192.168.0.0/16 \ --enable-control-plane-v2 \ --control-plane-ip-block 'gateway=192.0.2.254,netmask=255.255.255.0,ips=198.51.100.1 cp-vm-1;198.51.100.2 cp-vm-2;198.51.100.3 cp-vm-3' \ --replicas=3 \ --metal-lb-config-address-pools='pool=lb-pool-1,manual-assign=False,avoid-buggy-ips=True,addresses=192.0.2.0/26;lb-ingress-vip-pool,manual-assign=True,addresses=198.51.100.1/32' \ --control-plane-vip=172.16.20.61 \ --ingress-vip=172.16.20.62
LB manual & IP statis
gcloud container vmware clusters create user-cluster-4 \ --project=example-project-12345 \ --location=asia-east1 \ --admin-cluster-membership=projects/example-project-12345/locations/asia-east1/memberships/admin-cluster-1 \ --version=1.32.300-gke.85 \ --admin-users=sara@example.com \ --admin-users=amal@example.com \ --static-ip-config-ip-blocks='gateway=192.0.2.254,netmask=255.255.255.0,ips=192.0.2.10 user-vm-1;192.0.2.11 user-vm-2';ips=192.0.2.12 user-vm-3;192.0.2.13 extra-vm'\ --dns-servers=203.0.113.1,203.0.113.2 \ --ntp-servers=203.0.113.3,203.0.113.4 \ --service-address-cidr-blocks=10.96.0.0/20 \ --pod-address-cidr-blocks=192.168.0.0/16 \ --enable-control-plane-v2 \ --control-plane-ip-block 'gateway=192.0.2.254,netmask=255.255.255.0,ips=198.51.100.1 cp-vm-1;198.51.100.2 cp-vm-2;198.51.100.3 cp-vm-3' \ --replicas=3 \ --control-plane-vip=192.0.2.60 \ --ingress-vip=192.0.2.50 \ --ingress-http-node-port=30243 \ --ingress-https-node-port=30879
Terraform
Sebelum memulai
Dapatkan nama dan lokasi keanggotaan fleet cluster admin Anda:
gcloud container fleet memberships list \ --project=FLEET_HOST_PROJECT_ID
Ganti
FLEET_HOST_PROJECT_ID
dengan ID project tempat cluster admin didaftarkan.Outputnya mirip dengan hal berikut ini:
NAME EXTERNAL_ID LOCATION admin-cluster-1 bb7803b4-8438-4b22-859f-4559b4b29072 global admin-cluster-2 ee16ee2b-6ec0-49fc-9413-3c89cbc70854 global admin-cluster-3 fc2b7ef5-39ff-4b63-b919-04c5adc67be4 us-west1
Lokasi menentukan tempat layanan Fleet dan Connect berjalan. Cluster Admin yang dibuat sebelum 1.28 dikelola oleh layanan Fleet dan Connect global. Di 1.28 dan yang lebih baru, Anda dapat menentukan
global
atau region Google Cloud saat membuat cluster.Dapatkan daftar versi yang tersedia:
gcloud container vmware clusters query-version-config \ --admin-cluster-membership=ADMIN_CLUSTER_NAME \ --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \ --location=REGION
Ganti kode berikut:
ADMIN_CLUSTER_NAME
: Nama cluster admin.FLEET_HOST_PROJECT_ID
: ID project tempat admin cluster terdaftar.ADMIN_CLUSTER_REGION
: Region keanggotaan fleet cluster admin. Ini bisa berupa global atau Google Cloud region. Gunakan lokasi untuk cluster admin dari 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-west1
atau wilayah yang didukung lainnya.
Output perintah ini akan mirip dengan berikut ini:
versions: - isInstalled: true version: 1.14.3-gke.25 - version: 1.14.4-gke.54 - version: 1.15.0-gke.581
Perintah ini juga menampilkan penjelasan tentang versi yang dapat Anda gunakan untuk pembuatan atau upgrade cluster pengguna. Versi yang diizinkan diberi anotasi dengan
isInstalled: true
, yang berarti cluster admin memiliki komponen khusus versi yang diperlukan untuk mengelola cluster pengguna versi tersebut. Jika Anda ingin menggunakan versi yang diinstal di cluster admin, lanjutkan ke bagian Contoh untuk membuat cluster pengguna.
Menginstal versi lain
Cluster admin dapat mengelola cluster pengguna dengan versi yang berbeda. Output
perintah query-version-config
mencantumkan versi lain yang dapat Anda gunakan
saat membuat cluster. Jika ingin membuat cluster pengguna yang
memiliki versi berbeda dengan cluster admin, Anda perlu mendownload dan men-deploy
komponen yang diperlukan cluster admin untuk mengelola cluster pengguna dengan versi tersebut,
sebagai berikut:
gcloud container vmware admin-clusters update ADMIN_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION \ --required-platform-version=VERSION
Ganti VERSION
dengan salah satu versi yang tercantum dalam
output perintah query-version-config
.
Perintah ini mendownload versi komponen yang Anda tentukan di
--required-platform-version
ke cluster admin, lalu men-deploy
komponen. Sekarang Anda dapat membuat cluster pengguna dengan versi yang ditentukan.
Jika Anda menjalankan ulang gcloud container vmware clusters query-version-config
,
versi yang Anda tentukan akan dianotasi dengan isInstalled: true
.
Contoh
Anda dapat menggunakan contoh konfigurasi dasar berikut untuk membuat cluster pengguna dengan load balancer MetalLB yang dibundel dan satu node pool.
Untuk mengetahui informasi selengkapnya dan contoh lainnya, lihat
dokumentasi referensi google_gkeonprem_vmware_cluster
.
Menetapkan variabel di terraform.tfvars
Contoh ini menyediakan contoh file variabel untuk diteruskan ke main.tf
, yang menunjukkan cara mengonfigurasi load balancer MetalLB yang dibundel dan memungkinkan node cluster Anda mendapatkan alamat IP dari server DHCP yang Anda sediakan.
Clone repositori
anthos-samples
dan ubah ke direktori tempat contoh Terraform berada:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-onprem-terraform/avmw_user_cluster_metallb
Buat salinan file
terraform.tfvars.sample
:cp terraform.tfvars.sample terraform.tfvars
Ubah 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 terdaftar. Setelah cluster pengguna dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang dipilih. Project host armada tidak dapat diubah setelah cluster dibuat.region
: Google Cloud Region tempat GKE On-Prem API (gkeonprem.googleapis.com
), layanan Fleet (gkehub.googleapis.com
), dan layanan Connect (gkeconnect.googleapis.com
) berjalan. Tentukanus-west1
atau wilayah yang didukung lainnya.admin_cluster_name
: Nama cluster admin yang mengelola cluster pengguna. Contoh ini mengasumsikan bahwa cluster admin menggunakan global sebagai region. Jika Anda memiliki cluster admin regional:- Buka
main.tf
di 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
global
ke 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 kontrol akses berbasis peran (RBAC) Kubernetes ke cluster untuk memberikan peran Kubernetes
clusterrole/cluster-admin
kepada pengguna admin, yang memberikan akses penuh ke setiap resource di cluster dalam semua namespace. Hal ini juga memungkinkan pengguna login ke konsol menggunakan identitas Google mereka.cluster_name
: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Nama harus:- berisi paling banyak 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter alfabet
- diakhiri dengan karakter alfanumerik
control_plane_node_cpus
: Jumlah vCPU untuk setiap node bidang kontrol untuk cluster pengguna Anda. Minimumnya adalah 4 vCPU.control_plane_node_memory
: Ukuran memori dalam mebibyte (MiB) untuk setiap bidang kontrol untuk cluster pengguna Anda. Nilai minimum adalah 8192 dan harus kelipatan 4.control_plane_node_replicas
: Jumlah node bidang kontrol untuk cluster pengguna Anda. Misalnya, Anda dapat memasukkan 1 node bidang kontrol untuk lingkungan pengembangan dan 3 node bidang kontrol untuk lingkungan produksi dengan ketersediaan tinggi (HA).control_plane_vip
: Alamat IP virtual (VIP) yang telah Anda pilih untuk dikonfigurasi di load balancer untuk server Kubernetes API dari cluster pengguna.ingress_vip
: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy ingress.lb_address_pools
: Daftar peta yang menentukan kumpulan alamat yang akan digunakan oleh load balancer MetalLB. VIP ingress harus berada di salah satu pool ini. Tentukan nilai berikut:name
: Nama untuk pool.addresses
: Rentang alamat dalam notasi CIDR atau format rentang yang dipisahkan dengan tanda hubung. Untuk menentukan satu alamat IP dalam pool (seperti untuk VIP ingress), gunakan /32 dalam notasi CIDR, misalnya:192.0.2.1/32
.
Ganti contoh alamat IP dengan nilai Anda, dan tambahkan kumpulan alamat tambahan jika diperlukan.
Simpan perubahan di
terraform.tfvars
. Jika Anda tidak ingin membuat perubahan opsional padamain.tf
, lanjutkan ke bagian berikutnya, Buat cluster dan satu node pool.
Mengonfigurasi Controlplane V2
Pada versi 1.30 dan yang lebih baru, Anda harus mengaktifkan Controlplane V2. File main.tf
dalam contoh tidak mengaktifkan Controlplane V2. Anda harus mengubah
main.tf
untuk mengaktifkan Controlplane V2 dan menambahkan alamat IP untuk
gateway, netmask, dan node bidang kontrol. Sebelum melakukan perubahan, buat cadangan
main.tf
:
cp main.tf main.tf.bak
Untuk mengonfigurasi Controlplane V2, lakukan perubahan berikut pada main.tf
:
Tambahkan baris berikut ke blok
resource
:enable_control_plane_v2 = "true"
Tambahkan peta
control_plane_v2_config
ke 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
netmask
dangateway
dengan alamat IP dari jaringan Anda. Gantiip
danhostname
dengan alamat IP node bidang kontrol Anda.
Opsional: Aktifkan cluster lanjutan
Secara default di versi 1.32 dan yang lebih tinggi, cluster pengguna yang dibuat menggunakan Terraform tidak mengaktifkan cluster lanjutan. Jika Anda ingin mengaktifkan cluster lanjutan, tambahkan
kolom tingkat teratas berikut ke main.tf
:
enable_advanced_cluster = true
Pastikan untuk meninjau Perbedaan saat menjalankan cluster lanjutan sebelum mengaktifkan cluster lanjutan.
Opsional: Mode pengalamatan IP node pekerja
Bagian ini menjelaskan beberapa perubahan konfigurasi opsional yang dapat Anda
lakukan di main.tf
. Sebelum melakukan perubahan, buat cadangan main.tf
:
cp main.tf main.tf.bak
Secara default, main.tf
mengonfigurasi cluster untuk menggunakan server DHCP yang Anda berikan untuk menetapkan alamat IP ke node pekerja cluster. DHCP dikonfigurasi dengan menyertakan peta dhcp_config
dalam blok network_config
. Jika Anda ingin menyediakan alamat IP statis untuk node pekerja, lakukan perubahan berikut pada main.tf
:
Ganti blok
network_config
dan 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 Layanan di cluster Anda. Harus berupa rentang /24.pod_address_cidr_blocks
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Harus berupa rentang /18.dns_servers
: Daftar alamat IP server DNS untuk VM.ntp_servers
: Daftar alamat IP server waktu yang akan digunakan VM.Di blok
static_ip_config
, ganti nilai untuknetmask
dangateway
dengan alamat untuk jaringan Anda. Gantiip
danhostname
dengan alamat IP dan nama host node pekerja Anda.
Buat cluster dan satu node pool
Lakukan inisialisasi dan buat rencana Terraform:
terraform init
Terraform menginstal library yang diperlukan, seperti Google Cloud provider.
Tinjau konfigurasi dan lakukan perubahan jika diperlukan:
terraform plan
Terapkan rencana Terraform untuk membuat cluster pengguna:
terraform apply
Diperlukan waktu sekitar 15 menit atau lebih untuk membuat cluster pengguna, dan 15 menit lagi untuk membuat kumpulan node. Anda dapat melihat cluster di konsol Google Cloud di halaman GKE clusters.
Opsional: Menjalankan alat command line sebelum pembuatan resource
Jika perlu, Anda dapat menjalankan alat command line seperti gcloud CLI dan
gkectl
untuk melakukan tugas penyiapan atau konfigurasi sebelum pembuatan resource. Anda
menentukan command line yang akan dijalankan dalam file konfigurasi Terraform menggunakan
penyedia local-exec
, yang memungkinkan Anda menggunakan kembali variabel Terraform yang ditentukan.
Contoh berikut menunjukkan cara mengubah main.tf
untuk menjalankan perintah
gkectl prepare
sebelum pembuatan cluster:
resource "null_resource" "gkectl_prepare" {
provisioner "local-exec" {
command = "gkectl prepare --kubeconfig=${var.kubeconfig} --cluster-name=${var.cluster_name} --vcenter-username=${var.vcenter_username} --vcenter-password=${var.vcenter_password} --vcenter-address=${var.vcenter_address} --datacenter=${var.datacenter} --datastore=${var.datastore} --network=${var.network} --os-image=${var.os_image} --service-account-key-file=${var.service_account_key_file} --location=${var.location}"
working_dir = path.module # Important: Set working directory
environment = {
# Optional: set environment variables if needed.
# Example: GOOGLE_APPLICATION_CREDENTIALS = "/path/to/your/credentials.json"
}
}
}
resource "google_gkeonprem_vmware_cluster" "cluster" {
# ... your cluster configuration ...
# Ensure this depends on the null_resource
depends_on = [null_resource.gkectl_prepare]
# ... rest of your cluster configuration ...
location = var.location
name = var.cluster_name
# ... other required fields ...
}
Pemecahan masalah
Lihat Memecahkan masalah pembuatan dan upgrade cluster.