Dokumen ini menunjukkan cara membuat cluster pengguna dengan Controlplane V2 diaktifkan.
Dengan Controlplane V2, bidang kontrol untuk cluster pengguna berjalan pada satu atau beberapa node dalam cluster pengguna itu sendiri. Controlplane V2 adalah setelan default dan yang direkomendasikan untuk pembuatan cluster.
Ringkasan prosedur
Berikut adalah langkah-langkah utama yang diperlukan dalam membuat cluster pengguna:
- Menghubungkan ke workstation admin
- Workstation admin adalah VM yang memiliki alat yang diperlukan untuk membuat cluster pengguna.
- Isi file konfigurasi Anda
- Tentukan detail untuk cluster baru Anda dengan melengkapi file konfigurasi cluster pengguna, file konfigurasi kredensial, dan mungkin file blok IP.
- (Opsional) Impor OS image ke vSphere, dan kirim image container ke
- registry pribadi jika ada.
- Jalankan
gkectl prepare
.
- Membuat cluster pengguna
- Jalankan
gkectl create cluster
untuk membuat cluster seperti yang ditentukan dalam file konfigurasi Anda.
- Memastikan 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.
Sebelum memulai
Pastikan Anda telah membuat workstation admin dan cluster admin.
Tinjau dokumen perencanaan alamat IP. Pastikan Anda memiliki alamat IP yang cukup, dan tinjau kembali keputusan Anda tentang cara mendapatkan alamat IP dari node cluster: DHCP atau statis. Jika memutuskan untuk menggunakan alamat IP statis, Anda harus mengisi file blok IP yang berisi alamat pilihan Anda.
Tinjau ringkasan load balancing dan tinjau kembali keputusan Anda tentang jenis load balancer yang ingin Anda gunakan. Anda dapat menggunakan load balancer MetalLB yang dipaketkan, atau mengonfigurasi load balancer pilihan Anda secara manual. Untuk load balancing manual, Anda harus menyiapkan load balancer sebelum membuat cluster pengguna.
Lihat bagian vCenter di depan. 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 vCenter Server terpisah.
Lihat bagian nodePools sebelumnya. Pikirkan berapa banyak kumpulan node yang Anda butuhkan dan sistem operasi mana yang ingin Anda jalankan di setiap kumpulan.
1. Menghubungkan ke workstation admin
Dapatkan koneksi SSH ke workstation admin.
Ingat kembali bahwa gkeadm
mengaktifkan
akun layanan akses komponen Anda di workstation admin.
Lakukan semua langkah selanjutnya dalam topik ini di workstation admin di direktori utama.
2. Isi file konfigurasi Anda
Saat membuat workstation admin Anda, gkeadm
menghasilkan 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
GKE di VMware. Contoh, 1.15.0-gke.581
enableControlplaneV2
Setel
enableControlplaneV2
ke true
.
enableDataplaneV2
Tetapkan enableDataplaneV2 ke true
.
vCenter
Nilai yang Anda tetapkan di bagian vCenter
file konfigurasi cluster admin
bersifat global. Artinya, konfigurasi tersebut berlaku untuk cluster admin Anda dan cluster pengguna
terkaitnya.
Untuk setiap cluster pengguna yang dibuat, Anda memiliki opsi untuk mengganti beberapa
nilai vCenter
global.
Untuk mengganti salah satu nilai vCenter
global, isi kolom yang relevan di bagian vCenter
file konfigurasi cluster pengguna Anda.
Secara khusus, Anda mungkin ingin menggunakan cluster vSphere terpisah untuk cluster admin dan cluster pengguna, serta mungkin ingin menggunakan pusat data terpisah untuk cluster admin dan cluster pengguna.
Menggunakan satu pusat data dan satu cluster vSphere
Opsi defaultnya adalah menggunakan satu pusat data dan satu cluster vSphere untuk cluster admin dan cluster pengguna. Untuk opsi ini, jangan tetapkan nilai
vCenter
apa pun dalam file konfigurasi cluster pengguna. Nilai vCenter
akan diwarisi dari cluster admin.
Menggunakan cluster vSphere terpisah
Jika Anda ingin membuat cluster pengguna yang berada di cluster vSphere-nya sendiri,
tentukan nilai untuk vCenter.cluster
dalam file konfigurasi cluster pengguna.
Jika cluster admin dan cluster pengguna Anda berada di cluster vSphere terpisah, cluster tersebut dapat berada di pusat data yang sama atau pusat data yang berbeda.
Menggunakan pusat data vSphere terpisah
Cluster pengguna dan cluster admin dapat berada di pusat data yang berbeda. Dalam hal ini, paket tersebut juga berada di cluster vSphere terpisah.
Jika menentukan vCenter.datacenter
dalam file konfigurasi cluster pengguna, Anda juga harus menentukan:
vCenter.networkName
- Berupa
vCenter.datastore
atauvCenter.storagePolicyName
- Berupa
vCenter.cluster
atauvCenter.resourcePool
Menggunakan akun vCenter terpisah
Cluster pengguna dapat menggunakan akun vCenter 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 Server vCenter terpisah
Dalam situasi tertentu, sebaiknya buat cluster pengguna yang menggunakan instance Server vCenter-nya sendiri. Artinya, cluster admin dan cluster pengguna terkait menggunakan instance vCenter Server yang berbeda.
Misalnya, di lokasi edge, Anda mungkin ingin memiliki mesin fisik yang menjalankan vCenter Server dan satu atau beberapa mesin fisik yang menjalankan ESXi. Kemudian, Anda dapat menggunakan instance lokal Server vCenter untuk membuat hierarki objek vSphere, yang mencakup pusat data, cluster, kumpulan resource, datastore, dan folder.
Isi seluruh bagian
vCenter
pada file konfigurasi cluster pengguna Anda. Secara khusus, tentukan nilai untuk vCenter.address
yang berbeda 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 yang Anda inginkan bagi node pekerja untuk mendapatkan alamat IP. Opsinya adalah:
Dari server DHCP yang telah 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 blok IP, lihat Contoh file konfigurasi yang terisi.
Jika Anda memutuskan untuk menggunakan alamat IP statis untuk node pekerja, isi kolom
network.ipMode.ipBlockFilePath
.
Node bidang kontrol untuk cluster pengguna Anda harus mendapatkan alamat IP dari daftar alamat statis yang Anda berikan. Inilah yang terjadi bahkan jika {i>node<i} pekerja
Anda mendapatkan alamatnya dari server DHCP. Untuk menentukan alamat IP statis bagi node bidang kontrol, isi bagian network.controlPlaneIPBlock
. Jika Anda menginginkan cluster pengguna dengan ketersediaan tinggi (HA), tentukan tiga alamat IP. Jika tidak, tentukan satu alamat IP.
Tentukan server DNS dan NTP dengan mengisi bagian hostConfig
. Server DNS dan NTP ini
ditujukan untuk {i>node<i} bidang kontrol. Jika Anda menggunakan alamat IP statis untuk node pekerja, server DNS dan NTP ini juga ditujukan untuk node pekerja.
network.podCIDR dan network.serviceCIDR memiliki nilai yang telah terisi otomatis dan dapat Anda biarkan tidak diubah, 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 tersedia untuk cluster pengguna Anda. Untuk mendapatkan penjelasan tentang jumlah alamat IP yang Anda perlukan, lihat Merencanakan alamat IP.
loadBalancer
Sisihkan VIP untuk server Kubernetes API dari cluster pengguna Anda. Sisihkan
VIP lain untuk layanan masuk cluster pengguna Anda. Berikan VIP Anda sebagai
nilai untuk
loadBalancer.vips.controlPlaneVIP
dan
loadBalancer.vips.ingressVIP
.
Tentukan jenis load balancing yang ingin Anda gunakan. Opsinya adalah:
Load balancing yang dipaketkan MetalLB. Setel
loadBalancer.kind
ke"MetalLB"
. Isi juga bagianloadBalancer.metalLB.addressPools
, dan tetapkanenableLoadBalancer
ketrue
untuk setidaknya salah satu kumpulan node Anda. Untuk informasi selengkapnya, lihat Load balancing paket 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 untuk membuat gateway NAT keluar, tetapkan advancedNetworking ke true
.
multipleNetworkInterfaces
Tentukan apakah Anda ingin mengonfigurasi beberapa antarmuka jaringan untuk Pod, dan tetapkan multipleNetworkInterfaces secara sesuai.
storage
Jika ingin menonaktifkan deployment komponen CSI vSphere, 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 ingin mengaktifkan pengubahan ukuran otomatis untuk node bidang kontrol.
Ingat kembali bahwa Anda telah menentukan alamat IP untuk node bidang kontrol di bagian network.controlPlaneIPBlock
.
nodePools
Kumpulan node adalah kumpulan node dalam cluster yang semuanya memiliki konfigurasi yang sama. Misalnya, node dalam 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 serta Membuat dan mengelola kumpulan node.
antiAffinityGroups
Setel
antiAffinityGroups.enabled
ke true
atau false
.
Kolom ini menentukan apakah GKE di VMware membuat aturan anti-afinitas Distributed Resource Scheduler (DRS) untuk node pekerja Anda, yang menyebabkan aturan tersebut disebarkan di setidaknya tiga host fisik di pusat data Anda.
stackdriver
Jika ingin mengaktifkan Cloud Logging dan Cloud Monitoring untuk cluster Anda, 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
. 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 armada
dan akun layanan terkait.
Jika Anda menyertakan bagian stackdriver
dan cloudAuditLogging
dalam file konfigurasi, 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.
gkeOnPremAPI
Pada versi 1.16 dan yang lebih baru, jika GKE On-Prem API diaktifkan di project Google Cloud Anda, semua cluster dalam project akan terdaftar di GKE On-Prem API secara otomatis di region yang dikonfigurasi di stackdriver.clusterLocation
.
Jika ingin mendaftarkan semua cluster dalam project di GKE On-Prem API, pastikan Anda 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 ingin mengaktifkan pengukuran penggunaan untuk cluster Anda, isi bagian
usageMetering
.
cloudAuditLogging
Jika Anda ingin mengintegrasikan log audit dari server Kubernetes API cluster Anda 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 Google Cloud yang ditetapkan di
cloudAuditLogging.clusterLocation
harus sama dengan region yang ditetapkan distackdriver.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 terisi
Berikut adalah contoh file blok IP dan file konfigurasi cluster pengguna;
user-ipblock.yaml
blocks: - netmask: 255.255.255.0 gateway: 172.16.21.1 ips: - ip: 172.16.21.2 hostname: worker-vm-1 - ip: 172.16.21.3 hostname: worker-vm-2 - ip: 172.16.21.4 hostname: worker-vm-3 - ip: 172.16.21.5 hostname: worker-vm-4
user-cluster.yaml
cat user-cluster.yaml apiVersion: v1 kind: UserCluster name: "my-user-cluster" gkeOnPremVersion: 1.15.0-gke.581 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" 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 {i>node<i} 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 ditujukan untuk node bidang kontrol dan node pekerja. Hal ini dikarenakan node pekerja memiliki alamat IP statis. Jika node pekerja mendapatkan alamat IP dari server DHCP, server DNS dan NTP ini hanya akan ditujukan untuk node bidang kontrol.Alamat IP statis untuk tiga node bidang kontrol ditentukan di bagian
network.controlPlaneIPBlock
pada file konfigurasi cluster pengguna. Tidak diperlukan alamat IP tambahan di blok ini.Kolom
masterNode.replicas
ditetapkan ke3
.VIP bidang kontrol dan VIP ingress berada di VLAN yang sama dengan node pekerja dan node bidang kontrol.
VIP yang disisihkan untuk Layanan jenis LoadBalancer ditentukan di bagian
loadBalancer.metalLB.addressPools
pada file konfigurasi cluster pengguna. VIP ini berada di VLAN yang sama dengan node pekerja dan node bidang kontrol. Kumpulan VIP yang ditentukan dalam bagian ini harus menyertakan VIP ingress dan tidak boleh menyertakan VIP bidang kontrol.File konfigurasi cluster pengguna tidak menyertakan bagian
vCenter
. Jadi, cluster pengguna menggunakan resource vSphere yang sama dengan cluster admin.
Memvalidasi file konfigurasi Anda
Setelah 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 masalah dan validasi file kembali.
Jika Anda ingin melewati validasi yang lebih memakan waktu, teruskan flag --fast
.
Untuk melewati validasi satu per satu, gunakan tanda --skip-validation-xxx
. Untuk mempelajari perintah check-config
lebih lanjut, lihat Menjalankan pemeriksaan preflight.
3. (Opsional) Impor image OS ke vSphere, dan kirim image container ke registry pribadi
Jalankan gkectl prepare
jika salah satu kondisi berikut terpenuhi:
Cluster pengguna Anda berada di pusat data vSphere yang berbeda dari cluster admin Anda.
Cluster pengguna memiliki Server vCenter yang berbeda dengan cluster admin.
Cluster pengguna Anda menggunakan container registry pribadi yang berbeda dengan registry pribadi yang digunakan oleh cluster admin.
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.14.0-gke.421-full.tgz
USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna Anda
4. Membuat cluster pengguna
Membuat cluster pengguna:
gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Menemukan file kubeconfig cluster pengguna
Perintah gkectl create cluster
membuat file kubeconfig bernama USER_CLUSTER_NAME-kubeconfig
di direktori saat ini. Anda akan memerlukan
file kubeconfig ini nanti untuk berinteraksi dengan cluster pengguna.
File kubeconfig berisi nama cluster pengguna Anda. Untuk melihat nama cluster, Anda dapat menjalankan:
kubectl config get-clusters --kubeconfig USER_CLUSTER_KUBECONFIG
Output akan menampilkan nama cluster. Contoh:
NAME my-user-cluster
Jika mau, Anda dapat mengubah nama dan lokasi file kubeconfig Anda.
5. Memastikan cluster pengguna Anda berjalan
Pastikan cluster pengguna Anda berjalan:
kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG
Ganti USER_CLUSTER_KUBECONFIG dengan jalur file kubeconfig cluster pengguna Anda.
Output menunjukkan node cluster pengguna. Contoh:
cp-vm-1 Ready control-plane,master 18m cp-vm-2 Ready control-plane,master 18m cp-vm-3 Ready control-plane,master 18m worker-vm-1 Ready 6m7s worker-vm-2 Ready 6m6s worker-vm-3 Ready 6m14s
Mengupgrade cluster pengguna
Ikuti petunjuk dalam artikel Mengupgrade cluster Anthos di VMware.
Hapus cluster
Untuk menghapus cluster pengguna yang mengaktifkan Controlplane V2, ikuti petunjuk dalam Menghapus cluster pengguna.
Saat Anda menghapus cluster pengguna yang mengaktifkan Controlplane V2, disk data akan otomatis dihapus.
Pemecahan masalah
Baca artikel Memecahkan masalah pembuatan dan upgrade cluster.