Membuat cluster admin

Dokumen ini menunjukkan cara membuat cluster admin untuk GKE di VMware. Cluster admin menjalankan bidang kontrol Kubernetes untuk cluster admin itu sendiri dan untuk cluster pengguna terkait. Anda harus membuat cluster admin sebelum membuat cluster pengguna untuk menjalankan beban kerja.

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

Ringkasan prosedur

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

  1. Hubungkan ke workstation admin.
    VM 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 dorong image container ke registry pribadi, jika berlaku.
    Jalankan gkectl prepare.
  4. (Opsional) Membuat load balancer Seesaw.
    Jika Anda memutuskan untuk menggunakan load balancer Seesaw, jalankan gkectl create loadbalancer.
  5. Membuat cluster admin.
    Gunakan gkectl untuk membuat cluster admin baru seperti yang ditentukan dalam file konfigurasi yang sudah selesai. onprem-admin-cluster-controller dalam cluster bootstrap sementara mengelola pembuatan cluster admin.
  6. 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.

Sebelum memulai

  • Pastikan Anda telah membuat workstation admin.

  • Tinjau dokumen perencanaan alamat IP. Pastikan Anda memiliki alamat IP yang cukup, dan tinjau kembali keputusan Anda tentang bagaimana Anda ingin node cluster mendapatkan alamat IP-nya: DHCP atau statis. Jika memutuskan untuk menggunakan alamat IP statis, Anda harus mengisi file blok IP yang berisi alamat pilihan Anda.

  • 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 ke depan bagian privateRegistry, dan tentukan apakah Anda ingin menggunakan registry publik atau pribadi untuk GKE di komponen VMware.

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

1. Menghubungkan ke workstation admin

Ikuti petunjuk untuk mendapatkan koneksi SSH ke workstation admin Anda. Workstation admin memiliki alat yang Anda perlukan untuk membuat cluster admin. Workstation admin juga telah mengaktifkan akun layanan akses komponen Anda.

Lakukan semua langkah selanjutnya dalam topik ini di komputer admin Anda di direktori beranda.

2. Isi file konfigurasi Anda

Saat membuat workstation admin, gkeadm membuat file konfigurasi bernama admin-cluster.yaml. File konfigurasi ini digunakan untuk membuat cluster admin.

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

Sebagian besar kolom di bagian ini sudah diisi dengan nilai yang Anda masukkan saat membuat workstation admin. Pengecualiannya adalah kolom dataDisk, yang harus Anda isi sekarang.

network

Tentukan cara node cluster Anda mendapatkan alamat IP-nya. Opsinya adalah:

  • Dari server DHCP yang Anda siapkan sebelumnya. Tetapkan network.ipMode.type ke "dhcp".

  • Dari daftar alamat IP statis yang Anda berikan. Tetapkan network.ipMode.type ke "static", dan buat file blok IP yang menyediakan alamat IP statis. Untuk contoh file blok IP, lihat Contoh file konfigurasi yang terisi.

Isi kolom lainnya di bagian jaringan file konfigurasi sesuai kebutuhan:

  • Jika Anda memutuskan untuk menggunakan alamat IP statis untuk node cluster, kolom network.ipMode.ipBlockFilePath dan bagian network.hostconfig diperlukan. Bagian network.hostconfig menyimpan informasi tentang server NTP, server DNS, dan domain penelusuran DNS yang digunakan oleh node cluster Anda.

  • Jika Anda menggunakan cluster admin dengan ketersediaan tinggi (HA), atau jika menggunakan load balancer Seesaw, bagian network.hostconfig wajib ada, terlepas dari penggunaan DHCP atau IP statis untuk node cluster Anda.

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

Terlepas dari apakah Anda mengandalkan server DHCP atau menentukan daftar alamat IP statis, Anda harus memiliki alamat IP yang tersedia untuk node cluster admin Anda. Ini termasuk node dalam cluster admin yang menjalankan bidang kontrol untuk cluster pengguna yang terkait. Untuk mendapatkan penjelasan tentang jumlah alamat IP yang Anda perlukan, lihat Merencanakan alamat IP.

Cluster admin dengan ketersediaan tinggi (Pratinjau)

Jika Anda ingin membuat cluster admin dengan ketersediaan tinggi (HA), isi bagian network.controlPlaneIPBlock dan bagian network.hostConfig. Tetapkan juga adminMaster.replicas ke 3.

Cluster admin dengan ketersediaan tinggi memiliki tiga node yang menjalankan komponen bidang kontrol.

