Halaman ini menunjukkan cara membuat cluster admin untuk Google Distributed Cloud. Cluster admin mengelola cluster pengguna yang menjalankan beban kerja Anda. Jika Anda ingin menggunakan domain topologi, lihat Membuat cluster admin untuk digunakan dengan domain topologi.
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.
Untuk mengetahui detail selengkapnya tentang cluster admin, lihat ringkasan penginstalan.
Sebelum memulai
Pastikan Anda telah menyiapkan dan dapat login ke workstation admin seperti yang dijelaskan dalam artikel Membuat workstation admin.
Tinjau dokumen perencanaan alamat IP. Pastikan Anda memiliki cukup alamat IP untuk tiga node bidang kontrol dan VIP bidang kontrol. Jika berencana membuat cluster pengguna kubeception, Anda harus memiliki cukup alamat IP yang tersedia untuk node panel kontrol cluster pengguna tersebut.
Tinjau ringkasan load balancing dan tinjau kembali keputusan Anda tentang jenis load balancer yang ingin digunakan. Untuk load balancer manual, Anda harus menyiapkan load balancer sebelum membuat cluster admin.
Lihat bagian
privateRegistry
, dan tentukan apakah Anda ingin menggunakan registry publik atau pribadi untuk komponen Google Distributed Cloud.Lihat kolom osImageType, dan tentukan jenis sistem operasi yang ingin Anda jalankan di node cluster admin.
Jika organisasi Anda mewajibkan traffic keluar untuk melewati server proxy, pastikan untuk mencantumkan dalam daftar yang diizinkan API yang diperlukan dan alamat Artifact Registry.
Pada versi 1.29 dan yang lebih baru, 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. Pemeriksaan pra-penerbangan sisi server dijalankan di cluster bootstrap, bukan secara lokal di workstation admin.
Membuat cluster admin dengan alat pilihan Anda
Bagian ini memberikan langkah-langkah untuk membuat cluster admin menggunakan gkectl
dan Terraform.
Ringkasan prosedur
Berikut adalah langkah-langkah utama yang diperlukan dalam membuat cluster admin:
- 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 kirim image container ke registry pribadi jika berlaku.
- Jalankan
gkectl prepare
.
- Buat cluster admin.
- Gunakan
gkectl
untuk membuat cluster admin baru seperti yang ditentukan dalam file konfigurasi yang telah selesai. Saat membuat cluster admin, Google Distributed Cloud akan men-deploy cluster Kubernetes in Docker (kind) untuk menghosting pengontrol Kubernetes yang diperlukan untuk membuat cluster admin untuk sementara. 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, Anda akan memiliki cluster admin yang berjalan yang dapat Anda gunakan 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.
Mengisi file konfigurasi
Pastikan workstation admin Anda memiliki versi
gkectl
yang diperlukan. Biasanya, Anda menggunakan versigkectl
yang sama dengan versi yang akan digunakan saat membuat cluster. Anda menentukan versi cluster di kolomgkeOnPremVersion
dalam file konfigurasi cluster. Aturan versi berikut diterapkan selama pembuatan cluster:Versi minor
gkectl
tidak boleh lebih rendah dari versi minor untuk cluster. Misalnya, membuat cluster 1.30 menggunakangkectl
versi 1.29 tidak diizinkan. Versi patch tidak penting. Misalnya, Anda dapat menggunakangkectl
versi 1.29.0-gke.1456 untuk membuat cluster dengan versi patch yang lebih tinggi, seperti 1.29.1000-gke.94.Versi minor
gkectl
tidak boleh lebih dari dua versi minor lebih baru dari versi cluster. Misalnya, jika Anda membuat cluster 1.28, versigkectl
dapat berupa 1.29 atau 1.30. Namun, Anda tidak dapat menggunakangkectl
versi 1.31 karena tiga versi minor lebih tinggi dari versi cluster.
Jika diperlukan, lihat Mendownload
gkectl
untuk mendapatkan versigkectl
yang didukung.
Jika Anda menggunakan gkeadm
untuk membuat workstation admin, file tersebut akan menghasilkan file konfigurasi
bernama admin-cluster.yaml
.
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.
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 menentukan nama untuk cluster admin, isi kolom
name
.
bundlePath
Paket adalah file zip yang berisi komponen cluster. Alat ini disertakan dengan workstation admin. Kolom ini sudah diisi untuk Anda.
vCenter
Kolom di bagian ini sudah diisi dengan nilai yang Anda masukkan saat membuat workstation admin.
enableAdvancedCluster
Jika Anda ingin mengaktifkan fitur cluster lanjutan pratinjau, tetapkan
enableAdvancedCluster
ke true
.
Perhatikan batasan berikut pada pratinjau cluster lanjutan:
- Anda dapat mengaktifkan cluster lanjutan pada waktu pembuatan cluster hanya untuk cluster 1.31 baru.
- Setelah cluster lanjutan diaktifkan, Anda tidak akan dapat mengupgrade cluster ke versi 1.32. Hanya aktifkan cluster lanjutan di lingkungan pengujian.
network
Isi bagian
network.controlPlaneIPBlock
dan bagian
network.hostConfig
. Tetapkan juga
adminMaster.replicas
ke 3
.
Kolom network.podCIDR dan network.serviceCIDR telah diisi otomatis dengan nilai yang dapat Anda biarkan tidak berubah, kecuali jika bertentangan dengan alamat yang sudah digunakan di jaringan Anda. Kubernetes menggunakan rentang ini untuk menetapkan alamat IP ke Pod dan Service di cluster Anda.
Isi kolom lainnya di bagian jaringan file konfigurasi sesuai kebutuhan.
loadBalancer
Siapkan VIP untuk server Kubernetes API 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 MetalLB yang dipaketkan. Tetapkan
loadBalancer.kind
ke"MetalLB"
.Load balancing manual. Tetapkan
loadBalancer.kind
ke"ManualLB"
, dan hapus bagianmanualLB
.
Untuk mengetahui informasi selengkapnya tentang opsi load balancing, lihat Ringkasan load balancing.
antiAffinityGroups
Tetapkan antiAffinityGroups.enabled
ke true
atau false
sesuai 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, sehingga node tersebut tersebar di setidaknya tiga host fisik di pusat data Anda.
adminMaster
Jika Anda ingin menentukan CPU dan memori untuk node platform kontrol cluster admin, isi kolom cpus
dan memoryMB
di bagian adminMaster
.
Cluster admin harus memiliki tiga node bidang kontrol. Tetapkan kolom replicas
di
bagian adminMaster
ke 3
.
proxy
Jika jaringan yang akan memiliki 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:
Artifact Registry
Registry Docker pribadi Anda sendiri.
Jika Anda ingin menggunakan registry pribadi Anda sendiri, isi bagian
privateRegistry
.
componentAccessServiceAccountKeyPath
Google Distributed Cloud menggunakan akun layanan akses komponen Anda untuk mendownload komponen cluster dari Artifact 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 Google Cloud fleet 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.
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
, 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
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 dalam
cloudAuditLogging.clusterLocation
, gkeConnect.location
,
dan stackdriver.clusterLocation
. Jika region tidak sama, pembuatan
cluster akan gagal.
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.
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 admin
.
Perhatikan persyaratan berikut:
Jika mengaktifkan cluster lanjutan, Anda harus menentukan jalur yang sama di
cloudAuditLogging.serviceAccountKeyPath
danstackdriver.serviceAccountKeyPath
.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
. 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 Anda ingin mengintegrasikan log audit dari server Kubernetes API
cluster dengan Cloud Audit Logs, isi bagian
cloudAuditLogging
.
Perhatikan persyaratan berikut:
Jika mengaktifkan cluster lanjutan, Anda harus menentukan jalur yang sama di
cloudAuditLogging.serviceAccountKeyPath
danstackdriver.serviceAccountKeyPath
.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 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.
Jika Anda mengaktifkan cluster lanjutan, hapus bagian ini. Mencadangkan cluster admin ke datastore vSphere tidak didukung.
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
.
Jika Anda mengaktifkan cluster lanjutan, tetapkan secretsEncryption.enabled
ke false
.
Enkripsi Secrets yang selalu aktif tidak didukung.
osImageType
Tentukan jenis image OS yang ingin Anda gunakan untuk node cluster admin, dan
isi bagian
osImageType
sesuai kebutuhan.
Jika Anda mengaktifkan cluster lanjutan, tetapkan osImageType
ke ubuntu_cgroupv2
atau
ubuntu_containerd
.
Contoh file konfigurasi yang terisi
Berikut adalah contoh file konfigurasi cluster admin yang telah diisi. Konfigurasi ini mengaktifkan 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 --configADMIN_CLUSTER_CONFIG
Ganti ADMIN_CLUSTER_CONFIG dengan jalur file konfigurasi cluster admin 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.
Mendapatkan OS image
Jalankan gkectl prepare
untuk melakukan inisialisasi lingkungan vSphere:
gkectl prepare --configADMIN_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 Anda.
Secara opsional, memvalidasi pengesahan build image container, sehingga memverifikasi bahwa image telah dibuat dan ditandatangani oleh Google serta siap untuk di-deploy.
Membuat cluster admin
Buat cluster admin:
gkectl create admin --configADMIN_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.
Melanjutkan pembuatan cluster admin setelah kegagalan
Jika pembuatan cluster admin gagal atau dibatalkan, Anda dapat menjalankan perintah create
lagi:
gkectl create admin --configADMIN_CLUSTER_CONFIG
Menemukan file kubeconfig cluster admin
Perintah gkectl create admin
akan 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 --kubeconfigADMIN_CLUSTER_KUBECONFIG
Output menampilkan nama cluster. Contoh:
NAME gke-admin-tqk8x
Jika ingin, Anda dapat mengubah nama dan lokasi file kubeconfig.
Mengelola file checkpoint.yaml
Bagian ini hanya berlaku untuk cluster admin non-HA. File checkpoint.yaml
tidak digunakan untuk pembuatan cluster admin HA.
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 besar dari atau sama dengan 245 karakter, maka, karena
batas vSphere pada panjang nama file, namanya adalah
DATA_DISK_NAME.yaml
.
File ini berisi status dan kredensial cluster admin, serta digunakan untuk upgrade mendatang. Jangan hapus 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 menggunakan
flag tersembunyi --disable-checkpoint
saat menjalankan perintah yang relevan.
File checkpoint.yaml
otomatis diperbarui saat Anda menjalankan perintah gkectl upgrade admin
, atau saat Anda menjalankan perintah gkectl update
yang memengaruhi cluster admin.
Memverifikasi bahwa cluster admin Anda berjalan
Pastikan cluster admin Anda berjalan:
kubectl get nodes --kubeconfigADMIN_CLUSTER_KUBECONFIG
Ganti ADMIN_CLUSTER_KUBECONFIG dengan jalur file kubeconfig cluster admin Anda.
Output menampilkan 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 ...
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 Anda tidak sengaja dihapus, Anda masih memiliki akses ke cluster admin.
Sebaiknya Anda juga mencadangkan kunci SSH pribadi untuk cluster admin. Kemudian, jika Anda kehilangan akses ke cluster admin, Anda masih dapat menggunakan SSH untuk terhubung ke node cluster admin. Dengan begitu, Anda dapat memecahkan masalah dan menginvestigasi masalah terkait konektivitas ke cluster admin.
Ekstrak kunci SSH dari cluster admin ke file bernama
admin-cluster-ssh-key
:
kubectl --kubeconfigADMIN_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
dalam file konfigurasi cluster admin, cluster akan terdaftar ke
armada Anda selama pembuatan atau pembaruan. Untuk mengaktifkan fungsi pengelolaan armada, 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. Tindakan ini memungkinkan akses ke
fitur pengelolaan cluster dan beban kerja di Google Cloud, termasuk akses
ke Konsol Google Cloud, yang memungkinkan Anda berinteraksi dengan
cluster.
Server Kubernetes API cluster admin harus dapat memberikan otorisasi permintaan dari agen Connect. Untuk memastikannya, kebijakan kontrol akses berbasis peran (RBAC) berikut dikonfigurasi di akun layanan:
Kebijakan peniruan identitas yang memberi otorisasi kepada agen Connect untuk mengirim permintaan ke server Kubernetes API atas nama akun layanan.
Kebijakan izin yang menentukan operasi yang diizinkan di resource Kubernetes lainnya.
Akun layanan dan kebijakan RBAC diperlukan agar Anda dapat mengelola siklus proses cluster pengguna di konsol Google Cloud.
Ringkasan prosedur
Sebelum membuat cluster admin, Anda harus menjalankan perintah gkectl register bootstrap
di workstation admin. Perintah ini
men-deploy cluster Kubernetes di Docker
(kind) di workstation admin. Cluster bootstrap ini menghosting
pengontrol Kubernetes yang diperlukan untuk membuat cluster admin. Saat Anda membuat
cluster admin, pengontrol di cluster bootstrap akan menyediakan node,
menjalankan pemeriksaan pra-penerbangan, dan mendaftarkan cluster admin ke fleet. Cluster bootstrap
otomatis dihapus setelah cluster admin berhasil
dibuat.
Berikut adalah langkah-langkah tingkat tinggi untuk membuat cluster admin menggunakan Terraform:
- Isi file konfigurasi Anda.
- Gunakan resource google_gkeonprem_vmware_admin_cluster dan contoh yang mengikuti untuk membuat file konfigurasi
main.tf
.
- Buat cluster
bootstrap
. - Jalankan
gkectl register bootstrap
untuk membuat cluster bootstrap. Saat perintah selesai membuat cluster bootstrap, output akan memberi tahu Anda untuk menyelesaikan konfigurasi cluster admin. Proses ini terus berjalan hingga cluster admin dibuat.
- Buat cluster
- Buat cluster admin.
- Di jendela terminal lain atau di komputer lain yang memiliki akses ke GKE On-Prem API, jalankan perintah
terraform
untuk membuat cluster admin baru seperti yang ditentukan dalam file konfigurasimain.tf
yang telah Anda selesaikan.
Mengisi file konfigurasi
Contoh berikut menunjukkan cara membuat cluster admin ketersediaan tinggi (HA)
dengan tiga node kontrol-plane dengan MetalLB. Di versi 1.28 dan yang lebih tinggi, cluster admin baru harus memiliki ketersediaan tinggi. Karena persyaratan ini, Anda
harus menetapkan control_plane_node.replicas
ke 3. Untuk informasi selengkapnya dan contoh
lainnya, lihat
dokumentasi referensi google_gkeonprem_vmware_admin_cluster
.
Isi variabel placeholder dalam contoh berikut, lalu salin dan tempel ke main.tf
. Jika Anda menggunakan gkeadm
untuk membuat workstation admin, buka
file konfigurasi workstation admin agar Anda dapat menyalin nilai dari
bagian vCenter
ke variabel placeholder yang sesuai.
resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-metallb" { provider = google-beta name = "ADMIN_CLUSTER_NAME " project = "PROJECT_ID " location = "REGION " description = "DESCRIPTION " bootstrap_cluster_membership = "projects/PROJECT_ID /locations/REGION /memberships/bootstrap-ADMIN_CLUSTER_NAME " on_prem_version = "VERSION " image_type = "IMAGE_TYPE " vcenter { address = "VCENTER_ADDRESS " datacenter = "DATA_CENTER " cluster = "VCENTER_CLUSTER " resource_pool = "RESOURCE_POOL " datastore = "DATASTORE " ca_cert_data = "CA_CERT_DATA " } network_config { service_address_cidr_blocks = ["10.96.232.0/24 "] pod_address_cidr_blocks = ["192.168.0.0/16 "] vcenter_network = "NETWORK " dhcp_ip_config { enabled = true } host_config { dns_servers = ["DNS_SERVERS "] ntp_servers = ["NTP_SERVERS "] } ha_control_plane_config { control_plane_ip_block { gateway = "GATEWAY " netmask = "NETMASK " ips { hostname = "CONTROL_PLANE_HOST_1 " ip = "CONTROL_PLANE_NODE_IP_1 " } ips { hostname = "CONTROL_PLANE_HOST_2 " ip = "CONTROL_PLANE_NODE_IP_2 " } ips { hostname = "CONTROL_PLANE_HOST_3 " ip = "CONTROL_PLANE_NODE_IP_3 " } } } } control_plane_node { cpus =NUM_CPUS memory =MEMORY replicas = 3 } load_balancer { vip_config { control_plane_vip = "CONTROL_PLANE_VIP " } metal_lb_config { enabled = true } } }
Ganti kode berikut:
ADMIN_CLUSTER_NAME
: nama untuk cluster admin.PROJECT_ID
: Google Cloud project ID.REGION
: Google Cloud region 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.Kolom
location
sesuai dengan flag--location
dalam perintahgkectl register bootstrap
.DESCRIPTION
: deskripsi cluster admin.VERSION
: versi Google Distributed Cloud untuk cluster. Pembuatan cluster menggunakan Terraform hanya didukung pada versi 1.28 dan yang lebih baru. Untuk mengetahui daftar versi, lihat versi Google Distributed Cloud.IMAGE_TYPE
: jenis image OS yang akan dijalankan di node cluster admin Anda. Tentukan salah satu dari berikut ini: "ubuntu_containerd
", "cos
", "ubuntu_cgv2
", atau "cos_cgv2
".VCENTER_ADDRESS
: Alamat Server vCenter.File konfigurasi workstation admin: Gunakan nilai dari kolom
vCenter.credentials.address
.Kolom
vcenter.address
sesuai dengan flag--vcenter-address
dalam perintahgkectl register bootstrap
.
DATA_CENTER
: nama pusat data vCenter Anda.File konfigurasi workstation admin: Gunakan nilai dari kolom
vCenter.datacenter
.Kolom
vcenter.datacenter
sesuai dengan flag--vcenter-datacenter
dalam perintahgkectl register bootstrap
.
VCENTER_CLUSTER
: nama cluster vCenter Anda.File konfigurasi workstation admin: Gunakan nilai dari kolom
vCenter.cluster
.Kolom
vcenter.cluster
sesuai dengan flag--vcenter-cluster
dalam perintahgkectl register bootstrap
.
RESOURCE_POOL
: nama atau jalur kumpulan resource vCenter Anda.File konfigurasi workstation admin: Gunakan nilai dari kolom
vCenter.resourcePool
.Kolom
vcenter.resource_pool
sesuai dengan flag--vcenter-resource-pool
dalam perintahgkectl register bootstrap
.
DATASTORE
: nama datastore vCenter Anda. Nilai yang Anda tentukan harus berupa nama, bukan jalur. Jika Anda perlu memasukkan jalur, tambahkan kolom berikut:folder = "FOLDER"
File konfigurasi workstation admin: Gunakan nilai dari kolom
vCenter.datastore
.Kolom
vcenter.datastore
sesuai dengan flag--vcenter-datastore
dalam perintahgkectl register bootstrap
.
Jika Anda ingin menggunakan kebijakan penyimpanan VM untuk node cluster, hapus kolom
vcenter.datastore
dan tambahkanvcenter.storage_policy_name
. Selain itu, tambahkan flag--vcenter-storage-policy
ke perintahgkectl register bootstrap
. Anda harus menentukan nilai untukvcenter.datastore
atauvcenter.storage_policy_name
, tetapi tidak keduanya.FOLDER
: nama folder vCenter tempat VM cluster Anda akan berada. Jika Anda tidak menggunakan folder, hapus kolom ini.File konfigurasi workstation admin: Gunakan nilai dari kolom
vCenter.folder
.Kolom
vcenter.folder
sesuai dengan flag--vcenter-folder
dalam perintahgkectl register bootstrap
.
CA_CERT_DATA
: masukkan sertifikat CA vCenter dalam format PEM. Untuk mendapatkan data sertifikat CA:Jalankan perintah berikut:
cat
CA_CERT_PATH_LOCAL | tr '\n' '\\n'Ganti
CA_CERT_PATH_LOCAL
dengan jalur ke sertifikat CA root untuk Server vCenter Anda. Jika menggunakangkeadm
untuk membuat workstation admin, Anda dapat menggunakan nilai dari kolomcaCertPath
dalam file konfigurasi workstation admin, yang merupakan jalur di komputer lokal Anda.gkeadm
menyalin file sertifikat CA ke workstation admin Anda. Anda harus menentukan jalur workstation admin dalam flag--vcenter-ca-cert-path
dalam perintahgkectl register bootstrap
.Salin sertifikat yang dihasilkan dari perintah sebelumnya dan tempelkan ke editor teks. Ganti semua instance karakter garis miring terbalik (\\) menjadi karakter baris baru (\n).
Salin sertifikat yang diubah dan tempelkan ke variabel placeholder
CA_CERT_DATA
.
NETWORK
: masukkan nama jaringan vCenter Anda.File konfigurasi workstation admin: Gunakan nilai dari kolom
vCenter.network
.Kolom
network_config.vcenter_network
sesuai dengan flag--vcenter-network
dalam perintahgkectl register bootstrap
.
GATEWAY
: alamat IP gateway default untuk subnet yang memiliki node cluster bidang kontrol Anda.NETMASK
: netmask untuk subnet yang memiliki node cluster bidang kontrol Anda.DNS_SERVERS
: alamat IP server DNS.NTP_SERVERS
: alamat IP server waktu (NTP).Masukkan alamat IP dan secara opsional, nama host untuk tiga node bidang kontrol di bagian
control_plane_ip_block.ips
. Jika Anda tidak memasukkan nama host, hapus kolomhostname
dari konfigurasi.`NUM_CPUS: jumlah vCPU untuk setiap node bidang kontrol dalam cluster admin. Harus minimal 4.
`MEMORY: jumlah memori mebibyte untuk setiap node bidang kontrol di cluster admin. Harus minimal 8192, tetapi kami menyarankan 16384.
CONTROL_PLANE_VIP
: alamat IP yang telah Anda pilih untuk dikonfigurasi di load balancer untuk server Kubernetes API cluster admin.
Memverifikasi file konfigurasi dan rencana
Di direktori tempat main.tf
berada, jalankan perintah berikut:
Lakukan inisialisasi Terraform:
terraform init
Terraform menginstal library yang diperlukan, seperti penyedia Google Cloud . Perbaiki error di
maint.tf
jika perlu.Buat rencana Terraform:
terraform plan -out tfplan
Tinjau konfigurasi dan buat perubahan jika diperlukan.
Sebelum menerapkan rencana, Anda harus membuat cluster bootstrap terlebih dahulu seperti yang dijelaskan di bagian berikutnya.
Membuat cluster bootstrap
Saat Anda menjalankan perintah gkectl register bootstrap
, perintah ini akan meminta nama pengguna dan sandi akun vCenter. Pastikan Anda memiliki kredensial yang tersedia. Jika Anda menggunakan gkeadm
untuk membuat workstation admin, nama pengguna
dan sandi ada dalam file credential.yaml
.
Login ke workstation admin menggunakan SSH.
Lakukan autentikasi dengan Google Cloud CLI:
gcloud auth login
Jalankan perintah berikut untuk membuat cluster bootstrap. Banyak nilai flag yang sama seperti di kolom
main.tf
. Namun, perhatikan bahwa perintah ini memerlukan nilai tambahan yang harus Anda tentukan dalam variabel placeholder yang disediakan.gkectl register bootstrap \ --target-cluster-name=
ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --vcenter-address=VCENTER_ADDRESS \ --vcenter-datacenter=DATA_CENTER \ --vcenter-cluster=VCENTER_CLUSTER \ --vcenter-resource-pool=RESOURCE_POOL \ --vcenter-datastore=DATASTORE \ --vcenter-network=NETWORK \ --vcenter-ca-cert-path=CA_CERT_PATH \ --bundle-path=BUNDLE_PATH \ --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \ --stackdriver-service-account-key-path=LOG_MON_SA_PATH \ --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH Ganti kode berikut dengan jalur workstation admin:
CA_CERT_PATH
: jalur ke root certificate CA untuk Server vCenter Anda.BUNDLE_PATH
: jalur ke file paket. Jika Anda menggunakangkeadm
untuk membuat workstation admin, file paket akan berada di/var/lib/gke/bundles/
. Nama file bergantung pada versi Google Distributed Cloud, misalnya,gke-onprem-vsphere-1.31.0-gke.889-full.tgz
.COMPONENT_ACCESS_SA_PATH
: jalur ke file kunci untuk akun layanan akses komponen.CONNECT_REGISTER_SA_PATH
: jalur ke file kunci untuk akun layanan connect-register.LOG_MON_SA_PATH
: jalur ke file kunci untuk akun layanan pemantauan logging.CLOUD_AUDIT_SA_PATH
: jalur ke akun layanan logging audit. Jika Anda tidak membuat akun layanan logging audit, tentukan jalur ke file kunci untuk akun layanan pemantauan logging.
Ubah perintah sesuai kebutuhan untuk flag berikut:
- Jika Anda menentukan folder di
main.tf
, tambahkan tanda berikut:--vcenter-folder=FOLDER
- Jika Anda menentukan kebijakan penyimpanan VM di
main.tf
, hapus--vcenter-datastore
dan tambahkan flag berikut:--vcenter-storage-policy-name=STORAGE_POLICY_NAME
Jika menambahkan flag, pastikan Anda menambahkan karakter garis miring terbalik lanjutan command line (\).
Saat diminta, masukkan (atau salin dan tempel) nama pengguna vCenter. Nama pengguna tidak ditampilkan kembali ke layar.
Saat diminta, masukkan (atau salin dan tempel) sandi vCenter. Sandi tidak ditampilkan kembali ke layar.
Perintah ini menjalankan banyak validasi. Setelah gkectl
berhasil membuat
cluster bootstrap, Anda akan melihat output yang mirip dengan berikut ini, yang
dipangkas untuk keterbacaan:
Running workstation validations - Validation Category: Workstation - [SUCCESS] Workstation OS - [SUCCESS] Workstation Hardware - [SUCCESS] Workstation Package - [SUCCESS] Workstation NTP - [SUCCESS] Workstation Docker ... All validation results were SUCCESS. Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz ... Successfully created and registered the bootstrap cluster ... Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -
Proses ini akan terus berjalan hingga cluster admin dibuat.
Jika Anda keluar dari perintah gkectl register bootstrap
sebelum cluster admin dibuat, pembuatan cluster admin akan gagal, dan Anda harus menghapus cluster bootstrap menggunakan perintah berikut:
gkectl delete bootstrap \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
Membuat cluster admin
Terapkan rencana Terraform untuk membuat cluster admin:
terraform apply "tfplan"
Perlu waktu sekitar 15 menit atau lebih untuk membuat cluster admin. Anda dapat melihat cluster di konsol Google Cloud di halaman cluster GKE.
Pemecahan masalah
Lihat Memecahkan masalah pembuatan dan upgrade cluster.