Di Google Distributed Cloud, beban kerja Anda berjalan di satu atau beberapa cluster pengguna. Dokumen ini menunjukkan cara membuat cluster pengguna. Halaman ini ditujukan untuk Admin, Arsitek, dan Operator yang menyiapkan, memantau, dan mengelola infrastruktur teknologi. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise umum.
Ada beberapa alat yang dapat Anda gunakan untuk membuat cluster pengguna:
gkectl
- Konsol Google Cloud
Google Cloud CLI
- Terraform
Tiga alat ini (konsol, gcloud CLI, dan Terraform) adalah klien dari GKE On-Prem API.
Untuk panduan tentang alat yang mungkin ingin Anda gunakan, lihat Memilih alat untuk mengelola siklus proses cluster.
Sebelum memulai
Jika Anda belum melakukannya, siapkan resource Google Cloud seperti yang dijelaskan dalam dokumen ini:
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 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 membuat cluster pengguna, Anda biasanya menginstal versi yang cocok dengan versi cluster admin. Namun, Anda dapat menginstal versi patch yang lebih baru, dan pada versi 1.28 dan yang lebih tinggi, cluster pengguna dapat memiliki hingga 2 versi minor yang lebih tinggi daripada cluster adminnya.
Sebaiknya aktifkan Controlplane V2. Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna akan berjalan di satu atau beberapa node di cluster pengguna itu sendiri. Jika Anda berencana menginstal versi 1.30 atau versi yang lebih tinggi, Controlplane V2 diperlukan. 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 cukup alamat IP.
Tinjau ringkasan load balancing dan tinjau kembali keputusan Anda tentang jenis load balancer yang ingin digunakan. Anda dapat menggunakan load balancer MetalLB yang dipaketkan, atau Anda dapat mengonfigurasi load balancer pilihan Anda secara manual. Untuk load balancing manual, Anda harus menyiapkan load balancer sebelum membuat cluster pengguna.
Pikirkan jumlah node pool yang Anda perlukan dan sistem operasi yang ingin Anda jalankan di setiap node pool.
Pikirkan apakah Anda ingin menggunakan cluster vSphere terpisah untuk cluster admin dan cluster pengguna, serta apakah Anda ingin menggunakan pusat data terpisah. Pertimbangkan juga apakah Anda ingin menggunakan instance Server vCenter terpisah.
Pada versi 1.29 dan yang lebih tinggi, pemeriksaan pra-penerbangan sisi server diaktifkan secara default. Pemeriksaan pra-penerbangan sisi server memerlukan aturan firewall tambahan. Di Aturan firewall untuk cluster admin, telusuri "Pemeriksaan pra-penerbangan" 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 akan dijalankan di cluster admin, bukan secara lokal di workstation admin. Pemeriksaan pra-penerbangan sisi server juga dijalankan jika Anda menggunakan konsol Google Cloud, Google Cloud CLI, atau Terraform untuk membuat cluster pengguna.
Membuat cluster pengguna
gkectl
Ringkasan prosedur
Berikut adalah langkah-langkah utama yang terlibat dalam penggunaan gkectl
untuk membuat cluster pengguna:
- Menghubungkan ke workstation admin
- Workstation admin adalah mesin yang memiliki alat yang diperlukan untuk membuat cluster pengguna.
- Mengisi file konfigurasi
- Tentukan detail untuk cluster baru Anda dengan melengkapi file konfigurasi cluster pengguna, file konfigurasi kredensial, dan mungkin file blok IP.
- (Opsional) Impor image OS ke vSphere, dan kirim image container ke registry pribadi jika berlaku.
- Jalankan
gkectl prepare
.
- Membuat cluster pengguna
- Jalankan
gkectl create cluster
untuk membuat cluster seperti yang ditentukan dalam file konfigurasi Anda.
- Memverifikasi bahwa 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 menggunakan Kontrol Layanan VPC, Anda mungkin melihat error saat menjalankan beberapa
perintah gkectl
, seperti "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services"
. Untuk menghindari error ini, tambahkan
parameter --skip-validation-gcp
ke perintah Anda.
Mengisi file konfigurasi
Lakukan langkah-langkah ini di workstation admin Anda.
Saat membuat workstation admin, gkeadm
akan membuat file konfigurasi
bernama user-cluster.yaml
. File konfigurasi ini digunakan untuk membuat cluster pengguna.
Pelajari file konfigurasi dengan memindai dokumen file konfigurasi cluster pengguna. Sebaiknya biarkan dokumen ini tetap terbuka di tab atau jendela terpisah, karena Anda akan merujuknya saat menyelesaikan langkah-langkah berikut.
name
Tetapkan kolom name
ke nama pilihan Anda untuk cluster pengguna.
gkeOnPremVersion
Kolom ini sudah diisi untuk Anda. Ini menentukan versi Google Distributed Cloud. Misalnya, 1.30.300-gke.84
.
enableControlplaneV2
Untuk membuat cluster pengguna yang mengaktifkan Controlplane V2, tetapkan
enableControlplaneV2
ke true
.
Jika Controlplane V2 diaktifkan, bidang kontrol untuk cluster pengguna akan berjalan di node dalam cluster pengguna itu sendiri. Sebaiknya Anda mengaktifkan Controlplane V2.
kubeception
Jika Anda menetapkan kolom ini ke false
, cluster akan menggunakan kubecetption.
Dengan kubeception, control plane 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 di file blok IP cluster admin.
enableDataplaneV2
Tetapkan
enableDataplaneV2
ke true
.
vCenter
Nilai yang Anda tetapkan di bagian vCenter
dari
file konfigurasi cluster admin
adalah global. Artinya, kebijakan tersebut 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
pada file konfigurasi cluster pengguna Anda.
Secara khusus, Anda dapat menggunakan cluster vSphere terpisah untuk cluster admin dan cluster pengguna, dan Anda dapat menggunakan pusat data terpisah untuk cluster admin dan cluster pengguna.
Menggunakan satu pusat data dan satu cluster vSphere
Opsi defaultnya adalah menggunakan satu data center 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 dalam cluster vSphere-nya sendiri, tentukan nilai untuk vCenter.cluster
dalam file konfigurasi cluster pengguna.
Jika cluster admin dan cluster pengguna berada dalam cluster vSphere terpisah, cluster tersebut dapat berada di pusat data yang sama atau pusat data yang berbeda.
Menggunakan pusat data vSphere terpisah
Cluster pengguna dan cluster admin dapat berada di pusat data yang berbeda. Dalam hal ini, keduanya juga berada dalam cluster vSphere terpisah.
Jika 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
cluster admin memerlukan akses ke pusat data cluster admin, sedangkan akun vCenter
untuk cluster pengguna hanya memerlukan akses ke pusat data cluster pengguna.
Menggunakan instance vCenter Server terpisah
Dalam situasi tertentu, sebaiknya buat cluster pengguna yang menggunakan instance vCenter Server-nya sendiri. Artinya, cluster admin dan cluster pengguna terkait menggunakan instance vCenter Server yang berbeda.
Misalnya, di lokasi edge, Anda mungkin ingin memiliki mesin fisik yang menjalankan vCenter Server dan satu atau beberapa mesin fisik yang menjalankan ESXi. Kemudian, Anda dapat menggunakan instance vCenter Server lokal untuk membuat hierarki objek vSphere, termasuk pusat data, cluster, kumpulan resource, datastore, dan folder.
Isi seluruh bagian vCenter
file konfigurasi cluster pengguna Anda. Secara khusus, 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 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"
, dan buat file blok IP yang menyediakan alamat IP statis. Untuk contoh file pemblokiran IP, lihat Contoh file konfigurasi yang diisi.
Jika Anda telah memutuskan untuk menggunakan alamat IP statis untuk node pekerja, isi kolom network.ipMode.ipBlockFilePath
.
Node panel kontrol untuk cluster pengguna Anda harus mendapatkan alamat IP-nya dari
daftar alamat statis yang Anda berikan. Hal ini berlaku meskipun node pekerja Anda mendapatkan alamatnya dari server DHCP. Untuk menentukan alamat IP statis bagi node kontrol, isi bagian network.controlPlaneIPBlock
. Jika Anda menginginkan cluster pengguna 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 node pekerja, server DNS dan NTP ini juga untuk node pekerja.
network.podCIDR dan network.serviceCIDR memiliki nilai yang telah diisi sebelumnya dan Anda dapat membiarkannya tidak berubah, kecuali jika nilai tersebut bertentangan dengan alamat yang sudah digunakan di jaringan Anda. Kubernetes menggunakan rentang ini untuk menetapkan alamat IP ke Pod dan Layanan di cluster Anda.
Terlepas dari apakah Anda mengandalkan server DHCP atau menentukan daftar alamat IP statis, Anda harus memiliki cukup alamat IP yang tersedia untuk cluster pengguna. Untuk mengetahui penjelasan tentang jumlah alamat IP yang Anda perlukan, lihat Merencanakan alamat IP.
loadBalancer
Siapkan VIP untuk server Kubernetes API cluster pengguna Anda. Siapkan VIP lain untuk layanan ingress cluster pengguna Anda. Berikan VIP Anda sebagai
nilai untuk
loadBalancer.vips.controlPlaneVIP
dan
loadBalancer.vips.ingressVIP
.
Tentukan jenis load balancing yang ingin Anda gunakan. Opsinya adalah:
Load balancing MetalLB yang dipaketkan. Tetapkan
loadBalancer.kind
ke"MetalLB"
. Isi juga bagianloadBalancer.metalLB.addressPools
, dan tetapkanenableLoadBalancer
ketrue
untuk setidaknya satu kumpulan node Anda. Untuk informasi selengkapnya, lihat Load balancing yang dipaketkan dengan MetalLB.Load balancing manual. Tetapkan
loadBalancer.kind
ke"ManualLB"
, dan isi bagianmanualLB
. Untuk mengetahui informasi selengkapnya, lihat Load balancing manual.
Untuk mengetahui informasi selengkapnya tentang opsi load balancing, lihat Ringkasan load balancing.
advancedNetworking
Jika Anda berencana membuat
gateway NAT keluar, tetapkan
advancedNetworking
ke true
.
multipleNetworkInterfaces
Tentukan apakah Anda ingin mengonfigurasi beberapa antarmuka jaringan untuk Pod, dan tetapkan multipleNetworkInterfaces sesuai kebutuhan.
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: satu atau tiga. Anda juga dapat menentukan datastore untuk node
bidang kontrol dan apakah Anda ingin mengaktifkan pengubahan ukuran otomatis untuk node
bidang kontrol.
Ingat bahwa Anda telah menentukan alamat IP untuk node bidang kontrol di bagian network.controlPlaneIPBlock
.
nodePools
Node pool adalah sekelompok node dalam cluster yang semuanya memiliki konfigurasi yang sama. Misalnya, node di satu kumpulan dapat menjalankan Windows dan node di kumpulan lain dapat menjalankan Linux.
Anda harus menentukan setidaknya satu kumpulan node dengan mengisi bagian
nodePools
.
Untuk mengetahui informasi selengkapnya, lihat Kumpulan node dan Membuat dan mengelola kumpulan node.
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, isi bagian
stackdriver
.
Bagian ini wajib diisi secara default. Artinya, jika tidak mengisi bagian ini,
Anda harus menyertakan flag --skip-validation-stackdriver
saat menjalankan
gkectl create cluster
.
Perhatikan persyaratan berikut untuk cluster baru:
ID 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
(jika kolom disertakan dalam file konfigurasi Anda). 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 fleet Google Cloud.
Isi bagian
gkeConnect
untuk menentukan
project host fleet
dan akun layanan terkait. ID di gkeConnect.projectID
harus sama dengan ID yang ditetapkan di stackdriver.projectID
dan cloudAuditLogging.projectID
. Jika project ID tidak sama, pembuatan cluster akan gagal.
Di versi 1.28 dan yang lebih baru, Anda dapat menentukan region tempat layanan Fleet dan
Connect berjalan di gkeConnect.location
secara opsional. Jika Anda tidak menyertakan kolom ini,
cluster akan menggunakan instance global layanan ini.
Jika Anda menyertakan gkeConnect.location
dalam file konfigurasi, region
yang Anda tentukan harus sama dengan region yang dikonfigurasi di
cloudAuditLogging.clusterLocation
, stackdriver.clusterLocation
, dan
gkeOnPremAPI.location
. Jika region tidak sama, pembuatan cluster akan gagal.
gkeOnPremAPI
Di versi 1.16 dan yang lebih baru, jika GKE On-Prem API diaktifkan di project Google Cloud Anda, semua cluster dalam project akan otomatis terdaftar di GKE On-Prem API di region yang dikonfigurasi di stackdriver.clusterLocation
.
Wilayah gkeOnPremAPI.location
harus sama dengan wilayah yang ditentukan dalam
cloudAuditLogging.clusterLocation
, gkeConnect.location
(jika kolom tersebut
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.
usageMetering
Jika Anda ingin mengaktifkan pengukuran penggunaan untuk cluster, isi bagian usageMetering
.
cloudAuditLogging
Jika Anda ingin mengintegrasikan log audit dari server Kubernetes API cluster dengan Cloud Audit Logs, isi bagian cloudAuditLogging
.
Perhatikan persyaratan berikut untuk cluster baru:
ID di
cloudAuditLogging.projectID
harus sama dengan ID digkeConnect.projectID
danstackdriver.projectID
.Region di
cloudAuditLogging.clusterLocation
harus sama dengan region yang ditetapkan digkeConnect.location
(jika kolom disertakan dalam file konfigurasi Anda) 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 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.30.300-gke.84 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:
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 node pekerja. Hal ini karena node pekerja memiliki alamat IP statis. Jika node pekerja mendapatkan alamat IP-nya dari server DHCP, server DNS dan NTP ini hanya akan digunakan untuk node bidang kontrol.Alamat IP statis untuk tiga node bidang kontrol ditentukan di bagian
network.controlPlaneIPBlock
file konfigurasi cluster pengguna. Tidak perlu alamat IP tambahan di 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 node pekerja dan node bidang kontrol.
VIP yang disediakan untuk Layanan jenis LoadBalancer ditentukan di bagian
loadBalancer.metalLB.addressPools
dalam file konfigurasi cluster pengguna. VIP ini berada di VLAN yang sama dengan node pekerja dan node bidang kontrol. Kumpulan VIP yang ditentukan di bagian ini harus menyertakan VIP ingress dan tidak boleh menyertakan VIP bidang kontrol.File konfigurasi cluster pengguna tidak menyertakan bagian
vCenter
. Jadi, cluster pengguna menggunakan resource vSphere yang sama dengan cluster admin.
Memvalidasi file konfigurasi
Setelah Anda mengisi file konfigurasi cluster pengguna, jalankan
gkectl check-config
untuk memverifikasi bahwa file tersebut valid:
gkectl check-config --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig untuk cluster admin Anda
USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna Anda
Jika perintah 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 pra-penerbangan.
3. (Opsional) Mengimpor image OS ke vSphere, dan mengirim 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.
Cluster pengguna Anda memiliki Server vCenter yang berbeda dari cluster admin.
Cluster pengguna Anda menggunakan registry penampung 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.30.300-gke.84-full.tgz
USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna Anda
4. Membuat cluster pengguna
Buat cluster pengguna:
gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Jika menggunakan Kontrol Layanan VPC, Anda mungkin melihat error saat menjalankan beberapa
perintah gkectl
, seperti "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services"
. Untuk menghindari error ini, tambahkan
parameter --skip-validation-gcp
ke perintah Anda.
Menemukan file kubeconfig cluster pengguna
Perintah gkectl create cluster
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 mau, Anda dapat mengubah nama dan lokasi file kubeconfig.
5. Memverifikasi bahwa 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 Buat cluster Google Distributed Cloud.
Pilih project Google Cloud tempat Anda ingin membuat cluster. Project yang dipilih juga digunakan sebagai project host fleet. Project ini harus project yang sama dengan project tempat cluster admin terdaftar. Setelah dibuat, cluster pengguna akan otomatis terdaftar ke fleet project yang dipilih.
Dasar-dasar cluster
Masukkan informasi dasar tentang cluster.
Masukkan Name untuk cluster pengguna.
Di bagian Cluster admin, pilih cluster admin 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: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 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 di Google Cloud secara unik.
- 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 akan 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 di semua namespace.Klik Next untuk membuka bagian Control plane.
Bidang Kontrol
Semua kolom di bagian Control plane ditetapkan dengan nilai default. Tinjau setelan default dan, jika perlu, ubah setelan tersebut.
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 untuk cluster pengguna Anda.
Di bagian Control-plane nodes, pilih jumlah node bidang kontrol untuk cluster pengguna Anda. Misalnya, Anda dapat memilih 1 node control plane untuk lingkungan pengembangan dan 3 node control plane untuk lingkungan produksi dengan ketersediaan tinggi (HA).
Jika mau, pilih Automatic node resizing. Mengubah ukuran berarti resource vCPU dan memori yang ditetapkan ke node akan disesuaikan secara otomatis. Jika diaktifkan, ukuran node kontrol-plane untuk cluster pengguna akan diubah 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.
Jika mau, pilih Enable control plane v2. Mengaktifkan Controlplane V2 berarti bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node di cluster pengguna itu sendiri, bukan di cluster admin (disebut sebagai kubeception).
Saat Anda memilih Enable control plane v2, bagian Control plane node IPs akan ditampilkan. Masukkan alamat IP untuk gateway, mask subnet, dan alamat IP untuk node bidang kontrol.
Jika Controlplane V2 diaktifkan, kolom vCPU dan memori berlaku untuk node bidang kontrol di cluster pengguna. Jumlah node ditentukan oleh jumlah alamat IP yang Anda masukkan. Jika Controlplane V2 tidak diaktifkan, kolom vCPU, memori, dan jumlah node bidang kontrol akan diterapkan ke node di cluster admin. Pastikan Anda menyisihkan alamat IP yang cukup untuk cluster admin.
Klik Next 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 diperlukan cluster pengguna?.
Di bagian Node IPs, pilih IP mode untuk cluster pengguna. Pilih salah satu opsi berikut:
DHCP: Pilih DHCP jika Anda ingin node cluster mendapatkan alamat IP-nya dari server DHCP.
Static: Pilih Static jika Anda ingin memberikan alamat IP statis untuk node cluster, atau jika Anda ingin menyiapkan load balancing manual.
Jika Anda memilih DHCP, lanjutkan ke langkah berikutnya untuk menentukan CIDR Service dan Pod. Untuk 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 Anda sendiri, lihat Alamat IP untuk Pod dan Service untuk mengetahui praktik terbaik.
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.
Dipaketkan dengan MetalLB
Mengonfigurasi load balancing yang dipaketkan dengan MetalLB. Anda dapat menggunakan MetalLB untuk cluster pengguna hanya jika cluster admin Anda menggunakan SeeSaw atau MetalLB. Opsi ini memerlukan konfigurasi minimal. MetalLB berjalan langsung di node cluster dan tidak memerlukan VM tambahan. Untuk informasi selengkapnya tentang manfaat menggunakan MetalLB dan perbandingannya dengan opsi load balancing lainnya, lihat Load balancing yang dipaketkan dengan MetalLB.Di bagian Address pools, konfigurasikan setidaknya satu address pool, sebagai berikut:
Masukkan nama untuk kumpulan alamat.
Masukkan rentang alamat IP yang berisi VIP masuk 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 dari jenis
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 Pemberian alamat IP, pilih salah satu opsi berikut:
Otomatis: Pilih opsi ini jika Anda ingin pengontrol MetalLB secara otomatis menetapkan alamat IP dari kumpulan alamat ke Layanan dengan jenis
LoadBalancer
Manual: Pilih opsi ini jika Anda ingin menggunakan alamat dari kumpulan untuk menentukan alamat secara manual untuk Layanan jenis
LoadBalancer
Klik Avoid buggy IP addresses 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 keliru menghapus traffic yang dikirim ke alamat IP khusus tersebut.
Setelah selesai, klik Selesai.
Jika perlu, klik Tambahkan Address Pool.
Di bagian Virtual IPs, masukkan hal berikut:
VIP bidang kontrol: Alamat IP tujuan yang akan digunakan untuk traffic yang dikirim ke server Kubernetes API cluster pengguna. Server Kubernetes API untuk cluster pengguna berjalan di node dalam cluster admin. Alamat IP ini harus berada di domain L2 yang sama dengan node cluster admin. Jangan tambahkan alamat ini di bagian Address pools.
VIP Ingress: Alamat IP yang akan dikonfigurasi 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 cluster admin.
Di bagian Virtual IPs, masukkan hal 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 kumpulan 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 jenisLoadBalancer
. 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 hal 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 Port node rencana kontrol, 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 Plugin Penyimpanan Container vSphere. Driver Antarmuka Penyimpanan Container (CSI) berjalan di cluster Kubernetes yang di-deploy di vSphere untuk menyediakan volume persisten di penyimpanan vSphere. Untuk informasi selengkapnya, lihat Menggunakan driver vSphere Container Storage Interface.
Mengaktifkan grup anti-afinitas: Aturan anti-afinitas VMware Distributed Resource Scheduler (DRS) otomatis dibuat untuk node cluster pengguna, sehingga node tersebut tersebar di setidaknya 3 host fisik di data center 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 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 dalam kumpulan (minimum 4 per pekerja cluster pengguna).
- Masukkan ukuran memori dalam mebibyte (MiB) untuk setiap node dalam kumpulan (minimum 8.192 MiB per node pekerja cluster pengguna dan harus kelipatan 4).
- Di kolom Nodes, masukkan jumlah node dalam kumpulan (minimum 3). Jika Anda memasukkan alamat IP statis untuk Node IP di bagian Networking, pastikan Anda memasukkan alamat IP yang cukup untuk mengakomodasi node cluster pengguna ini.
- Pilih 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 yang akan digunakan untuk MetalLB.
Di bagian Node pool metadata (optional), 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. Pembuatan cluster pengguna memerlukan waktu 15 menit atau lebih. 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 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 contoh.
Mengumpulkan informasi
Kumpulkan beberapa informasi yang diperlukan 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 terdaftar.Outputnya mirip dengan hal berikut ini:
NAME EXTERNAL_ID LOCATION admin-cluster-1 bb7803b4-8438-4b22-859f-4559b4b29072 global admin-cluster-2 ee16ee2b-6ec0-49fc-9413-3c89cbc70854 global admin-cluster-3 fc2b7ef5-39ff-4b63-b919-04c5adc67be4 us-west1
Lokasi menentukan tempat layanan Fleet dan Connect berjalan. Cluster admin yang dibuat sebelum 1.28 dikelola oleh layanan Fleet dan Connect global. Di versi 1.28 dan yang lebih baru, Anda dapat menentukan
global
atau region Google Cloud saat membuat cluster admin. Anda menentukan wilayah dalam flag--admin-cluster-membership-location
dalam contoh perintah yang mengikuti.Dapatkan daftar versi yang tersedia:
gcloud container vmware clusters query-version-config \ --admin-cluster-membership=ADMIN_CLUSTER_NAME \ --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \ --location=REGION
Ganti kode berikut:
ADMIN_CLUSTER_NAME
: Nama cluster admin.FLEET_HOST_PROJECT_ID
: ID project tempat cluster admin terdaftar.ADMIN_CLUSTER_REGION
: Region langganan armada cluster admin. Region ini bersifat global atau region Google Cloud. Gunakan lokasi untuk cluster admin dari outputgcloud container fleet memberships list
.REGION
: Region Google Cloud yang akan Anda gunakan saat membuat cluster pengguna. Ini adalah region tempat GKE On-Prem API berjalan dan menyimpan metadatanya.Jika cluster admin terdaftar di GKE On-Prem API, gunakan region yang sama dengan cluster admin. Untuk mengetahui region cluster admin, jalankan perintah berikut:
gcloud container vmware admin-clusters list \ --project=FLEET_HOST_PROJECT_ID \ --location=-
Jika cluster admin tidak terdaftar di GKE On-Prem API, tentukan
us-west1
atau region yang didukung lainnya. Jika Anda kemudian mendaftarkan cluster admin di GKE On-Prem API, gunakan region yang sama dengan cluster pengguna.
Output perintah
gcloud container vmware clusters query-version-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 menghasilkan penjelasan tentang versi yang dapat Anda gunakan untuk pembuatan atau upgrade cluster pengguna. Versi yang dapat Anda gunakan untuk membuat atau mengupgrade cluster pengguna dianotasi dengan
isInstalled: true
, yang berarti cluster admin memiliki komponen khusus versi yang diperlukan 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 yang lebih tinggi
Cluster admin dapat mengelola cluster pengguna di 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 lebih tinggi daripada cluster admin, Anda harus mendownload dan men-deploy komponen yang diperlukan cluster admin untuk mengelola cluster pengguna versi tersebut, sebagai berikut:
gcloud container vmware admin-clusters update ADMIN_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION \ --required-platform-version=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 yang diaktifkan. Dengan Controlplane V2, bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node di cluster pengguna itu sendiri. Sebaiknya aktifkan Controlplane V2, dan pada versi 1.30 dan yang lebih tinggi, cluster pengguna baru harus mengaktifkan Controlplane V2. Untuk informasi tentang opsi load balancing yang tersedia, lihat Ringkasan load balancer.
Sebagian besar contoh menggunakan nilai default untuk mengonfigurasi node platform kontrol. Jika Anda ingin mengubah salah satu setelan default, sertakan flag yang dijelaskan di bagian Flag platform kontrol. Jika perlu, Anda juga dapat mengubah beberapa setelan vSphere.
Sebelum menjalankan perintah gcloud
untuk membuat cluster, Anda dapat
menyertakan --validate-only
untuk memvalidasi konfigurasi yang Anda tentukan dalam
tanda ke perintah gcloud
. Jika 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 kembali 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 dipaketkan dan menggunakan server DHCP untuk mendapatkan alamat IP untuk node pekerja cluster.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 yang dipaketkan dengan MetalLB.
Contoh perintah membuat cluster pengguna dengan karakteristik berikut, yang dapat Anda ubah sesuai kebutuhan untuk lingkungan Anda.
Tanda | Deskripsi |
---|---|
--admin-users |
Memberikan hak administratif penuh kepada Anda dan pengguna lain di cluster. |
--enable-control-plane-v2 |
Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan dalam versi 1.30 dan yang lebih tinggi. |
--control-plane-ip-block |
Satu alamat IP untuk node bidang kontrol. Untuk membuat
cluster pengguna 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 masuk harus berada di salah satu kumpulan alamat. Anda menentukan
CIDR untuk satu alamat IP dengan menambahkan /32 ke alamat IP. |
gcloud container vmware clusters create USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership=ADMIN_CLUSTER_NAME \ --admin-cluster-membership-project=FLEET_HOST_PROJECT_ID \ --admin-cluster-membership-location=ADMIN_CLUSTER_REGION \ --location=REGION \ --version=VERSION \ --admin-users=YOUR_EMAIL_ADDRESS \ --admin-users=ANOTHER_EMAIL_ADDRESS \ --service-address-cidr-blocks=10.96.0.0/20 \ --pod-address-cidr-blocks=192.168.0.0/16 \ --metal-lb-config-address-pools='pool=NAME,avoid-buggy-ips=AVOID_BUGGY_IPS,manual-assign=MANUAL_ASSIGN,addresses=IP_ADDRESS_RANGE_1' \ --metal-lb-config-address-pools='pool=ingress-vip-pool,avoid-buggy-ips=False,manual-assign=True,addresses=INGRESS_VIP/32' \ --enable-control-plane-v2 \ --dns-servers=DNS_SERVER_1 \ --ntp-servers=NTP_SERVER_1 \ --control-plane-ip-block 'gateway=CP_GATEWAY,netmask=CP_NETMASK,ips=CP_IP_ADDRESS_1 CP_HOST_1' \ --control-plane-vip=CONTROL_PLANE_VIP \ --ingress-vip=INGRESS_VIP \ --enable-dhcp
Ganti kode berikut:
-
USER_CLUSTER_NAME
: Nama pilihan Anda untuk cluster pengguna. Nama tidak dapat diubah setelah cluster dibuat. Namanya harus:- berisi maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter abjad
- 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 dibuat, cluster pengguna akan otomatis terdaftar ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat. -
ADMIN_CLUSTER_NAME
: Nama cluster admin yang mengelola cluster pengguna. Dalam flag--admin-cluster-membership
, Anda dapat menggunakan nama cluster yang sepenuhnya ditentukan, yang memiliki format berikut:projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME
Atau, Anda dapat menetapkan
--admin-cluster-membership
ke nama cluster admin, seperti dalam contoh perintah. Jika Anda hanya menggunakan nama cluster admin, 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 di Google Cloud secara unik.
-
VERSION
: Versi Google Distributed Cloud untuk cluster pengguna Anda. -
YOUR_EMAIL_ADDRESS
danANOTHER_EMAIL_ADDRESS
: Jika tidak menyertakan flag--admin-users
, sebagai pembuat cluster, Anda akan diberi hak istimewa admin cluster secara default. Namun, jika menyertakan--admin-users
untuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan harus menyertakan alamat email Anda dan alamat email administrator lainnya. Misalnya, untuk menambahkan dua administrator:--admin-users=sara@example.com \ --admin-users=amal@example.com
Saat cluster dibuat, GKE On-Prem API menerapkan 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 di semua namespace.
-
SERVICE_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Minimal harus rentang /24.Contoh:
--service-address-cidr-blocks=10.96.0.0/20
-
POD_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Minimal harus rentang /18.Contoh:
--pod-address-cidr-blocks=192.168.0.0/16
-
--metal-lb-config-address-pools
: Sertakan flag ini untuk menentukan konfigurasi kumpulan alamat yang akan digunakan oleh load balancer MetalLB. Nilai untuk flag memiliki format berikut:--metal-lb-config-address-pool 'pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
Nilai memiliki segmen yang dimulai dengan kata kunci
pool
,avoid-buggy-ip
,manual-assign
, danaddresses
. Pisahkan setiap segmen dengan koma.-
pool
: Nama pilihan Anda untuk pool. -
avoid-buggy-ips
1: Jika Anda menetapkannya keTrue
, pengontrol MetalLB tidak akan menetapkan alamat IP yang diakhiri dengan .0 atau .255 ke Layanan. Hal ini menghindari masalah perangkat konsumen yang bermasalah yang keliru menghapus traffic yang dikirim ke alamat IP khusus tersebut. Jika tidak ditentukan, setelan defaultnya adalahFalse
. -
manual-assign
: Jika Anda tidak ingin pengontrol MetalLB secara otomatis menetapkan alamat IP dari kumpulan ini ke Layanan, tetapkan keTrue
. Kemudian, developer dapat membuat Layanan jenisLoadBalancer
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 masuk), gunakan /32 dalam notasi CIDR, misalnya:192.0.2.1/32
.
Perhatikan hal berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap rentang alamat IP dengan titik koma.
Contoh:
--metal-lb-config-address-pool 'pool=pool1,avoid-buggy-ips=True,manual-assign=True,addresses=10.251.134.80/32;192.168.1.0/26;192.168.1.2-192.168.1.3'
-
-
CONTROL_PLANE_VIP
: Alamat IP yang 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 masuk.Contoh:
--ingress-vip=10.251.134.80
Alamat IP untuk VIP masuk harus berada di salah satu kumpulan alamat MetalLB.
--enable-dhcp
: Sertakan--enable-dhcp
jika Anda ingin node cluster mendapatkan alamat IP-nya dari server DHCP yang Anda sediakan. Jangan sertakan flag 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 dipaketkan 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 yang dipaketkan dengan MetalLB.
Contoh perintah membuat cluster pengguna dengan karakteristik berikut, yang dapat Anda ubah sesuai kebutuhan untuk lingkungan Anda.
Tanda | Deskripsi |
---|---|
--admin-users |
Memberikan hak administratif penuh kepada Anda dan pengguna lain di cluster. |
--enable-control-plane-v2 |
Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan dalam versi 1.30 dan yang lebih tinggi. |
--control-plane-ip-block |
Satu alamat IP untuk node bidang kontrol. Untuk membuat
cluster pengguna 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 masuk 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. Namanya harus:- berisi maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter abjad
- 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 dibuat, cluster pengguna akan otomatis terdaftar ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat. -
ADMIN_CLUSTER_NAME
: Nama cluster admin yang mengelola cluster pengguna. Dalam flag--admin-cluster-membership
, Anda dapat menggunakan nama cluster yang sepenuhnya ditentukan, yang memiliki format berikut:projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME
Atau, Anda dapat menetapkan
--admin-cluster-membership
ke nama cluster admin, seperti dalam contoh perintah. Jika Anda hanya menggunakan nama cluster admin, 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 di Google Cloud secara unik.
-
VERSION
: Versi Google Distributed Cloud untuk cluster pengguna Anda. -
YOUR_EMAIL_ADDRESS
danANOTHER_EMAIL_ADDRESS
: Jika tidak menyertakan flag--admin-users
, sebagai pembuat cluster, Anda akan diberi hak istimewa admin cluster secara default. Namun, jika menyertakan--admin-users
untuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan harus menyertakan alamat email Anda dan alamat email administrator lainnya. Misalnya, untuk menambahkan dua administrator:--admin-users=sara@example.com \ --admin-users=amal@example.com
Saat cluster dibuat, GKE On-Prem API menerapkan 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 di semua namespace.
-
SERVICE_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Minimal harus rentang /24.Contoh:
--service-address-cidr-blocks=10.96.0.0/20
-
POD_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Minimal harus rentang /18.Contoh:
--pod-address-cidr-blocks=192.168.0.0/16
-
--metal-lb-config-address-pools
: Sertakan flag ini untuk menentukan konfigurasi kumpulan alamat yang akan digunakan oleh load balancer MetalLB. Nilai untuk flag memiliki format berikut:--metal-lb-config-address-pool 'pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
Nilai memiliki segmen yang dimulai dengan kata kunci
pool
,avoid-buggy-ip
,manual-assign
, danaddresses
. Pisahkan setiap segmen dengan koma.-
pool
: Nama pilihan Anda untuk pool. -
avoid-buggy-ips
1: Jika Anda menetapkannya keTrue
, pengontrol MetalLB tidak akan menetapkan alamat IP yang diakhiri dengan .0 atau .255 ke Layanan. Hal ini menghindari masalah perangkat konsumen yang bermasalah yang keliru menghapus traffic yang dikirim ke alamat IP khusus tersebut. Jika tidak ditentukan, setelan defaultnya adalahFalse
. -
manual-assign
: Jika Anda tidak ingin pengontrol MetalLB secara otomatis menetapkan alamat IP dari kumpulan ini ke Layanan, tetapkan keTrue
. Kemudian, developer dapat membuat Layanan jenisLoadBalancer
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 masuk), gunakan /32 dalam notasi CIDR, misalnya:192.0.2.1/32
.
Perhatikan hal berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap rentang alamat IP dengan titik koma.
Contoh:
--metal-lb-config-address-pool 'pool=pool1,avoid-buggy-ips=True,manual-assign=True,addresses=10.251.134.80/32;192.168.1.0/26;192.168.1.2-192.168.1.3'
-
-
CONTROL_PLANE_VIP
: Alamat IP yang 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 masuk.Contoh:
--ingress-vip=10.251.134.80
Alamat IP untuk VIP masuk 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 flag memiliki format berikut:--static-ip-config-ip-blocks 'gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1;IP_ADDRESS_2 HOST_2;...'
Nilai memiliki segmen yang dimulai dengan kata kunci
gateway
,netmask
, danips
. Pisahkan segmen dengan koma.Perhatikan hal berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan kecuali di antara alamat IP dan nama host.
Dalam daftar alamat IP:
- Anda dapat menentukan setiap alamat IP atau blok alamat IP CIDR.
- Pisahkan setiap alamat IP atau blok CIDR dengan titik koma.
- Untuk setiap alamat IP, Anda dapat menentukan nama host secara opsional 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 domain penelusuran DNS yang dipisahkan koma untuk digunakan oleh 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 untuk lingkungan Anda.
Tanda | Deskripsi |
---|---|
--admin-users |
Memberikan hak administratif penuh kepada Anda dan pengguna lain di cluster. |
--enable-control-plane-v2 |
Mengaktifkan Controlplane V2, yang direkomendasikan dan diperlukan dalam versi 1.30 dan yang lebih tinggi. |
--control-plane-ip-block |
Satu alamat IP untuk node bidang kontrol. Untuk membuat
cluster pengguna 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. Namanya harus:- berisi maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter abjad
- 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 dibuat, cluster pengguna akan otomatis terdaftar ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat. -
ADMIN_CLUSTER_NAME
: Nama cluster admin yang mengelola cluster pengguna. Dalam flag--admin-cluster-membership
, Anda dapat menggunakan nama cluster yang sepenuhnya ditentukan, yang memiliki format berikut:projects/FLEET_HOST_PROJECT_ID/locations/ADMIN_CLUSTER_REGION/memberships/ADMIN_CLUSTER_NAME
Atau, Anda dapat menetapkan
--admin-cluster-membership
ke nama cluster admin, seperti dalam contoh perintah. Jika Anda hanya menggunakan nama cluster admin, 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 di Google Cloud secara unik.
-
VERSION
: Versi Google Distributed Cloud untuk cluster pengguna Anda. -
YOUR_EMAIL_ADDRESS
danANOTHER_EMAIL_ADDRESS
: Jika tidak menyertakan flag--admin-users
, sebagai pembuat cluster, Anda akan diberi hak istimewa admin cluster secara default. Namun, jika menyertakan--admin-users
untuk menetapkan pengguna lain sebagai administrator, Anda akan mengganti setelan default dan harus menyertakan alamat email Anda dan alamat email administrator lainnya. Misalnya, untuk menambahkan dua administrator:--admin-users=sara@example.com \ --admin-users=amal@example.com
Saat cluster dibuat, GKE On-Prem API menerapkan 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 di semua namespace.
-
SERVICE_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster Anda. Minimal harus rentang /24.Contoh:
--service-address-cidr-blocks=10.96.0.0/20
-
POD_CIDR_BLOCK
: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster Anda. Minimal harus 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 masuk.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 flag memiliki format berikut:--static-ip-config-ip-blocks 'gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1;IP_ADDRESS_2 HOST_2;...'
Nilai memiliki segmen yang dimulai dengan kata kunci
gateway
,netmask
, danips
. Pisahkan segmen dengan koma.Perhatikan hal berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan kecuali di antara alamat IP dan nama host.
Dalam daftar alamat IP:
- Anda dapat menentukan setiap alamat IP atau blok alamat IP CIDR.
- Pisahkan setiap alamat IP atau blok CIDR dengan titik koma.
- Untuk setiap alamat IP, Anda dapat menentukan nama host secara opsional 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 domain penelusuran DNS yang dipisahkan koma untuk digunakan oleh host. Domain ini digunakan sebagai bagian dari daftar penelusuran domain.Contoh:
--dns-search-domains example.com,examplepetstore.com
-
NTP_SERVER
: Daftar alamat IP server waktu yang dipisahkan koma untuk digunakan VM.
Flag bidang kontrol
Jika Anda ingin menggunakan nilai non-default untuk konfigurasi bidang kontrol, sertakan satu atau beberapa flag berikut:
--cpus=vCPUS
: Jumlah vCPU (minimum 4) untuk setiap node platform kontrol untuk cluster pengguna Anda. Jika tidak ditentukan, defaultnya adalah 4 vCPU.--memory=MEMORY
: Ukuran memori dalam mebibyte (MiB) untuk setiap bidang kontrol untuk cluster pengguna Anda. Nilai minimumnya adalah 8192 dan harus kelipatan 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 akan disesuaikan secara otomatis. Jika diaktifkan, node kontrol-plane untuk cluster pengguna akan diubah ukurannya sesuai dengan jumlah node pekerja dalam cluster pengguna. Jadi, saat Anda menambahkan lebih banyak node pekerja 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, control plane untuk cluster pengguna akan 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 setiap alamat IP atau blok alamat IP CIDR.
Pisahkan setiap alamat IP atau blok CIDR dengan titik koma.
Untuk setiap alamat IP, Anda dapat menentukan nama host secara opsional 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 otomatis dibuat untuk node cluster pengguna, sehingga node tersebut tersebar di setidaknya 3 host fisik di pusat data Anda. Pastikan lingkungan vSphere Anda memenuhi persyaratan. Jika cluster Anda tidak memenuhi persyaratan, sertakan tanda ini.--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 informasi selengkapnya, lihat Menggunakan driver vSphere Container Storage Interface. Jika Anda tidak ingin men-deploy komponen CSI, sertakan flag 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 operasi vmware container gcloud.
Pembuatan cluster pengguna memerlukan waktu 15 menit atau lebih. Anda dapat melihat cluster di konsol Google Cloud di halaman cluster GKE.
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 maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter abjad
- 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 OS image 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 dalam kumpulan. Minimumnya adalah 40 GiB.vCPUs
: Jumlah vCPU untuk setiap node di node pool. Minimumnya adalah 4.MEMORY
: Ukuran memori dalam mebibyte (MiB) untuk setiap node dalam kumpulan. Nilai minimumnya adalah 8192 MiB per node pekerja cluster pengguna dan nilainya harus kelipatan 4.NODES
: Jumlah node di node pool. Jumlah 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 kumpulan. MetalLB harus diaktifkan di setidaknya satu node pool. Jika tidak menyertakan flag ini, Anda harus membuat node pool lain untuk digunakan untuk MetalLB.Untuk 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.30.200-gke.101 \ --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.30.200-gke.101 \ --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.30.200-gke.101 \ --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 terdaftar.Outputnya mirip dengan hal berikut ini:
NAME EXTERNAL_ID LOCATION admin-cluster-1 bb7803b4-8438-4b22-859f-4559b4b29072 global admin-cluster-2 ee16ee2b-6ec0-49fc-9413-3c89cbc70854 global admin-cluster-3 fc2b7ef5-39ff-4b63-b919-04c5adc67be4 us-west1
Lokasi menentukan tempat layanan Fleet dan Connect berjalan. Cluster admin yang dibuat sebelum 1.28 dikelola oleh layanan Fleet dan Connect global. Di versi 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 cluster admin terdaftar.ADMIN_CLUSTER_REGION
: Region langganan armada cluster admin. Region ini bersifat global atau region Google Cloud. Gunakan lokasi untuk cluster admin dari outputgcloud container fleet memberships list
.REGION
: Region Google Cloud yang akan Anda gunakan saat membuat cluster. Ini adalah region tempat GKE On-Prem API dan 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
Versi yang dapat Anda gunakan untuk membuat cluster pengguna dianotasi dengan
isInstalled=true
, yang berarti cluster admin memiliki komponen khusus versi yang diperlukan untuk mengelola cluster pengguna dari versi tersebut. Jika Anda ingin membuat cluster pengguna dengan versi lain yang tersedia, lihat Menginstal versi yang lebih baru dari versi cluster admin.
Contoh
Anda dapat menggunakan contoh konfigurasi dasar berikut untuk membuat cluster pengguna dengan load balancer MetalLB yang dipaketkan dan satu node pool.
Untuk informasi selengkapnya dan contoh lainnya, lihat
dokumentasi referensi google_gkeonprem_vmware_cluster
.
Menetapkan variabel di terraform.tfvars
Contoh ini memberikan contoh file variabel untuk diteruskan ke main.tf
, yang
menunjukkan cara mengonfigurasi load balancer MetalLB yang dipaketkan dan memungkinkan
node cluster Anda mendapatkan alamat IP-nya dari server DHCP yang Anda
berikan.
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 parameter value 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 dibuat, cluster pengguna akan otomatis terdaftar ke fleet project yang dipilih. Project host fleet tidak dapat diubah setelah cluster dibuat.region
: Region Google Cloud tempat GKE On-Prem API (gkeonprem.googleapis.com
), layanan Fleet (gkehub.googleapis.com
), dan layanan Connect (gkeconnect.googleapis.com
) berjalan. Tentukanus-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 wilayah. 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. Biasanya, Anda menentukan versi yang sama dengan cluster admin. Untuk menentukan versi yang lebih baru, Instal versi yang lebih baru dari versi cluster admin. Jika Anda tidak mengetahui versi cluster admin, jalankangcloud container vmware clusters query-version-config
, yang merupakan langkah pertama dalam Menginstal versi yang lebih baru daripada versi cluster admin.admin_user_emails
: Daftar alamat email pengguna yang akan diberi hak istimewa administratif di cluster. Pastikan untuk menambahkan alamat email Anda jika Anda ingin mengelola cluster.Saat cluster dibuat, GKE On-Prem API akan menerapkan kebijakan kontrol akses berbasis peran (RBAC) Kubernetes ke cluster untuk memberikan peran
clusterrole/cluster-admin
Kubernetes kepada pengguna admin, yang memberikan akses penuh ke setiap resource dalam cluster di 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 maksimal 40 karakter
- hanya berisi karakter alfanumerik huruf kecil atau tanda hubung (
-
) - diawali dengan karakter abjad
- diakhiri dengan karakter alfanumerik
control_plane_node_cpus
: Jumlah vCPU untuk setiap node bidang kontrol untuk cluster pengguna Anda. Jumlah minimumnya adalah 4 vCPU.control_plane_node_memory
: Ukuran memori dalam mebibyte (MiB) untuk setiap bidang kontrol untuk cluster pengguna Anda. Nilai minimumnya adalah 8192 dan harus kelipatan 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 cluster pengguna.ingress_vip
: Alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk proxy traffic masuk.lb_address_pools
: Daftar peta yang menentukan kumpulan alamat yang akan digunakan oleh load balancer MetalLB. VIP ingress harus berada di salah satu kumpulan ini. Tentukan nilai berikut:name
: Nama untuk pool.addresses
: Rentang alamat dalam notasi CIDR atau format rentang dengan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (seperti untuk VIP masuk), gunakan /32 dalam notasi CIDR, misalnya:192.0.2.1/32
.
Ganti contoh alamat IP dengan nilai Anda, dan tambahkan kumpulan alamat tambahan jika diperlukan.
Simpan perubahan di
terraform.tfvars
. Jika Anda tidak ingin membuat perubahan opsional padamain.tf
, lanjutkan ke bagian berikutnya, Membuat cluster dan satu node pool.
Opsional: Konfigurasikan setelan cluster di main.tf
Bagian ini menjelaskan beberapa perubahan konfigurasi opsional yang dapat
Anda lakukan di main.tf
. Sebelum melakukan perubahan, buat cadangan main.tf
:
cp main.tf main.tf.bak
Mode pemberian alamat IP node pekerja
Secara default, main.tf
mengonfigurasi cluster untuk menggunakan server DHCP yang Anda berikan untuk menetapkan alamat IP ke node pekerja cluster. DHCP
dikonfigurasi dengan menyertakan peta dhcp_config
dalam blok
network_config
. Jika Anda ingin memberikan 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. Minimal harus rentang /24.pod_address_cidr_blocks
: Rentang alamat IP, dalam format CIDR, untuk digunakan untuk Pod di cluster Anda. Minimal harus 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.
Mengonfigurasi Controlplane V2
Secara default, main.tf
mengonfigurasi control plane untuk cluster pengguna agar
berjalan di satu atau beberapa node di cluster admin (disebut sebagai
model kubeception). Jika mau, Anda dapat mengaktifkan Controlplane V2. Jika
Controlplane V2 diaktifkan, platform kontrol untuk cluster pengguna akan berjalan di satu
atau beberapa node di cluster pengguna itu sendiri. Untuk mengonfigurasi Controlplane V2,
lakukan perubahan berikut pada main.tf
:
Tambahkan baris berikut setelah baris dengan
admin_cluster_membership
: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 untuk
netmask
dangateway
dengan alamat IP dari jaringan Anda. Gantiip
danhostname
dengan alamat IP node bidang kontrol Anda.
Membuat cluster dan satu node pool
Lakukan inisialisasi dan buat rencana Terraform:
terraform init
Terraform menginstal library yang diperlukan, seperti penyedia Google Cloud.
Tinjau konfigurasi dan buat perubahan jika diperlukan:
terraform plan
Terapkan rencana Terraform untuk membuat cluster pengguna:
terraform apply
Perlu waktu sekitar 15 menit atau lebih untuk membuat cluster pengguna, dan 15 menit lagi untuk membuat node pool. Anda dapat melihat cluster di konsol Google Cloud di halaman cluster GKE.
Pemecahan masalah
Lihat Memecahkan masalah pembuatan dan upgrade cluster.