Membuat cluster admin untuk digunakan di domain topologi

Halaman ini menunjukkan cara membuat cluster admin untuk digunakan di domain topologi Google Distributed Cloud. Cluster admin mengelola cluster pengguna yang menjalankan workload Anda. Google Distributed Cloud versi 1.31 atau yang lebih tinggi diperlukan untuk menggunakan domain topologi.

Untuk menyiapkan domain topologi, Anda harus mengaktifkan cluster lanjutan.

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 umum.

Untuk mengetahui detail selengkapnya tentang cluster admin, lihat ringkasan penginstalan.

Ringkasan prosedur

Berikut adalah langkah-langkah utama yang diperlukan dalam membuat cluster admin:

  1. Mengisi file konfigurasi admin Anda
    Tentukan detail untuk cluster admin baru Anda dengan melengkapi file konfigurasi cluster admin.
  2. Mengisi file konfigurasi infrastruktur vSphere Anda
    Tentukan detail tentang domain topologi Anda dalam file konfigurasi infrastruktur vSphere.
  3. Isi file blok IP Anda
    Tentukan alamat IP untuk gateway, netmask, dan node bidang kontrol dalam file blok IP.
  4. Mendapatkan OS image
    Download paket Google Distributed Cloud normal. Kemudian, jalankan gkectl prepare, yang mengimpor image OS ke vSphere, dan mengirim image container ke registry pribadi jika berlaku.
  5. Membuat cluster admin.
    Gunakan gkectl untuk membuat cluster admin baru seperti yang ditentukan dalam file konfigurasi yang telah Anda selesaikan. Saat Google Distributed Cloud membuat cluster admin, Google Distributed Cloud akan men-deploy cluster Kubernetes in Docker (kind) untuk menghosting sementara pengontrol Kubernetes yang diperlukan untuk membuat cluster admin. Cluster sementara ini disebut cluster bootstrap. Cluster pengguna dibuat dan diupgrade oleh admin pengelola tanpa menggunakan cluster bootstrap.
  6. Pastikan cluster admin Anda berjalan.
    Gunakan kubectl untuk melihat node cluster Anda.

Di akhir prosedur ini, Anda akan memiliki cluster admin yang berjalan dan dapat digunakan untuk membuat serta mengelola cluster pengguna di domain topologi.

Sebelum memulai

  • Pastikan Anda telah menyiapkan dan dapat login ke workstation admin seperti yang dijelaskan dalam Membuat workstation admin. Workstation admin memiliki alat yang Anda perlukan untuk membuat cluster admin. Lakukan semua langkah dalam dokumen ini di workstation admin Anda.

  • Tinjau dokumen perencanaan alamat IP. Pastikan Anda memiliki alamat IP yang cukup untuk tiga node bidang kontrol dan VIP bidang kontrol.

  • Konfigurasikan load balancer Anda untuk load balancing manual. Load balancer Anda harus disiapkan sebelum Anda membuat cluster admin.

  • Lihat bagian privateRegistry, dan tentukan apakah Anda ingin menggunakan registry publik atau pribadi untuk komponen Google Distributed Cloud.

  • Lihat ke depan di kolom osImageType, dan tentukan jenis sistem operasi yang ingin Anda jalankan di node cluster admin.

  • Jika organisasi Anda mewajibkan traffic keluar melewati server proxy, pastikan untuk mengizinkan API yang diperlukan dan alamat Artifact Registry.

  • Kumpulkan informasi yang Anda perlukan untuk mengakses setiap instance vCenter Server. Anda memerlukan informasi ini untuk mengisi bagian Secret dan bagian VSphereInfraConfig.credentials.vCenters dalam file konfigurasi infrastruktur vSphere. Lihat informasi berikut untuk mengetahui cara mendapatkan informasi yang diperlukan:

Mengisi file konfigurasi cluster admin

Jika Anda menggunakan gkeadm untuk membuat workstation admin, workstation tersebut akan membuat 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 Anda.

Pelajari file konfigurasi dengan membaca dokumen file konfigurasi cluster admin. Sebaiknya buka dokumen ini 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 ini adalah file ZIP yang berisi komponen cluster. Alat ini disertakan dengan workstation admin. Kolom ini sudah diisi untuk Anda.

enableAdvancedCluster

Tetapkan enableAdvancedCluster ke true. Tindakan ini akan mengaktifkan cluster lanjutan, yang diperlukan untuk menyiapkan domain topologi.

infraConfigFilePath

Tambahkan jalur lengkap ke file konfigurasi infrastruktur vSphere di kolom infraConfigFilePath.

vCenter

Hapus seluruh bagian ini. Sebagai gantinya, Anda mengonfigurasi informasi vCenter Server di file konfigurasi infrastruktur vSphere.