Cluster admin HA memiliki persyaratan dan batasan berikut:

  • Cluster pengguna yang dikelola oleh cluster admin dengan ketersediaan tinggi (HA) harus mengaktifkan Controlplane V2.

  • Cluster admin dengan ketersediaan tinggi (HA) tidak mendukung pencadangan dan pemulihan.

  • Anda tidak dapat menggunakan load balancer Seesaw untuk cluster admin dengan ketersediaan tinggi (HA). Anda tidak dapat menggunakan load balancer Seesaw untuk cluster pengguna yang dikelola oleh cluster admin dengan ketersediaan tinggi (HA).

  • Cluster admin dengan ketersediaan tinggi (HA) tidak mendukung rotasi CA cluster admin.

  • Cluster admin dengan ketersediaan tinggi (HA) tidak mendukung gkectl get-config.

loadBalancer

Sisihkan VIP untuk server Kubernetes API dari cluster admin Anda. Sisihkan VIP lain untuk server {i>add-on<i}. Berikan VIP Anda sebagai nilai untuk loadBalancer.vips.controlPlaneVIP dan loadBalancer.vips.addonsVIP.

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

  • Melihat paket load balancing. Tetapkan loadBalancer.kind ke "Seesaw", dan isi bagian loadBalancer.seesaw.

  • 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, baca Ringkasan load balancing.

antiAffinityGroups

Tetapkan antiAffinityGroups.enabled ke true atau false sesuai dengan preferensi Anda.

Gunakan kolom ini untuk menentukan apakah Anda ingin GKE di VMware membuat aturan anti-afinitas Distributed Resource Scheduler (DRS) VMware untuk node cluster admin, yang menyebabkan node tersebut disebar 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.

Pratinjau: Jika Anda ingin membuat cluster admin ketersediaan tinggi, tetapkan kolom replicas di bagian adminMaster ke 3. Jika tidak, tetapkan ke 1.

addonNode

Tetapkan addonNode.autoResize.enabled ke true atau false sesuai dengan preferensi Anda.

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 GKE di komponen VMware. Opsinya adalah:

  • Container Registry

  • Registry Docker pribadi Anda sendiri.

Jika ingin menggunakan registry pribadi Anda, isi bagian privateRegistry.

componentAccessServiceAccountKeyPath

GKE di VMware 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.

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.

cloudAuditLogging

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

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 blok IP yang terisi dan file konfigurasi cluster admin yang terisi. Konfigurasi ini mengaktifkan beberapa, tetapi tidak semua, fitur yang tersedia.

{i>vc-01-ipblock.yaml<i}

blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.10
      hostname: admin-host1
    - ip: 172.16.20.11
      hostname: admin-host2
    - ip: 172.16.20.12
      hostname: admin-host3
    - ip: 172.16.20.13
      hostname: admin-host4
    - ip: 172.16.20.14
      hostname: admin-host5
    - ip: 172.16.20.15
      hostname: admin-host6
    - ip: 172.16.20.16
      hostname: admin-host7
    - ip: 172.16.20.17
      hostname: admin-host8

vc-01-admin-cluster.yaml

apiVersion: v1
kind: AdminCluster
name: "gke-admin-01"
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.11.0-gke.543-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"
  dataDisk: "vc01-admin-disk.vmdk"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
    ipBlockFilePath: "vc-01-ipblock.yaml"
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"
  vCenter:
    networkName: "vc01-net-1"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.59"
    addonsVIP: "172.16.20.60"
  kind: "MetalLB"
antiAffinityGroups:
  enabled: true
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.

4. (Opsional) Membuat load balancer Seesaw

Perlu diingat bahwa Anda memiliki beberapa opsi load balancing untuk cluster admin: Metal LB, Seesaw, F5 BIG-IP, atau manual.

Jika Anda memilih untuk menggunakan load balancer Seesaw, lakukan langkah di bagian ini. Jika tidak, Anda dapat melewati bagian ini.

Buat dan konfigurasi VM untuk load balancer Seesaw:

gkectl create loadbalancer --config ADMIN_CLUSTER_CONFIG

5. Membuat cluster admin

Buat cluster admin:

gkectl create admin --config ADMIN_CLUSTER_CONFIG

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:

gke-admin-master-hdn4z            Ready    control-plane,master ...
gke-admin-node-7f46cc8c47-g7w2c   Ready ...
gke-admin-node-7f46cc8c47-kwlrs   Ready ...

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.

Pemecahan masalah

Lihat Memecahkan masalah pembuatan dan upgrade cluster.

Langkah selanjutnya

Membuat cluster pengguna