Dokumen ini menunjukkan cara membuat cluster admin untuk GKE di VMware. Cluster admin menjalankan bidang kontrol Kubernetes untuk cluster admin itu sendiri dan untuk cluster pengguna terkait. Anda harus membuat cluster admin sebelum membuat cluster pengguna untuk menjalankan beban kerja Anda.
Untuk mengetahui detail selengkapnya tentang cluster admin, baca ringkasan penginstalan.
Ringkasan prosedur
Berikut adalah langkah-langkah utama yang diperlukan dalam membuat cluster admin:
- Menyiapkan workstation admin.
- Mesin ini memiliki alat yang diperlukan untuk membuat cluster baru.
- Isi file konfigurasi Anda.
- Tentukan detail untuk cluster admin baru Anda dengan melengkapi dan memvalidasi file konfigurasi cluster admin, file konfigurasi kredensial, dan mungkin file blok IP.
- Impor image OS ke vSphere, dan kirim image container ke registry pribadi jika ada.
- Jalankan
gkectl prepare
.
- (Opsional) Membuat load balancer Seesaw.
- Jika Anda telah memutuskan untuk menggunakan load balancer Seesaw, jalankan
gkectl create loadbalancer
.
- Buat cluster admin.
- Gunakan
gkectl
untuk membuat cluster admin baru seperti yang ditentukan dalam file konfigurasi yang sudah selesai.onprem-admin-cluster-controller
dalam cluster bootstrap sementara mengelola pembuatan cluster admin.
- Pastikan cluster admin Anda sedang berjalan.
- Gunakan
kubectl
untuk melihat node cluster Anda.
Pada akhir prosedur ini, Anda akan memiliki cluster admin yang berjalan yang dapat digunakan untuk membuat dan mengelola cluster pengguna.
Sebelum memulai
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 terkait jenis load balancer yang ingin Anda gunakan. Untuk load balancer tertentu, Anda harus menyiapkan load balancer sebelum membuat cluster admin.
Lihat bagian
privateRegistry
ke depan, lalu tentukan apakah Anda ingin menggunakan registry publik atau pribadi untuk GKE di komponen VMware.Lihat kolom osImageType ke depan, lalu tentukan jenis sistem operasi yang ingin dijalankan pada node cluster admin Anda
1. Menyiapkan workstation admin
Pastikan Anda telah menyiapkan dan dapat login ke workstation admin seperti yang dijelaskan di Membuat workstation admin. Workstation admin memiliki alat yang Anda perlukan untuk membuat cluster admin.
Lakukan semua langkah selanjutnya dalam topik ini di workstation admin.
2. Isi file konfigurasi Anda
Saat membuat workstation admin Anda, gkeadm
menghasilkan file konfigurasi
bernama admin-cluster.yaml
. File konfigurasi ini ditujukan untuk membuat cluster
admin Anda.
Pelajari file konfigurasi dengan memindai dokumen file konfigurasi cluster admin. Sebaiknya biarkan dokumen ini tetap terbuka di tab atau jendela terpisah, karena Anda akan merujuknya saat menyelesaikan langkah-langkah berikut.
name
Jika Anda ingin menetapkan nama untuk cluster admin, isi kolom
name
.
bundlePath
Paket ini adalah file ZIP yang berisi komponen cluster. Perangkat ini disertakan dalam workstation admin. Kolom ini sudah diisi untuk Anda.
vCenter
Sebagian besar kolom di bagian ini sudah diisi dengan nilai yang Anda masukkan saat membuat workstation admin. Pengecualiannya adalah kolom
dataDisk
yang harus Anda isi sekarang.
network
Tentukan cara yang Anda inginkan untuk mendapatkan alamat IP bagi node cluster Anda. 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.
Isi kolom lainnya di bagian jaringan file konfigurasi sesuai kebutuhan:
Jika Anda memutuskan untuk menggunakan alamat IP statis untuk node cluster, kolom
network.ipMode.ipBlockFilePath
dan bagiannetwork.hostconfig
diperlukan. Bagiannetwork.hostconfig
menyimpan informasi tentang server NTP, server DNS, dan domain penelusuran DNS yang digunakan oleh node cluster Anda.Jika Anda menggunakan cluster admin dengan ketersediaan tinggi (HA), atau jika menggunakan load balancer Seesaw, bagian
network.hostconfig
wajib disertakan, terlepas dari penggunaan DHCP atau IP statis untuk node cluster Anda.Kolom network.podCIDR dan network.serviceCIDR memiliki nilai yang telah diisi otomatis dan tidak perlu 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 node cluster admin Anda. Hal ini mencakup node dalam cluster admin yang menjalankan bidang kontrol untuk cluster pengguna terkait. Untuk mendapatkan penjelasan tentang jumlah alamat IP yang Anda perlukan, lihat Merencanakan alamat IP Anda.
Cluster admin ketersediaan tinggi
Jika Anda ingin membuat cluster admin dengan ketersediaan tinggi (HA), isi bagian
network.controlPlaneIPBlock
dan
network.hostConfig
. Tetapkan juga
adminMaster.replicas
ke 3
.
Cluster admin ketersediaan tinggi memiliki tiga node yang menjalankan komponen bidang kontrol.
Cluster admin dengan ketersediaan tinggi (HA) memiliki persyaratan dan batasan berikut:
Cluster pengguna yang dikelola oleh cluster admin dengan ketersediaan tinggi (HA) harus mengaktifkan Controlplane V2.
Anda tidak dapat menggunakan load balancer Seesaw untuk cluster admin dengan ketersediaan tinggi (HA). Anda juga tidak dapat menggunakan load balancer Seesaw untuk cluster pengguna yang dikelola oleh cluster admin dengan ketersediaan tinggi (HA).
loadBalancer
Sisihkan VIP untuk server Kubernetes API dari cluster admin Anda. Sisihkan VIP lain
untuk server {i>add-on<i}. Berikan VIP Anda sebagai nilai untuk
loadBalancer.vips.controlPlaneVIP
dan
loadBalancer.vips.addonsVIP
.
Untuk mengetahui informasi selengkapnya, baca VIP di subnet cluster admin.
Tentukan jenis load balancing yang ingin Anda gunakan. Opsinya adalah:
Load balancing yang dipaketkan MetalLB. Setel
loadBalancer.kind
ke"MetalLB"
.Load balancing paket Seesaw. Tetapkan
loadBalancer.kind
ke"Seesaw"
, dan isi bagianloadBalancer.seesaw
.Load balancing terintegrasi dengan F5 BIG-IP. Tetapkan
loadBalancer.kind
ke"F5BigIP"
, dan isi bagianf5BigIP
.Load balancing manual. Tetapkan
loadBalancer.kind
ke"ManualLB"
, dan isi bagianmanualLB
.
Untuk mengetahui informasi selengkapnya tentang opsi load balancing, lihat Ringkasan load balancing.
antiAffinityGroups
Tetapkan antiAffinityGroups.enabled
ke true
atau false
sesuai dengan preferensi Anda.
Gunakan kolom ini untuk menentukan apakah Anda ingin GKE di VMware membuat aturan anti-afinitas Distributed Resource Scheduler (DRS) VMware untuk node cluster admin Anda, yang menyebabkannya disebar di setidaknya tiga host fisik di pusat data Anda.
adminMaster
Jika Anda ingin menentukan CPU dan memori untuk node bidang kontrol cluster
admin, isi kolom cpus
dan memoryMB
di
bagian
adminMaster
.
Pratinjau: Jika Anda ingin membuat
cluster admin ketersediaan tinggi, tetapkan
kolom replicas
di bagian adminMaster
ke 3
. Jika tidak, tetapkan
ke 1
.
addonNode
Setel
addonNode.autoResize.enabled
ke true
atau false
sesuai dengan preferensi Anda.
proxy
Jika jaringan yang akan memiliki node cluster admin berada di belakang server proxy,
isi bagian
proxy
.
privateRegistry
Tentukan tempat Anda ingin menyimpan image container untuk GKE di komponen VM. Opsinya adalah:
Container Registry
Registry Docker pribadi Anda.
Jika ingin menggunakan registry pribadi Anda sendiri, isi bagian
privateRegistry
.
componentAccessServiceAccountKeyPath
GKE di VMware menggunakan akun layanan akses komponen Anda untuk mendownload komponen cluster dari Container Registry. Kolom ini menyimpan jalur file kunci JSON untuk akun layanan akses komponen Anda.
Kolom ini sudah diisi untuk Anda.
gkeConnect
Daftarkan cluster admin Anda ke fleet Google Cloud dengan mengisi bagian gkeConnect
.
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.
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 admin
.
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.
cloudAuditLogging
Jika 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.
clusterBackup
Jika Anda ingin mengaktifkan
pencadangan cluster admin,
tetapkan
clusterBackup.datastore
ke
datastore vSphere
tempat Anda ingin menyimpan cadangan cluster.
autoRepair
Jika Anda ingin
mengaktifkan perbaikan node otomatis
untuk cluster admin, tetapkan
autoRepair.enabled
ke true
.
secretsEncryption
Jika Anda ingin mengaktifkan enkripsi Secret yang selalu aktif, isi bagian secretsEncryption
.
osImageType
Tentukan jenis OS image yang ingin Anda gunakan untuk node cluster admin, dan isi bagian osImageType
sebagaimana mestinya.
Contoh file konfigurasi yang terisi
Berikut adalah contoh file blok IP yang terisi dan file konfigurasi cluster admin yang terisi. Konfigurasi ini mengaktifkan beberapa, tetapi tidak semua, fitur yang tersedia.
vc-01-ipblock.yaml
blocks: - netmask: 255.255.252.0 gateway: 172.16.23.254 ips: - ip: 172.16.20.10 hostname: admin-host1 - ip: 172.16.20.11 hostname: admin-host2 - ip: 172.16.20.12 hostname: admin-host3 - ip: 172.16.20.13 hostname: admin-host4 - ip: 172.16.20.14 hostname: admin-host5 - ip: 172.16.20.15 hostname: admin-host6 - ip: 172.16.20.16 hostname: admin-host7 - ip: 172.16.20.17 hostname: admin-host8
vc-01-admin-cluster.yaml
apiVersion: v1 kind: AdminCluster name: "gke-admin-01" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.11.0-gke.543-full.tgz" vCenter: address: "vc01.example" datacenter: "vc-01" cluster: "vc01-workloads-1" resourcePool: "vc-01-pool-1" datastore: "vc01-datastore-1" caCertPath: "/usr/local/google/home/me/certs/vc01-cert.pem"" credentials: fileRef: path: "credential.yaml" entry: "vCenter" dataDisk: "vc01-admin-disk.vmdk" network: hostConfig: dnsServers: - "203.0.113.1" - "198.51.100.1" ntpServers: - "216.239.35.4" ipMode: type: "static" ipBlockFilePath: "vc-01-ipblock.yaml" serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" vCenter: networkName: "vc01-net-1" loadBalancer: vips: controlPlaneVIP: "172.16.20.59" addonsVIP: "172.16.20.60" kind: "MetalLB" antiAffinityGroups: enabled: true componentAccessServiceAccountKeyPath: "sa-key.json" 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" disableVsphereResourceMetrics: false clusterBackup: datastore: "vc-01-datastore-bu" autoRepair: enabled: true osImageType: "ubuntu_containerd"
Memvalidasi file konfigurasi Anda
Setelah Anda mengisi file konfigurasi cluster admin, jalankan
gkectl check-config
untuk memverifikasi bahwa file tersebut valid:
gkectl check-config --config ADMIN_CLUSTER_CONFIG
Ganti ADMIN_CLUSTER_CONFIG dengan jalur file konfigurasi cluster admin 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. Mendapatkan OS image
Jalankan gkectl prepare
untuk melakukan inisialisasi lingkungan vSphere Anda:
gkectl prepare --config ADMIN_CLUSTER_CONFIG
Perintah gkectl prepare
melakukan tugas persiapan berikut:
Mengimpor OS image ke vSphere dan menandainya sebagai template VM.
Jika Anda menggunakan registry Docker pribadi, kirim image container ke registry Anda.
Secara opsional, memvalidasi pengesahan build image container, dengan demikian memverifikasi bahwa image dibangun dan ditandatangani oleh Google dan siap untuk deployment.
4. (Opsional) Membuat load balancer Seesaw
Perlu diingat bahwa Anda memiliki beberapa opsi load balancing untuk cluster admin: Metal LB, Seesaw, F5 BIG-IP, atau manual.
Jika Anda telah memilih untuk menggunakan load balancer Seesaw, lakukan langkah-langkah di bagian ini. Jika tidak, Anda dapat melewati bagian ini.
Buat dan konfigurasi VM untuk load balancer Seesaw:
gkectl create loadbalancer --config ADMIN_CLUSTER_CONFIG
5. Membuat cluster admin
Buat cluster admin:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
Melanjutkan pembuatan cluster admin setelah gagal
Jika pembuatan cluster admin gagal atau dibatalkan, Anda dapat menjalankan perintah create
lagi:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
Temukan file kubeconfig cluster admin
Perintah gkectl create admin
membuat file kubeconfig bernama kubeconfig
di direktori saat ini. Anda akan memerlukan file kubeconfig ini nanti untuk berinteraksi dengan cluster admin Anda.
File kubeconfig berisi nama cluster admin Anda. Untuk melihat nama cluster, Anda dapat menjalankan:
kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Output akan menampilkan nama cluster. Contoh:
NAME gke-admin-tqk8x
Jika mau, Anda dapat mengubah nama dan lokasi file kubeconfig Anda.
Kelola file checkpoint.yaml
Saat Anda menjalankan perintah gkectl create admin
untuk membuat cluster admin, perintah tersebut
akan membuat file checkpoint di folder datastore yang sama dengan disk data cluster
admin. Secara default, file ini memiliki nama
DATA_DISK_NAME‑checkpoint.yaml
. Jika panjang
DATA_DISK_NAME lebih dari atau sama dengan 245 karakter, karena
batas vSphere panjang nama file, namanya adalah
DATA_DISK_NAME.yaml
.
File ini berisi kredensial dan status cluster admin, serta digunakan untuk upgrade mendatang. Jangan hapus file ini kecuali Anda mengikuti proses untuk menghapus cluster admin.
Jika Anda telah mengaktifkan enkripsi VM di instance Server vCenter, Anda harus memiliki hak istimewa Cryptographic Operations.Direct Access
sebelum membuat atau mengupgrade cluster
admin Anda. Jika tidak, checkpoint tidak akan diupload. Jika tidak dapat memperoleh hak istimewa ini, Anda dapat menonaktifkan upload file checkpoint menggunakan flag tersembunyi --disable-checkpoint
saat menjalankan perintah yang relevan.
File checkpoint.yaml
otomatis diperbarui saat Anda menjalankan
perintah gkectl upgrade admin
, atau saat menjalankan perintah gkectl update
yang
memengaruhi cluster admin.
6. Memastikan cluster admin Anda sedang berjalan
Pastikan cluster admin Anda berjalan:
kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Ganti ADMIN_CLUSTER_KUBECONFIG dengan jalur file kubeconfig cluster admin Anda.
Output menunjukkan node cluster admin. Contoh:
gke-admin-master-hdn4z Ready control-plane,master ... gke-admin-node-7f46cc8c47-g7w2c Ready ... gke-admin-node-7f46cc8c47-kwlrs Ready ...
7. Mencadangkan file
Sebaiknya cadangkan file kubeconfig cluster admin Anda. Artinya, salin file kubeconfig dari workstation admin ke lokasi lain. Kemudian, jika Anda kehilangan akses ke workstation admin, atau jika file kubeconfig di workstation admin tidak sengaja dihapus, Anda masih memiliki akses ke cluster admin.
Sebaiknya cadangkan kunci SSH pribadi untuk cluster admin Anda. Kemudian, jika Anda kehilangan akses ke cluster admin, Anda masih dapat menggunakan SSH untuk terhubung ke node cluster admin. Hal ini akan memungkinkan Anda memecahkan dan menyelidiki masalah apa pun terkait konektivitas ke cluster admin.
Ekstrak kunci SSH dari cluster admin ke file bernama admin-cluster-ssh-key
:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get secrets -n kube-system sshkeys \ -o jsonpath='{.data.vsphere_tmp}' | base64 -d > admin-cluster-ssh-key
Sekarang Anda dapat mencadangkan admin-cluster-ssh-key
ke lokasi lain pilihan Anda.
Pemecahan masalah
Lihat Memecahkan masalah pembuatan dan upgrade cluster.