network

  • Hapus baris berikut dari file konfigurasi:

    • Seluruh bagian network.hostConfig. Informasi ini dikonfigurasi dalam file konfigurasi infrastruktur vSphere per domain topologi.
    • Kolom network.vCenter.networkName. Kolom ini dikonfigurasi dalam file konfigurasi infrastruktur vSphere per domain topologi.
    • Seluruh bagian network.controlPlaneIPBlock. Alamat IP untuk gateway, netmask, dan node bidang kontrol dikonfigurasi dalam file blok IP.
  • Tetapkan network.ipMode.ipBlockFilePath ke jalur file blok IP.

  • Tetapkan network.ipMode.type ke static.

  • Kolom network.podCIDR dan network.serviceCIDR memiliki nilai yang telah diisi sebelumnya 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.

loadBalancer

Untuk mengetahui informasi selengkapnya, lihat VIP di subnet cluster admin.

antiAffinityGroups

Tetapkan antiAffinityGroups.enabled ke false. Aturan anti-afinitas Distributed Resource Scheduler (DRS) tidak didukung dengan domain topologi.

adminMaster

  • Jika Anda ingin menentukan CPU dan memori untuk node bidang 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.

  • Jika Anda ingin menentukan domain topologi tertentu yang akan digunakan oleh node bidang kontrol, tambahkan nama domain topologi ke kolom adminMaster.topologyDomains. Jika tidak menentukan nama di sini, Anda harus menetapkan nama di vSphereInfraConfig.defaultTopologyDomain dalam file konfigurasi infrastruktur vSphere.

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 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 fleet Google Cloud dengan mengisi bagian gkeConnect. 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.

Anda dapat secara opsional menentukan region tempat fleet dan layanan Connect berjalan di gkeConnect.location. 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 regionnya tidak sama, pembuatan cluster akan gagal.

gkeOnPremAPI

Bagian ini menjelaskan cara cluster didaftarkan di GKE On-Prem API.

Alat command line gkectl adalah satu-satunya alat pengelolaan siklus proses cluster yang tersedia untuk cluster yang menggunakan domain topologi. Meskipun konsol Google Cloud , Google Cloud CLI, dan Terraform tidak didukung untuk cluster yang menggunakan domain topologi, Anda dapat mendaftarkan cluster di GKE On-Prem API saat dibuat.

Jika GKE On-Prem API diaktifkan di project Google Cloud Anda, semua cluster dalam project akan otomatis didaftarkan ke GKE On-Prem API 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 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 ke false. Jika Anda tidak ingin mendaftarkan cluster apa pun dalam project, nonaktifkan gkeonprem.googleapis.com (nama layanan untuk GKE On-Prem API) dalam project. Untuk mengetahui petunjuknya, lihat Menonaktifkan layanan.

stackdriver

Isi bagian stackdriver untuk mengaktifkan Cloud Logging dan Cloud Monitoring untuk cluster Anda.

Perhatikan persyaratan berikut:

  • ID di stackdriver.projectID harus sama dengan ID di gkeConnect.projectID dan cloudAuditLogging.projectID.

  • Region Google Cloud yang ditetapkan di stackdriver.clusterLocation harus sama dengan region yang ditetapkan di cloudAuditLogging.clusterLocation dan gkeConnect.location. Selain itu, jika gkeOnPremAPI.enabled adalah true, region yang sama harus ditetapkan di gkeOnPremAPI.location.

Jika project ID dan region tidak sama, pembuatan cluster akan gagal.

cloudAuditLogging

Jika Anda ingin mengintegrasikan log audit dari server Kubernetes API cluster Anda dengan Cloud Audit Logs, isi bagian cloudAuditLogging.

Perhatikan persyaratan berikut untuk cluster baru:

  • Karena enableAdvancedCluster ditetapkan ke true, Anda harus menentukan jalur yang sama di cloudAuditLogging.serviceAccountKeyPath dan stackdriver.serviceAccountKeyPath.

  • ID di cloudAuditLogging.projectID harus sama dengan ID di gkeConnect.projectID dan stackdriver.projectID.

  • Region Google Cloud yang ditetapkan di cloudAuditLogging.clusterLocation harus sama dengan region yang ditetapkan di stackdriver.clusterLocation dan gkeConnect.location (jika kolom disertakan dalam file konfigurasi Anda). Selain itu, jika gkeOnPremAPI.enabled adalah true, region yang sama harus ditetapkan di gkeOnPremAPI.location.

Jika project ID dan region tidak sama, pembuatan cluster akan gagal.

clusterBackup

Hapus bagian ini. Pencadangan cluster admin ke datastore vSphere tidak didukung.

autoRepair

Jika Anda ingin mengaktifkan perbaikan node otomatis untuk cluster admin, tetapkan autoRepair.enabled ke true.

secretsEncryption

Karena enableAdvancedCluster ditetapkan ke true, hapus bagian ini.

osImageType

Tetapkan osImageType. ke ubuntu_cgv2.

preparedSecrets

Hapus kolom preparedSecrets. Kredensial yang disiapkan tidak didukung saat domain topologi diaktifkan.

