Dokumen ini menunjukkan cara membuat cluster pengguna yang menggunakan kubeception.
Apa itu kubeception?
Istilah kubeception digunakan untuk menyampaikan gagasan bahwa cluster Kubernetes digunakan untuk membuat dan mengelola cluster Kubernetes lainnya. Dalam konteks GKE di VMware, kubeception mengacu pada kasus ketika bidang kontrol untuk cluster pengguna berjalan pada satu atau beberapa node dalam cluster admin.
Sebaiknya jangan gunakan kubeception. Sebagai gantinya, sebaiknya gunakan Controlplane V2. Dengan Controlplane V2, node bidang kontrol untuk cluster pengguna berada dalam cluster pengguna itu sendiri.
Merencanakan alamat IP Anda
Ikuti petunjuk di bagian Merencanakan alamat IP Anda (kubeception).
Mengisi file konfigurasi cluster
Ikuti petunjuk di Membuat cluster pengguna (Controlplane V2).
Saat Anda mengisi file konfigurasi cluster pengguna:
Tetapkan
enableControlplaneV2
kefalse
.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 paket Seesaw. Tetapkan
loadBalancer.kind
ke"Seesaw"
, dan isi bagianloadBalancer.seesaw
. Untuk mengetahui informasi selengkapnya, lihat Paket load balancing dengan Seesaw.Load balancing terintegrasi dengan F5 BIG-IP. Tetapkan
loadBalancer.kind
ke"F5BigIP"
, dan isi bagianf5BigIP
. Untuk mengetahui informasi selengkapnya, lihat Load balancing dengan F5 BIG-IP.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.
Tentukan apakah Anda ingin mengaktifkan Dataplane V2 untuk cluster pengguna, dan tetapkan enableDataplaneV2 yang sesuai.
Jika Anda menyertakan bagian
stackdriver
dancloudAuditLogging
di file konfigurasi, ID digkeConnect.projectID
harus sama dengan ID yang ditetapkan distackdriver.projectID
dancloudAuditLogging.projectID
. Jika project ID tidak sama, pembuatan cluster akan gagal.Jika menyertakan bagian
gkeOnPremAPI
,cloudAuditLogging
, danstackdriver
di file konfigurasi, Anda harus menetapkan region Google Cloud yang sama digkeOnPremAPI.location
,cloudAuditLogging.clusterLocation
, danstackdriver.location
. Jika region tidak sama, pembuatan cluster akan gagal.
Contoh file konfigurasi yang terisi
Berikut adalah contoh file blok IP yang terisi dan file konfigurasi cluster pengguna yang terisi. Konfigurasi ini mengaktifkan beberapa, tetapi tidak semua, fitur yang tersedia.
user-ipblock.yaml
blocks: - netmask: 255.255.252.0 gateway: 172.16.23.254 ips: - ip: 172.16.20.21 hostname: user-host1 - ip: 172.16.20.22 hostname: user-host2 - ip: 172.16.20.23 hostname: user-host3 - ip: 172.16.20.24 hostname: user-host4
user-cluster.yaml
apiVersion: v1 kind: UserCluster name: "my-user-cluster" gkeOnPremVersion: 1.15.0-gke.581 enableControlplaneV2: false network: hostConfig: dnsServers: - "203.0.113.1" - "198.51.100.1" ntpServers: - "216.239.35.4" ipMode: type: static ipBlockFilePath: "user-ipblock.yaml" serviceCIDR: 10.96.0.0/20 podCIDR: 192.168.0.0/16 loadBalancer: vips: controlPlaneVIP: "172.16.20.32" ingressVIP: "172.16.21.30" kind: "MetalLB" metalLB: addressPools: - name: "my-address-pool" addresses: - "172.16.21.30 - 172.16.21.39" enableDataplaneV2: true masterNode: cpus: 4 memoryMB: 8192 replicas: 1 nodePools: - name: "my-node-pool" cpus: 4 memoryMB: 8192 replicas: 3 osImageType: "ubuntu_containerd" 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
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.
(Opsional) Membuat load balancer Seesaw untuk cluster pengguna
Jika Anda telah memilih untuk menggunakan load balancer Seesaw yang dipaketkan, lakukan langkah di bagian ini. Jika tidak, lewati bagian ini.
Buat dan konfigurasi VM untuk load balancer Seesaw:
gkectl create loadbalancer --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
(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
Membuat cluster pengguna
Jalankan perintah berikut untuk 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.
Memastikan cluster pengguna Anda berjalan
Jalankan perintah berikut untuk memastikan 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:
my-user-cluster-node-pool-69-d46d77885-7b7tx Ready ... my-user-cluster-node-pool-69-d46d77885-lsvzk Ready ... my-user-cluster-node-pool-69-d46d77885-sswjk Ready ...
Pemecahan masalah
Baca artikel Memecahkan masalah pembuatan dan upgrade cluster.