Dokumen ini menunjukkan cara membuat cluster admin untuk Google Distributed Cloud. Cluster admin mengelola cluster pengguna yang menjalankan workload Anda.
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 rujuk dalam konten Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise yang umum.
Untuk mengetahui detail selengkapnya tentang cluster admin, lihat ringkasan penginstalan.
Ringkasan prosedur
Berikut adalah langkah utama yang diperlukan untuk membuat cluster admin:
- Menyiapkan workstation admin.
- Mesin ini memiliki alat yang diperlukan untuk membuat cluster baru.
- Isi file konfigurasi Anda.
- Tentukan detail untuk admin baru Anda cluster dengan menyelesaikan dan memvalidasi file konfigurasi cluster admin, file konfigurasi kredensial, dan mungkin file blok IP.
- Impor OS image ke vSphere, dan kirim image container ke registry pribadi jika berlaku.
- Jalankan
gkectl prepare
.
- Membuat cluster admin.
- Gunakan
gkectl
untuk membuat cluster admin baru seperti yang ditentukan di menyelesaikan file konfigurasi. Saat Google Distributed Cloud membuat admin cluster, yang men-deploy Kubernetes dalam Docker (jenis) untuk menghosting pengontrol Kubernetes sementara yang diperlukan guna membuat ke cluster admin. Cluster sementara ini disebut cluster bootstrap. Pengguna cluster dibuat dan diupgrade oleh admin pengelolanya tanpa menggunakan dari cluster bootstrap.
- Pastikan cluster admin Anda berjalan.
- Gunakan
kubectl
untuk melihat node cluster Anda.
Di akhir prosedur ini, Anda akan memiliki kelompok admin yang berjalan yang dapat Anda gunakan untuk membuat dan mengelola klaster pengguna.
Jika menggunakan Kontrol Layanan VPC, Anda mungkin melihat error saat menjalankan
Perintah gkectl
, seperti "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services"
. Untuk menghindari kesalahan ini, tambahkan
parameter --skip-validation-gcp
ke perintah Anda.
Sebelum memulai
Ulas Dokumen perencanaan alamat IP. Pastikan Anda menyediakan alamat IP yang cukup untuk tiga bidang kontrol dan VIP bidang kontrol. Jika Anda berencana untuk membuat cluster pengguna Kubernetes, maka Anda harus memiliki alamat IP yang cukup untuk node bidang kontrol cluster pengguna tersebut.
Ulas ringkasan load balancing dan meninjau kembali keputusan Anda jenis load balancer yang ingin Anda gunakan. Untuk load balancer tertentu, Anda harus menyiapkan load balancer sebelum membuat cluster admin.
Lihatlah ke depan
privateRegistry
dan memutuskan apakah Anda ingin menggunakan kantor pendaftaran publik atau pribadi untuk komponen Google Distributed Cloud.Lihatlah ke depan osImageType , lalu tentukan jenis sistem operasi yang ingin dijalankan di admin node cluster.
Jika organisasi Anda mengharuskan traffic keluar untuk melewati proxy {i>server<i}, pastikan untuk izinkan API yang diperlukan dan alamat Container Registry.
Pada versi 1.29 dan yang lebih tinggi, pemeriksaan preflight sisi server diaktifkan oleh secara default. Pemeriksaan preflight sisi server memerlukan aturan firewall tambahan. Di beberapa Aturan firewall untuk cluster admin, telusuri "Pemeriksaan preflight" dan memastikan semua aturan {i>firewall<i} yang diperlukan dikonfigurasi. Pemeriksaan preflight sisi server dijalankan di cluster bootstrap secara lokal di workstation admin.
1. Menyiapkan workstation admin Anda
Pastikan Anda telah menyiapkan dan dapat login ke workstation admin seperti yang dijelaskan inci Membuat workstation admin. Workstation admin memiliki alat yang Anda perlukan untuk membuat cluster admin.
Lakukan semua langkah yang tersisa dalam dokumen ini di workstation admin Anda.
2. Isi file konfigurasi Anda
Jika Anda menggunakan gkeadm
untuk membuat workstation admin, konfigurasi akan dibuat
file bernama admin-cluster.yaml
.
Jika Anda tidak menggunakan gkeadm
untuk membuat workstation admin, buat
admin-cluster.yaml
dengan menjalankan perintah ini di workstation admin Anda:
gkectl create-config admin
File konfigurasi ini digunakan untuk membuat cluster admin.
Pelajari file konfigurasi dengan memindai file konfigurasi cluster admin dokumen. Anda mungkin ingin menyimpan dokumen ini terbuka di tab atau jendela terpisah, karena Anda akan menjadikannya referensi saat menyelesaikan langkah-langkah berikut.
name
Jika Anda ingin menentukan nama untuk cluster admin, isi
Kolom name
.
bundlePath
Paket ini adalah file ZIP yang berisi komponen cluster. Sudah disertakan dengan workstation admin. Kolom ini sudah diisi untuk Anda.
vCenter
Kolom di bagian ini sudah diisi dengan nilai yang Anda masukkan saat Anda membuat workstation admin Anda.
network
Isilah
network.controlPlaneIPBlock
dan
Bagian network.hostConfig
. Tetapkan juga
adminMaster.replicas
ke 3
.
Tujuan network.podCIDR dan network.serviceCIDR kolom memiliki nilai terisi otomatis yang tidak dapat diubah kecuali jika bentrok dengan alamat yang sudah digunakan di jaringan Anda. Penggunaan Kubernetes rentang ini untuk menetapkan alamat IP ke Pod dan Service di cluster Anda.
Isilah sisa bidang di jaringan dari file konfigurasi secara permanen sesuai kebutuhan.
loadBalancer
Menyisihkan VIP untuk server Kubernetes API dari cluster admin Anda. Sediakan
VIP Anda sebagai nilai untuk
loadBalancer.vips.controlPlaneVIP
Untuk informasi selengkapnya, lihat VIP di subnet cluster admin.
Memutuskan jenis load balancing yang ingin Anda gunakan. Opsinya adalah:
Load balancing paket MetalLB. Setel
loadBalancer.kind
ke"MetalLB"
.Load balancing terintegrasi dengan F5 BIG-IP. Tetapkan
loadBalancer.kind
ke"F5BigIP"
, dan isif5BigIP
bagian.Load balancing manual. Setel
loadBalancer.kind
ke"ManualLB"
, dan isi tindakanmanualLB
bagian.
Untuk mengetahui informasi selengkapnya tentang opsi load balancing, lihat Ringkasan load balancing.
antiAffinityGroups
Setel antiAffinityGroups.enabled
ke true
atau false
sesuai preferensi Anda.
Gunakan kolom ini untuk menentukan apakah Anda ingin Google Distributed Cloud membuat Distributed Resource Scheduler VMware aturan anti-afinitas (DRS) untuk node cluster admin Anda, sehingga tersebar di setidaknya tiga {i>host<i} fisik di pusat data Anda.
adminMaster
Jika Anda ingin menentukan CPU dan memori untuk node bidang kontrol admin
cluster, isi kolom cpus
dan memoryMB
di
adminMaster
bagian.
Tetapkan kolom replicas
di bagian adminMaster
ke 3
.
proxy
Jika jaringan yang akan memiliki simpul cluster admin
Anda berada di belakang server {i>proxy<i},
isi
proxy
bagian.
privateRegistry
Menentukan lokasi penyimpanan image container untuk Google Distributed Cloud komponen. Opsinya adalah:
Container Registry
Registry Docker pribadi Anda.
Jika Anda ingin menggunakan {i>registry<i} pribadi Anda sendiri, isi
privateRegistry
bagian.
componentAccessServiceAccountKeyPath
Google Distributed Cloud menggunakan akun layanan akses komponen Anda untuk mendownload komponen cluster dari Container Registry. Bidang ini menyimpan jalur JSON untuk akun layanan akses komponen Anda.
Kolom ini sudah diisi untuk Anda.
gkeConnect
Mendaftarkan cluster admin
ke fleet Google Cloud dengan mengisi
gkeConnect
bagian. Jika Anda menyertakan bagian stackdriver
dan cloudAuditLogging
di
file konfigurasi, ID di gkeConnect.projectID
harus sama dengan ID
ditetapkan di stackdriver.projectID
dan cloudAuditLogging.projectID
. Jika proyek
ID tidak sama, pembuatan cluster gagal.
Di 1.28 dan yang lebih baru, Anda dapat secara opsional menentukan wilayah tempat Armada dan
Menghubungkan layanan yang berjalan di gkeConnect.location
. Jika Anda tidak menyertakan kolom ini,
cluster menggunakan instance global layanan ini.
Jika Anda menyertakan gkeConnect.location
, wilayah yang Anda tentukan harus berupa
sama dengan region yang dikonfigurasi di cloudAuditLogging.clusterLocation
,
stackdriver.clusterLocation
, dan gkeOnPremAPI.location
. Jika wilayah
tidak sama, pembuatan cluster gagal.
gkeOnPremAPI
Jika GKE On-Prem API diaktifkan di
di project Google Cloud, semua cluster dalam project
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, buat cluster
pembuatan gagal.
Jika Anda ingin mendaftarkan semua cluster dalam project di GKE On-Prem API, pastikan untuk melakukan langkah-langkah dalam Sebelum memulai mengaktifkan dan menggunakan GKE On-Prem API di project.
Jika Anda tidak ingin mendaftarkan cluster di GKE On-Prem API, sertakan bagian ini dan menyetel
gkeOnPremAPI.enabled
kefalse
. Jika Anda tidak ingin mendaftarkan cluster apa pun dalam project, nonaktifkangkeonprem.googleapis.com
(nama layanan untuk GKE On-Prem API) di awal proyek. Untuk mengetahui petunjuknya, lihat Menonaktifkan layanan.
stackdriver
Jika Anda ingin mengaktifkan
Cloud Logging dan Cloud Monitoring
untuk cluster Anda, isi
stackdriver
bagian.
Bagian ini wajib ada secara default. Artinya, jika Anda
tidak mengisi
Anda harus menyertakan tanda --skip-validation-stackdriver
saat
jalankan 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 sebagai region yang ditetapkan dalamcloudAuditLogging.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.
cloudAuditLogging
Jika Anda ingin mengintegrasikan log audit dari Kubernetes API cluster Anda
server tertentu dengan Cloud Audit Logs, isi
cloudAuditLogging
bagian.
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 dalamstackdriver.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
mencadangkan cluster admin,
tetapkan
clusterBackup.datastore
ke
Datastore vSphere
tempat Anda ingin menyimpan cadangan cluster.
autoRepair
Jika Anda ingin
aktifkan perbaikan node otomatis
untuk cluster admin Anda, setel
autoRepair.enabled
ke true
.
secretsEncryption
Jika Anda ingin mengaktifkan
enkripsi Secret yang selalu aktif,
isi
secretsEncryption
bagian.
osImageType
Tentukan jenis OS image yang ingin Anda gunakan untuk node cluster admin, dan
isi
osImageType
bagian yang sesuai.
Contoh file konfigurasi yang terisi
Berikut adalah contoh file konfigurasi cluster admin yang sudah diisi. Tujuan konfigurasi memungkinkan sebagian, 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 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 cluster admin Anda file konfigurasi Anda.
Jika perintah menampilkan pesan kegagalan, perbaiki masalahnya dan validasi kembali lagi.
Jika Anda ingin melewati validasi yang lebih memakan waktu, teruskan flag --fast
.
Untuk melewati validasi individual, gunakan tanda --skip-validation-xxx
. Kepada
pelajari perintah check-config
lebih lanjut. Lihat
Menjalankan pemeriksaan preflight.
3. Dapatkan OS image
Jalankan gkectl prepare
untuk melakukan inisialisasi lingkungan vSphere:
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 {i>registry<i} Anda.
Anda juga dapat memvalidasi image container pengesahan build, dengan demikian memverifikasi bahwa citra dibuat dan ditandatangani oleh Google dan siap untuk deployment.
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
Perintah gkectl
, seperti "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services"
. Untuk menghindari kesalahan 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
dalam direktori saat ini. Anda akan memerlukan file kubeconfig ini
untuk berinteraksi dengan cluster admin Anda di lain waktu.
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 {i>kubeconfig<i} Anda.
Mengelola file checkpoint.yaml
Saat Anda menjalankan perintah gkectl create admin
untuk membuat cluster admin,
membuat file checkpoint di folder datastore yang sama dengan admin
disk data cluster. Secara {i>default<i}, file ini memiliki nama
DATA_DISK_NAME‑checkpoint.yaml
Jika panjang
DATA_DISK_NAME lebih dari atau sama dengan 245 karakter, maka, karena
sampai batas {i>vSphere<i} pada
panjang nama {i>file<i}, nama tersebut adalah
DATA_DISK_NAME.yaml
File ini berisi status dan kredensial cluster admin, serta digunakan untuk upgrade di masa mendatang. Jangan hapus file ini kecuali Anda mengikuti proses untuk menghapus cluster admin.
Jika telah mengaktifkan enkripsi VM di instance Server vCenter, Anda
harus memiliki
Operasi kriptografi.Akses Langsung
sebelum Anda membuat atau mengupgrade admin
. Jika tidak, checkpoint tidak akan diupload. Jika Anda tidak bisa mendapatkan
hak istimewa ini, maka Anda dapat menonaktifkan upload file checkpoint dengan
flag tersembunyi --disable-checkpoint
saat Anda menjalankan perintah yang relevan.
File checkpoint.yaml
diperbarui secara otomatis saat Anda menjalankan
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 cluster admin Anda {i>kubeconfig<i}.
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 cadangkan file kubeconfig cluster admin Anda. Yaitu, menyalin file {i>kubeconfig<i} dari workstation admin Anda ke lokasi lain. Kemudian jika Anda kehilangan akses ke workstation admin, atau jika file {i>kubeconfig<i} di akun admin Anda workstation secara tidak sengaja terhapus, Anda masih memiliki akses ke 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. Hal ini memungkinkan Anda untuk 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 Anda, cluster tersebut telah didaftarkan ke
fleet selama pembuatan atau update. Untuk mengaktifkan
fungsionalitas pengelolaan fleet, Google Cloud men-deploy
Hubungkan agen dan buat akun
akun layanan yang merepresentasikan 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 Anda.
Server Kubernetes API cluster admin harus dapat melakukan otorisasi dari agen Connect. Untuk memastikannya, hal-hal berikut kebijakan kontrol akses berbasis peran (RBAC) dikonfigurasi di akun layanan:
Kebijakan peniruan identitas yang memberikan otorisasi kepada agen Connect untuk mengirim permintaan ke Kubernetes API server 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 Anda di Konsol Google Cloud.
Pemecahan masalah
Lihat Memecahkan masalah pembuatan dan upgrade cluster.