Dokumen ini menunjukkan cara membuat cluster admin untuk Google Distributed Cloud. Cluster admin mengelola cluster pengguna yang 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:
- Siapkan workstation admin.
- Komputer ini memiliki alat yang diperlukan untuk membuat cluster baru.
- Isi file konfigurasi Anda.
- Tentukan detail untuk cluster admin baru Anda dengan menyelesaikan dan memvalidasi file konfigurasi cluster admin, file konfigurasi kredensial, dan mungkin file blok IP.
- Impor image OS ke vSphere, dan dorong image container ke registry pribadi, jika berlaku.
- Jalankan
gkectl prepare
.
- Membuat cluster admin.
- Gunakan
gkectl
untuk membuat cluster admin baru seperti yang ditentukan dalam file konfigurasi yang sudah selesai. Saat membuat cluster admin, Google Distributed Cloud akan men-deploy cluster Kubernetes in Docker (jenis) untuk menghosting sementara pengontrol Kubernetes yang diperlukan untuk membuat cluster admin. Cluster sementara ini disebut cluster bootstrap. Cluster pengguna dibuat dan diupgrade oleh admin pengelolanya tanpa menggunakan cluster bootstrap.
- Pastikan cluster admin Anda berjalan.
- Gunakan
kubectl
untuk melihat node cluster Anda.
Di akhir prosedur ini, cluster admin akan berjalan serta dapat digunakan untuk membuat dan mengelola cluster pengguna.
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.
Sebelum memulai
Tinjau dokumen perencanaan alamat IP. Pastikan Anda memiliki alamat IP yang cukup untuk tiga node bidang kontrol dan VIP bidang kontrol. Jika berencana untuk membuat cluster pengguna kubeception, Anda harus memiliki alamat IP yang cukup untuk node bidang kontrol dari cluster pengguna tersebut.
Tinjau ringkasan load balancing dan tinjau kembali keputusan Anda tentang jenis load balancer yang ingin digunakan. Untuk load balancer tertentu, Anda harus menyiapkan load balancer sebelum membuat cluster admin.
Lihat bagian
privateRegistry
di depan, dan tentukan apakah Anda ingin menggunakan registry publik atau pribadi untuk komponen Google Distributed Cloud.Lihat kolom osImageType ke depan, lalu tentukan jenis sistem operasi yang ingin Anda jalankan di node cluster admin.
Jika organisasi Anda mewajibkan traffic keluar untuk melewati server proxy, pastikan untuk mengizinkan API yang diperlukan dan alamat Container Registry.
Pada versi 1.29 dan yang lebih tinggi, pemeriksaan preflight sisi server diaktifkan secara default. Pemeriksaan preflight sisi server memerlukan aturan firewall tambahan. Di bagian Aturan firewall untuk cluster admin, telusuri "Preflight check" dan pastikan semua aturan firewall yang diperlukan telah dikonfigurasi. Pemeriksaan preflight sisi server dijalankan di cluster bootstrap, bukan secara lokal di workstation admin.
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 diperlukan untuk membuat cluster admin.
Lakukan semua langkah selanjutnya dalam dokumen ini di workstation admin Anda.
2. Isi file konfigurasi Anda
Jika Anda menggunakan gkeadm
untuk membuat workstation admin, file konfigurasi bernama admin-cluster.yaml
akan dibuat.
Jika Anda tidak menggunakan gkeadm
untuk membuat workstation admin, buat
admin-cluster.yaml
dengan menjalankan perintah ini di workstation admin:
gkectl create-config admin
File konfigurasi ini digunakan untuk membuat cluster admin Anda.
Pahami file konfigurasi dengan memindai dokumen file konfigurasi cluster admin. Sebaiknya biarkan dokumen ini terbuka di tab atau jendela terpisah, karena Anda akan merujuknya saat menyelesaikan langkah-langkah berikut.
name
Jika ingin menentukan nama untuk cluster admin, isi kolom
name
.
bundlePath
Paket ini adalah file zip yang berisi komponen cluster. Disertakan dalam workstation admin. Bidang ini sudah diisi untuk Anda.
vCenter
Kolom di bagian ini sudah diisi dengan nilai yang Anda masukkan saat membuat workstation admin.
network
Isi bagian
network.controlPlaneIPBlock
dan bagian
network.hostConfig
. Tetapkan juga
adminMaster.replicas
ke 3
.
Kolom network.podCIDR dan network.serviceCIDR memiliki nilai yang terisi otomatis dan tidak perlu diubah kecuali jika keduanya bentrok dengan alamat yang sudah digunakan di jaringan Anda. Kubernetes menggunakan rentang ini untuk menetapkan alamat IP ke Pod dan Layanan di cluster Anda.
Isi kolom lainnya di bagian jaringan file konfigurasi sesuai kebutuhan.
loadBalancer
Sisihkan VIP untuk server Kubernetes API dari cluster admin Anda. Berikan
VIP Anda sebagai nilai untuk
loadBalancer.vips.controlPlaneVIP
Untuk mengetahui informasi selengkapnya, lihat VIP di subnet cluster admin.
Tentukan jenis load balancing yang ingin Anda gunakan. Opsinya adalah:
Load balancing yang dipaketkan untuk MetalLB. Tetapkan
loadBalancer.kind
ke"MetalLB"
.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, baca Ringkasan load balancing.
antiAffinityGroups
Tetapkan antiAffinityGroups.enabled
ke true
atau false
sesuai dengan preferensi Anda.
Gunakan kolom ini untuk menentukan apakah Anda ingin Google Distributed Cloud membuat aturan anti-afinitas Distributed Resource Scheduler (DRS) VMware untuk node cluster admin, yang menyebabkan node disebarkan di setidaknya tiga host fisik di pusat data Anda.
adminMaster
Jika Anda ingin menentukan CPU dan memori untuk node bidang kontrol dari cluster
admin, isi kolom cpus
dan memoryMB
di
bagian
adminMaster
.
Tetapkan kolom replicas
di bagian adminMaster
ke 3
.
proxy
Jika jaringan yang akan mendapatkan node cluster admin Anda berada di belakang server proxy, isi bagian proxy
.
privateRegistry
Tentukan tempat Anda ingin menyimpan image container untuk komponen Google Distributed Cloud. Opsinya adalah:
Container Registry
Registry Docker pribadi Anda sendiri.
Jika ingin menggunakan registry pribadi Anda, isi bagian
privateRegistry
.
componentAccessServiceAccountKeyPath
Google Distributed Cloud 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.
Bidang 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.
Pada versi 1.28 dan yang lebih baru, Anda dapat secara opsional menentukan region tempat layanan Fleet dan Connect dijalankan di gkeConnect.location
. Jika Anda tidak menyertakan kolom ini, cluster akan menggunakan instance global dari layanan ini.
Jika Anda menyertakan gkeConnect.location
, wilayah yang ditentukan harus sama dengan wilayah yang dikonfigurasi di cloudAuditLogging.clusterLocation
, stackdriver.clusterLocation
, dan gkeOnPremAPI.location
. Jika region tidak sama, pembuatan cluster akan gagal.
gkeOnPremAPI
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
.
Region gkeOnPremAPI.location
harus sama dengan region yang ditentukan di
cloudAuditLogging.clusterLocation
, gkeConnect.location
,
dan stackdriver.clusterLocation
. Jika region tidak sama, pembuatan cluster akan gagal.
Jika ingin mendaftarkan semua cluster dalam project di GKE On-Prem API, pastikan Anda melakukan langkah-langkah di 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) di project tersebut. Untuk mengetahui petunjuknya, lihat Menonaktifkan layanan.
stackdriver
Jika ingin mengaktifkan Cloud Logging dan Cloud Monitoring untuk cluster Anda, isi bagian stackdriver
.
Bagian ini wajib ada 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
dangkeConnect.location
(jika kolom tersebut 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.
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
dangkeConnect.location
(jika kolom tersebut 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.
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 di bagian
osImageType
sebagaimana mestinya.
Contoh file konfigurasi yang terisi
Berikut adalah contoh file konfigurasi cluster admin yang terisi. Konfigurasi memungkinkan beberapa, tetapi tidak semua, fitur yang tersedia.
vc-01-admin-cluster.yaml
apiVersion: v1 kind: AdminCluster name: "gke-admin-01" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.28.0-gke.1-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" network: hostConfig: dnsServers: - "203.0.113.1" - "198.51.100.1" ntpServers: - "216.239.35.4" serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" vCenter: networkName: "vc01-net-1" controlPlaneIPBlock: netmask: "255.255.248.0" gateway: "21.0.143.254" ips: - ip: "21.0.140.226" hostname: "admin-cp-vm-1" - ip: "21.0.141.48" hostname: "admin-cp-vm-2" - ip: "21.0.141.65" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.20.59" kind: "MetalLB" antiAffinityGroups: enabled: true adminMaster: cpus: 4 memoryMB: 16384 replicas: 3 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
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 lagi file tersebut.
Jika Anda ingin melewati validasi yang memakan waktu, teruskan flag --fast
.
Untuk melewati validasi satu per satu, gunakan flag --skip-validation-xxx
. Untuk
mempelajari perintah check-config
lebih lanjut, lihat
Menjalankan pemeriksaan preflight.
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 image OS ke vSphere dan menandainya sebagai template VM.
Jika Anda menggunakan registry Docker pribadi, kirim image container ke registry.
Secara opsional, memvalidasi pengesahan build image container, sehingga memverifikasi bahwa image dibuat dan ditandatangani oleh Google dan siap di-deploy.
5. Membuat cluster admin
Buat cluster admin:
gkectl create admin --config ADMIN_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.
Lanjutkan pembuatan cluster admin setelah kegagalan
Jika pembuatan cluster admin gagal atau dibatalkan, Anda dapat menjalankan perintah create
lagi:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
Menemukan 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.
File kubeconfig berisi nama cluster admin Anda. Untuk melihat nama cluster, Anda dapat menjalankan:
kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Output menunjukkan nama cluster. Contoh:
NAME gke-admin-tqk8x
Jika mau, Anda dapat mengubah nama dan lokasi file kubeconfig Anda.
Mengelola file checkpoint.yaml
Saat Anda menjalankan perintah gkectl create admin
untuk membuat cluster admin, perintah tersebut 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, maka karena batas vSphere pada panjang nama file, namanya adalah DATA_DISK_NAME.yaml
.
File ini berisi kredensial dan status cluster admin, dan digunakan untuk upgrade mendatang. Jangan menghapus file ini kecuali jika Anda mengikuti proses untuk menghapus cluster admin.
Jika telah mengaktifkan enkripsi VM di instance vCenter Server, Anda harus memiliki hak istimewa Cryptographic operations.Direct Access
sebelum membuat atau mengupgrade cluster
admin. Jika tidak, checkpoint tidak akan diupload. Jika tidak dapat memperoleh hak istimewa ini, Anda dapat menonaktifkan upload file checkpoint dengan menggunakan flag tersembunyi --disable-checkpoint
saat menjalankan perintah yang relevan.
File checkpoint.yaml
otomatis diupdate saat Anda menjalankan
perintah gkectl upgrade admin
, atau saat Anda menjalankan perintah gkectl update
yang
memengaruhi cluster admin.
6. Memastikan cluster admin Anda berjalan
Pastikan cluster admin Anda berjalan:
kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Ganti ADMIN_CLUSTER_KUBECONFIG dengan jalur file cluster admin Anda.
Output menunjukkan node cluster admin. Contoh:
admin-cp-vm-1 Ready control-plane,master ... admin-cp-vm-2 Ready control-plane,master ... admin-cp-vm-3 Ready control-plane,master ...
7. Mencadangkan file
Sebaiknya Anda mencadangkan 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.
Kami juga menyarankan agar Anda mencadangkan kunci SSH pribadi untuk cluster admin Anda. Kemudian, jika kehilangan akses ke cluster admin, Anda masih dapat menggunakan SSH untuk terhubung ke node cluster admin. Dengan demikian, Anda dapat memecahkan masalah 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.
Kebijakan RBAC
Saat Anda mengisi
bagian gkeConnect
di file konfigurasi cluster admin, cluster akan didaftarkan ke
fleet Anda selama pembuatan atau update. Untuk mengaktifkan fungsi pengelolaan fleet, Google Cloud men-deploy agen Connect dan membuat akun layanan Google yang mewakili project tempat cluster didaftarkan.
Agen Connect membuat koneksi dengan akun layanan untuk menangani
permintaan ke server Kubernetes API cluster. Hal ini memungkinkan akses ke fitur pengelolaan cluster dan workload di Google Cloud, termasuk akses ke Konsol Google Cloud, yang memungkinkan Anda berinteraksi dengan cluster.
Server Kubernetes API cluster admin harus dapat mengizinkan permintaan dari agen Connect. Untuk memastikannya, kebijakan kontrol akses berbasis peran (RBAC) berikut dikonfigurasi di akun layanan:
Kebijakan peniruan identitas yang mengizinkan agen Connect untuk mengirim permintaan ke server Kubernetes API atas nama akun layanan.
Kebijakan izin yang menentukan operasi yang diizinkan pada resource Kubernetes lainnya.
Akun layanan dan kebijakan RBAC diperlukan agar Anda dapat mengelola siklus proses cluster pengguna di Konsol Google Cloud.
Pemecahan masalah
Lihat Memecahkan masalah pembuatan dan upgrade cluster.