Contoh file konfigurasi yang telah diisi

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.31.0-gke.1-full.tgz"
enableAdvancedCluster: true
infraConfigFilePath: "/my-config-folder/vsphere-infrastructure-config.yaml"
network:
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"
  ipMode:
    type: "static"
    ipBlockFilePath: "/my-config-folder/admin-cluster-ipblock.yaml"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.59"
  kind: "ManualLB"
antiAffinityGroups:
  enabled: false
adminMaster:
  cpus: 4
  memoryMB: 16384
  replicas: 3
  topologyDomains: "admin-cluster-domain"
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
autoRepair:
  enabled: true
osImageType: "ubuntu_cgv2"

Mengisi file konfigurasi infrastruktur vSphere Anda

Salin template untuk file konfigurasi infrastruktur vSphere ke file dalam direktori yang Anda tentukan di kolom infraConfigFilePath dalam file konfigurasi cluster admin. Hanya ada satu file konfigurasi infrastruktur vSphere untuk cluster admin dan semua cluster pengguna terkelola.

Secret

Isi bagian Secret di file konfigurasi infrastruktur vSphere. Bagian ini menjelaskan Secret kredensial vSphere yang menyimpan kredensial setiap vCenter Server.

VSphereInfraConfig.name

Isi kolom VSphereInfraConfig,name.

VSphereInfraConfig.credentials.vCenters

Untuk setiap Secret, tambahkan bagian VSphereInfraConfig.credentials.vCenters yang sesuai.

VSphereInfraConfig,topologyDomains

Isi bagian VSphereInfraConfig.topologyDomains untuk menentukan domain topologi.

Isi file blok IP Anda

Salin template untuk file blok IP ke file di direktori yang Anda tentukan di kolom network.ipMode.ipBlockFilePath dalam file konfigurasi cluster admin. Tambahkan alamat IP untuk gateway, netmask, dan tiga node bidang kontrol. Untuk setiap alamat IP node bidang kontrol, tambahkan isControlPlane: true seperti yang ditunjukkan dalam contoh untuk domain topologi.

Mendapatkan OS image

  1. Download paket Google Distributed Cloud normal ke workstation admin:

    gcloud storage cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz /var/lib/gke/bundles/gke-onprem-vsphere-VERSION.tgz
    

    Ganti VERSION dengan versi Google Distributed Cloud yang ingin Anda instal.

    Perintah ini akan mendownload paket normal. Jangan mendownload paket lengkap karena tidak didukung dengan cluster lanjutan.

  2. Jalankan gkectl prepare untuk melakukan inisialisasi lingkungan vSphere Anda:

    gkectl prepare --config ADMIN_CLUSTER_CONFIG
    

    Ganti ADMIN_CLUSTER_CONFIG dengan jalur konfigurasi cluster admin.

    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 dan siap untuk deployment.

Membuat cluster admin

Buat cluster admin:

gkectl create admin --config ADMIN_CLUSTER_CONFIG

Melanjutkan pembuatan cluster admin setelah terjadi kegagalan

Jika pembuatan cluster admin gagal atau dibatalkan, Anda dapat menjalankan kembali perintah create:

gkectl create admin --config ADMIN_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 --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Output akan menampilkan nama cluster. Contoh:

NAME
gke-admin-tqk8x

Jika mau, Anda dapat mengubah nama dan lokasi file kubeconfig.

Memastikan cluster admin 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 akan 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   ...

Mengonfigurasi PodTemplate

Label topologi diisi ke label node di domain topologi. Kecuali jika penyiapan domain topologi Anda menggunakan batasan default, "topology.kubernetes.io/zone" sebagai kunci topologi, Anda perlu mengonfigurasi kunci topologi di template pod Deployment, StatefulSet, atau ReplicaSet, sebagaimana berlaku.

Misalnya, Anda menentukan kunci dalam label topologi sebagai "topology.examplepetstore.com/zone". Di PodTemplate, Anda menentukan kunci sebagai nilai untuk kolom topologySpreadConstraints.topologyKey. Hal ini memungkinkan scheduler Kubernetes mendistribusikan Pod ke seluruh domain topologi untuk memastikan ketersediaan tinggi dan mencegah konsentrasi berlebih di satu area jika terjadi kegagalan.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi topologySpreadConstraints, lihat Batasan Penyebaran Topologi Pod dalam dokumentasi Kubernetes.

Mencadangkan file

Sebaiknya cadangkan file kubeconfig cluster admin Anda. Artinya, salin file kubeconfig dari workstation admin Anda ke lokasi lain. Kemudian, jika Anda kehilangan akses ke workstation admin, atau jika file kubeconfig di workstation admin Anda tidak sengaja terhapus, Anda masih memiliki akses ke cluster admin.

Sebaiknya cadangkan juga 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. Dengan begitu, 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.

Pemecahan masalah

Lihat Memecahkan masalah pembuatan dan upgrade cluster.

Langkah berikutnya

Membuat cluster pengguna untuk digunakan di domain topologi