Membuat cluster admin

Dokumen ini menunjukkan cara membuat cluster admin untuk Google Distributed Cloud. Cluster admin mengelola cluster pengguna yang menjalankan beban kerja 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 referensikan dalam konten Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise umum.

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

Ringkasan prosedur

Berikut adalah langkah-langkah utama yang terlibat dalam pembuatan cluster admin:

  1. Siapkan workstation admin.
    Komputer ini memiliki alat yang diperlukan untuk membuat cluster baru.
  2. 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.
  3. Impor image OS ke vSphere, dan kirim image container ke registry pribadi jika berlaku.
    Jalankan gkectl prepare.
  4. 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.
  5. 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.

Sebelum memulai

  • 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 tertentu, 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 Container Registry.

  • Pada versi 1.29 dan yang lebih tinggi, 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.

Menyiapkan workstation admin

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 lainnya dalam dokumen ini di workstation admin Anda.

Mengisi file konfigurasi

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.

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 terintegrasi dengan F5 BIG-IP. Tetapkan loadBalancer.kind ke "F5BigIP", dan isi bagian f5BigIP.

  • Load balancing manual. Tetapkan loadBalancer.kind ke "ManualLB", dan isi bagian manualLB.

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.

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:

  • Container 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 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.

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

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 untuk cluster baru:

  • 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 (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.

cloudAuditLogging

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

Perhatikan persyaratan berikut untuk cluster baru:

  • 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

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 image OS yang ingin Anda gunakan untuk node cluster admin, dan isi bagian osImageType sesuai kebutuhan.

Contoh file konfigurasi yang diisi

Berikut adalah contoh file konfigurasi cluster admin yang terisi. 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 --config ADMIN_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 --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 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 --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.

Melanjutkan 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 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 menampilkan nama cluster. Contoh:

NAME
gke-admin-tqk8x

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

Mengelola 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 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 --kubeconfig ADMIN_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 --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 dalam file konfigurasi cluster admin, cluster akan terdaftar ke armada Anda selama pembuatan atau pembaruan. Untuk mengaktifkan fungsi pengelolaan fleet, Google Cloud men-deploy agen Connect dan membuat akun layanan Google yang mewakili project tempat cluster terdaftar. 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 pada permintaan dari agen Connect. Untuk memastikannya, kebijakan kontrol akses berbasis peran (RBAC) berikut dikonfigurasi di akun layanan:

  • Kebijakan peniruan identitas yang memberikan 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.

Kebijakan akun layanan dan RBAC diperlukan agar Anda dapat mengelola siklus proses cluster pengguna di konsol Google Cloud.

Pemecahan masalah

Lihat Memecahkan masalah pembuatan dan upgrade cluster.

Langkah selanjutnya

Membuat cluster pengguna