Membuat cluster dasar

Ini adalah bagian kedua dari panduan yang memandu Anda melakukan penginstalan bukti konsep kecil Google Distributed Cloud. Bagian pertama adalah Menyiapkan infrastruktur minimal, yang menunjukkan cara merencanakan alamat IP dan menyiapkan infrastruktur vSphere dan Google Cloud yang diperlukan untuk deployment Anda. Dokumen ini dibuat berdasarkan penyiapan dan perencanaan yang Anda lakukan di bagian sebelumnya dan menunjukkan cara membuat workstation admin, cluster admin, dan cluster pengguna di lingkungan vSphere Anda, menggunakan template sederhana yang dapat Anda isi di sini dalam dokumen ini. Kemudian, Anda dapat melanjutkan untuk men-deploy aplikasi.

Seperti penyiapan infrastruktur penginstalan sederhana ini, cluster yang Anda siapkan menggunakan dokumen ini mungkin tidak sesuai untuk kebutuhan dan kasus penggunaan produksi Anda yang sebenarnya. Untuk mengetahui informasi, praktik terbaik, dan petunjuk selengkapnya untuk penginstalan produksi, lihat panduan penginstalan.

Sebelum memulai

  1. Pastikan Anda telah menyiapkan lingkungan vSphere dan Google Cloud seperti yang dijelaskan dalam Menyiapkan infrastruktur minimal.

  2. Jika ingin menggunakan Terraform untuk membuat cluster pengguna, Anda memerlukan Terraform di workstation admin atau komputer lain.

Ringkasan prosedur

Berikut adalah langkah-langkah utama yang terlibat dalam penyiapan ini:

  1. Login ke Google Cloud CLI dengan akun yang memiliki izin yang diperlukan untuk membuat akun layanan.

  2. Kumpulkan informasi yang Anda perlukan untuk mengonfigurasi Google Distributed Cloud, termasuk nama pengguna dan sandi vCenter Anda, serta alamat IP yang Anda siapkan di bagian sebelumnya.

  3. Buat workstation admin yang memiliki resource dan alat yang Anda butuhkan untuk membuat cluster admin dan pengguna, termasuk akun layanan tambahan yang Anda butuhkan untuk menyelesaikan penyiapan.

  4. Buat cluster admin untuk mengelola dan mengupdate cluster pengguna Anda.

  5. Buat cluster pengguna untuk menjalankan workload Anda.

1. Login ke Google Cloud CLI

Menyiapkan Google Distributed Cloud memerlukan beberapa akun layanan dengan izin yang berbeda. Jadi, Anda harus login ke Google Cloud CLI dengan akun yang memiliki izin yang diperlukan untuk membuat dan mengonfigurasi akun layanan, karena gkeadm menggunakan properti account gcloud CLI Anda saat ini saat melakukan penyiapan ini.

  1. Login ke gcloud CLI. Anda dapat menggunakan Akun Google apa pun, tetapi akun tersebut harus memiliki izin yang diperlukan. Jika Anda telah mengikuti bagian sebelumnya dari panduan ini, Anda mungkin sudah login dengan akun yang sesuai untuk membuat akun layanan akses komponen.

    gcloud auth login
    
  2. Pastikan properti account gcloud CLI Anda disetel dengan benar:

    gcloud config list
    

    Output menampilkan nilai properti account SDK Anda. Contoh:

    [core]
    account = my-name@google.com
    disable_usage_reporting = False
    Your active configuration is: [default]
    
  3. Pastikan Anda telah menginstal komponen gcloud CLI terbaru:

    gcloud components update
    

    Bergantung pada cara Anda menginstal gcloud CLI, Anda mungkin melihat pesan berikut: "Anda tidak dapat melakukan tindakan ini karena pengelola komponen Google Cloud CLI dinonaktifkan untuk penginstalan ini. Anda dapat menjalankan perintah berikut untuk mencapai hasil yang sama untuk penginstalan ini:" Ikuti petunjuk untuk menyalin dan menempelkan perintah guna mengupdate komponen.

2. Mengumpulkan informasi

Gunakan informasi yang Anda siapkan di Siapkan infrastruktur minimal untuk mengedit placeholder dalam tabel berikut:

Detail vSphere
Nama pengguna akun vCenter Anda USERNAME
Sandi akun vCenter Anda PASSWORD
Alamat vCenter Server Anda ADDRESS
Jalur ke sertifikat CA root untuk vCenter Server Anda, di mesin yang akan Anda gunakan untuk membuat workstation admin CA_CERT_PATH
Nama pusat data vSphere Anda DATA_CENTER
Nama cluster vSphere Anda VSPHERE_CLUSTER
Nama atau jalur kumpulan resource vSphere Anda. Untuk mengetahui informasi selengkapnya, lihat vcenter.resourcePool. RESOURCE_POOL
Nama datastore vSphere Anda DATASTORE
Nama jaringan vSphere Anda NETWORK
Alamat IP
Satu alamat IP untuk workstation admin Anda ADMIN_WS_IP
Tiga alamat IP untuk node bidang kontrol cluster admin Anda. ADMIN_CONTROL_PLANE_NODE_IP_1
ADMIN_CONTROL_PLANE_NODE_IP_2
ADMIN_CONTROL_PLANE_NODE_IP_3
Alamat IP untuk node bidang kontrol di cluster pengguna. USER_CONTROL_PLANE_NODE_IP
Empat alamat IP untuk node pekerja cluster pengguna Anda. Hal ini mencakup alamat untuk node tambahan yang dapat digunakan selama upgrade dan update. USER_NODE_IP_1
USER_NODE_IP_2
USER_NODE_IP_3
USER_NODE_IP_4
Alamat IP virtual (VIP) untuk server Kubernetes API cluster admin ADMIN_CONTROL_PLANE_VIP
VIP untuk server Kubernetes API cluster pengguna USER_CONTROL_PLANE_VIP
VIP Ingress untuk cluster pengguna USER_INGRESS_VIP
Dua VIP untuk Layanan jenis LoadBalancer di cluster pengguna Anda. SERVICE_VIP_1
SERVICE_VIP_2
Alamat IP server DNS yang dapat dijangkau dari workstation admin dan node cluster Anda DNS_SERVER_IP
Alamat IP server NTP yang dapat dijangkau dari workstation admin dan node cluster Anda NTP_SERVER_IP
Alamat IP gateway default untuk subnet yang memiliki workstation admin dan node cluster Anda DEFAULT_GATEWAY_IP
Netmask untuk subnet yang memiliki workstation admin dan node cluster Anda
Contoh: 255.255.255.0
NETMASK
Jika jaringan Anda berada di belakang server proxy, URL server proxy. Untuk mengetahui informasi selengkapnya, lihat proxy. Isi secara manual di file konfigurasi workstation admin Anda jika diperlukan. PROXY_URL
Rentang CIDR untuk Layanan dan Pod
Setiap cluster admin dan cluster pengguna memerlukan rentang CIDR untuk Layanan dan rentang CIDR untuk Pod. Gunakan nilai yang sudah diisi sebelumnya berikut kecuali jika Anda perlu mengubahnya untuk menghindari tumpang-tindih dengan elemen lain di jaringan Anda:
Rentang CIDR untuk Layanan di cluster admin 10.96.232.0/24
Rentang CIDR untuk Pod di cluster admin 192.168.0.0/16
Rentang CIDR untuk Layanan di cluster pengguna 10.96.0.0/20
Rentang CIDR untuk Pod di cluster pengguna 192.168.0.0/16
DetailGoogle Cloud
ID project Cloud yang Anda pilih PROJECT_ID
Jalur ke file kunci JSON untuk akun layanan akses komponen yang Anda siapkan di bagian sebelumnya, di mesin yang akan Anda gunakan untuk membuat workstation admin. COMPONENT_ACCESS_SA_KEY_PATH
Alamat email yang terkait dengan akun Google Cloud Anda. Contoh: alex@example.com. GOOGLE_ACCOUNT_EMAIL

3. Membuat workstation admin

Sebelum dapat membuat cluster, Anda harus membuat workstation admin lalu terhubung ke workstation tersebut menggunakan SSH. Workstation admin adalah VM mandiri dengan alat dan resource yang Anda butuhkan untuk membuat cluster GKE Enterprise di lingkungan vSphere Anda. Anda dapat menggunakan alat command line gkeadm untuk membuat workstation admin.

Download gkeadm

Download gkeadm ke direktori Anda saat ini:

gcloud storage cp gs://gke-on-prem-release/gkeadm/1.32.100-gke.106/linux/gkeadm ./
chmod +x gkeadm

Anda memerlukan versi gkeadm (yang juga merupakan versi Google Distributed Cloud) untuk membuat file konfigurasi cluster admin dan pengguna. Untuk memeriksa versi gkeadm, jalankan perintah berikut:

./gkeadm version

Contoh output berikut menunjukkan versi.

gkeadm 1.32.0 (1.32.100-gke.106)

Meskipun Anda dapat mendownload versi gkeadm lainnya, panduan ini mengasumsikan bahwa Anda menginstal 1.32.100-gke.106, dan menggunakan versi tersebut di semua file konfigurasi dan perintah.

Buat file kredensial Anda

Buat dan simpan file bernama credential.yaml di direktori saat ini dengan konten berikut:

apiVersion: v1
kind: CredentialFile
items:
- name: vCenter
  username: "USERNAME"
  password: "PASSWORD"

Buat file konfigurasi workstation admin Anda

Buat dan simpan file bernama admin-ws-config.yaml, lagi di direktori saat ini, dengan konten berikut:

gcp:
  componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_SA_KEY_PATH"
vCenter:
  credentials:
    address: "ADDRESS"
    fileRef:
      path: "credential.yaml"
      entry: "vCenter"
  datacenter: "DATA_CENTER"
  datastore: "DATASTORE"
  cluster: "VSPHERE_CLUSTER"
  network: "NETWORK"
  resourcePool: "RESOURCE_POOL"
  caCertPath: "CA_CERT_PATH"
proxyUrl: ""
adminWorkstation:
  name: "minimal-installation-admin-workstation"
  cpus: 4
  memoryMB: 8192
  diskGB: 50
  dataDiskName: gke-on-prem-admin-workstation-data-disk/minimal-installation-data-disk.vmdk
  dataDiskMB: 512
  network:
    ipAllocationMode: "static"
    hostConfig:
      ip: "ADMIN_WS_IP"
      gateway: "DEFAULT_GATEWAY_IP"
      netmask: "NETMASK"
      dns:
      - "DNS_SERVER_IP"
  proxyUrl: ""
  ntpServer: ntp.ubuntu.com

Membuat workstation admin Anda

Buat workstation admin Anda menggunakan perintah berikut:

./gkeadm create admin-workstation --auto-create-service-accounts

Menjalankan perintah ini:

  • Membuat workstation admin Anda
  • Membuat akun layanan tambahan yang Anda perlukan untuk penginstalan secara otomatis
  • Membuat file konfigurasi template untuk cluster admin dan pengguna Anda

Output memberikan informasi mendetail tentang pembuatan workstation admin Anda dan menyediakan perintah yang dapat Anda gunakan untuk mendapatkan koneksi SSH ke workstation admin Anda. Contoh:

...
Admin workstation is ready to use.
Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation
This file is required for future upgrades
SSH into the admin workstation with the following command:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49
********************************************************************

Dalam output sebelumnya, alamat IP adalah contoh. Alamat IP workstation admin Anda akan berbeda. Catat alamat IP workstation admin Anda. Anda akan membutuhkannya pada langkah berikutnya.

Untuk mengetahui informasi selengkapnya tentang cara membuat workstation admin, lihat Membuat workstation admin.

Menghubungkan ke workstation admin Anda

Gunakan perintah yang ditampilkan di output sebelumnya untuk mendapatkan koneksi SSH ke workstation admin Anda. Contoh:

ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49

Jika Anda perlu menemukan perintah ini lagi, gkeadm akan membuat file bernama gke-admin-ws-... di direktori pada mesin lokal tempat Anda menjalankan gkeadm create admin-workstation. Bagian ini berisi detail tentang workstation admin Anda, termasuk perintah SSH.

Di workstation admin, masukkan exit untuk menghentikan koneksi SSH dan kembali ke mesin lokal Anda.

Menyalin kunci logging audit ke workstation admin Anda

Di bagian sebelumnya, Anda telah membuat file kunci JSON untuk akun layanan audit logging.

Salin file kunci JSON ke direktori beranda di workstation admin Anda. Misalnya, di komputer lokal Anda:

scp -i /usr/local/google/home/me/.ssh/gke-admin-workstation audit-logging-key.json ubuntu@172.16.20.49:~

Melihat file di workstation admin Anda

Sekali lagi, dapatkan koneksi SSH ke workstation admin Anda.

Di workstation admin, cantumkan file di direktori utama:

ls -1

Output harus mencakup:

  • admin-cluster.yaml, file konfigurasi template untuk membuat cluster admin Anda.
  • user-cluster.yaml, file konfigurasi template untuk membuat cluster pengguna Anda.
  • File sertifikat vCenter yang Anda tentukan dalam konfigurasi workstation admin
  • File credential.yaml yang Anda tentukan dalam konfigurasi workstation admin.
  • File kunci JSON untuk akun layanan audit logging Anda.
  • File kunci JSON untuk dua akun layanan yang gkeadm dibuat untuk Anda: akun layanan connect-register dan akun layanan logging-monitoring, serta file kunci untuk akun layanan akses komponen yang Anda buat sebelumnya.

Contoh:

admin-cluster.yaml
admin-ws-config.yaml
audit-logging-key.json
sa-key.json
connect-register-sa-2203040617.json
credential.yaml
log-mon-sa-2203040617.json
logs
vc01-cert.pem
user-cluster.yaml

Anda harus menentukan beberapa nama file ini dalam file konfigurasi untuk membuat cluster. Gunakan nama file sebagai nilai untuk placeholder dalam tabel berikut:

Nama file kunci akun layanan connect-register
Contoh: connect-register-sa-2203040617.json
CONNECT_REGISTER_SA_KEY
Nama file kunci akun layanan logging-monitoring
Contoh: log-mon-sa-2203040617.json
LOG_MON_SA_KEY
Nama file kunci akun layanan logging audit
Contoh: audit-logging-key.json
AUDIT_LOG_SA_KEY
Nama file kunci akun layanan akses komponen
Contoh: sa-key.json
COMPONENT_ACCESS_SA_KEY
Nama file sertifikat vCenter
Contoh: vc01-cert.pem
CA_CERT_FILE

4. Membuat cluster admin

Setelah mengonfigurasi workstation admin dengan vCenter dan detail lainnya, Anda dapat menggunakannya untuk membuat cluster admin di lingkungan vSphere. Pastikan Anda memiliki koneksi SSH ke workstation admin, seperti yang dijelaskan sebelumnya, sebelum memulai langkah ini. Semua perintah berikut dijalankan di workstation admin.

Buat file konfigurasi cluster admin Anda

Buka admin-cluster.yaml dan ganti kontennya dengan yang berikut:

apiVersion: v1
kind: AdminCluster
name: "minimal-installation-admin-cluster"
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.32.100-gke.106-full.tgz"
vCenter:
  address: "ADDRESS"
  datacenter: "DATA_CENTER"
  cluster: "VSPHERE_CLUSTER"
  resourcePool: "RESOURCE_POOL"
  datastore: "DATASTORE"
  caCertPath: "CA_CERT_FILE"
  credentials:
    fileRef:
      path: "credential.yaml"
      entry: "vCenter"
network:
  hostConfig:
    dnsServers:
    - "DNS_SERVER_IP"
    ntpServers:
    - "NTP_SERVER_IP"
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"
  vCenter:
    networkName: "NETWORK"
  controlPlaneIPBlock:
    netmask: "NETMASK"
    gateway: "DEFAULT_GATEWAY_IP"
    ips:
    - ip: "ADMIN_CONTROL_PLANE_NODE_IP_1"
      hostname: "admin-cp-vm-1"
    - ip: "ADMIN_CONTROL_PLANE_NODE_IP_2"
      hostname: "admin-cp-vm-2"
    - ip: "ADMIN_CONTROL_PLANE_NODE_IP_3"
      hostname: "admin-cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "ADMIN_CONTROL_PLANE_VIP"
  kind: "MetalLB"
adminMaster:
  cpus: 4
  memoryMB: 16384
  replicas: 3
antiAffinityGroups:
  enabled: false
componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_SA_KEY"
gkeConnect:
  projectID: "PROJECT_ID"
  registerServiceAccountKeyPath: "CONNECT_REGISTER_SA_KEY"
stackdriver:
  projectID: "PROJECT_ID"
  clusterLocation: "us-central1"
  enableVPC: false
  serviceAccountKeyPath: "LOG_MON_SA_KEY"
  disableVsphereResourceMetrics: false
cloudAuditLogging:
  projectID: "PROJECT_ID"
  clusterLocation: us-central1
  serviceAccountKeyPath: "AUDIT_LOG_SA_KEY"

Memvalidasi file konfigurasi cluster admin

Pastikan file konfigurasi cluster admin Anda valid dan dapat digunakan untuk pembuatan cluster:

gkectl check-config --config admin-cluster.yaml

Mengimpor image OS ke vSphere

Jalankan gkectl prepare dengan file konfigurasi yang telah Anda selesaikan untuk mengimpor image OS node ke vSphere:

gkectl prepare --config admin-cluster.yaml --skip-validation-all

Dengan menjalankan perintah ini, gambar akan diimpor ke vSphere dan ditandai sebagai template VM, termasuk gambar untuk cluster admin Anda.

Perintah ini dapat memerlukan waktu beberapa menit untuk ditampilkan.

Buat cluster admin

Buat cluster admin:

gkectl create admin --config admin-cluster.yaml

Melanjutkan pembuatan cluster admin setelah terjadi kegagalan

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

gkectl create admin --config admin-cluster.yaml

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

Pastikan cluster admin Anda berjalan

Pastikan cluster admin Anda berjalan:

kubectl get nodes --kubeconfig kubeconfig

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

Mengaktifkan otorisasi RBAC

Untuk memberikan peran clusterrole/cluster-admin Kubernetes ke akun pengguna Anda di cluster, jalankan perintah berikut:

gcloud container fleet memberships generate-gateway-rbac \
    --membership=minimal-installation-admin-cluster \
    --role=clusterrole/cluster-admin \
    --users=GOOGLE_ACCOUNT_EMAIL \
    --project=PROJECT_ID \
    --kubeconfig=kubeconfig \
    --context=minimal-installation-admin-cluster \
    --apply

Output perintah ini akan mirip dengan berikut ini, yang dipangkas agar mudah dibaca:

Validating input arguments.
Specified Cluster Role is: clusterrole/cluster-admin
Generated RBAC policy is:
--------------------------------------------
...
Applying the generate RBAC policy to cluster with kubeconfig: kubeconfig, context: minimal-installation-admin-cluster
Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster.
Successfully applied the RBAC policy to cluster.

Selain hal lainnya, kebijakan RBAC memungkinkan Anda login ke cluster di konsol Google Cloud menggunakan Identitas Google Anda untuk melihat detail cluster lainnya.

Pendaftaran otomatis di GKE On-Prem API

Karena GKE On-Prem API diaktifkan di project Anda, cluster akan otomatis didaftarkan ke GKE On-Prem API. Mendaftarkan cluster admin Anda di GKE On-Prem API memungkinkan Anda menggunakan alat standar—konsolGoogle Cloud , Google Cloud CLI, atau Terraform—untuk membuat, mengupgrade, memperbarui, dan menghapus cluster pengguna yang dikelola cluster admin. Mendaftarkan cluster juga memungkinkan Anda menjalankan perintah gcloud untuk mendapatkan informasi tentang cluster Anda.

5. Membuat cluster pengguna

Bagian ini memberikan langkah-langkah untuk membuat cluster pengguna menggunakan konsol, gkectl, Terraform, atau gcloud CLI.

gkectl

Pastikan Anda memiliki koneksi SSH ke workstation admin, seperti yang dijelaskan sebelumnya, sebelum memulai prosedur ini. Semua perintah berikut dijalankan di workstation admin.

Buat file blok IP cluster pengguna Anda

  1. Buat file bernama user-ipblock.yaml.

  2. Salin dan tempel konten berikut ke user-ipblock.yaml, lalu simpan file:

    blocks:
      - netmask: "NETMASK"
        gateway: "DEFAULT_GATEWAY_IP"
        ips:
        - ip: "USER_NODE_IP_1"
          hostname: "user-vm-1"
        - ip: "USER_NODE_IP_2"
          hostname: "user-vm-2"
        - ip: "USER_NODE_IP_3"
          hostname: "user-vm-3"
        - ip: "USER_NODE_IP_4"
          hostname: "user-vm-4"
    

Buat file konfigurasi cluster pengguna Anda

  1. Buat file bernama user-cluster.yaml di direktori yang sama dengan user-ipblock.yaml.

  2. Salin dan tempel konten berikut ke user-cluster.yaml, lalu simpan file:

apiVersion: v1
kind: UserCluster
name: "minimal-installation-user-cluster"
gkeOnPremVersion: "1.32.100-gke.106"
enableControlplaneV2: true
network:
  hostConfig:
    dnsServers:
    - "DNS_SERVER_IP"
    ntpServers:
    - "NTP_SERVER_IP"
  ipMode:
    type: "static"
    ipBlockFilePath: "user-ipblock.yaml"
  serviceCIDR: "10.96.0.0/20"
  podCIDR: "192.168.0.0/16"
  controlPlaneIPBlock:
    netmask: "NETMASK"
    gateway: "DEFAULT_GATEWAY_IP"
    ips:
    - ip: "USER_CONTROL_PLANE_NODE_IP"
      hostname: "cp-vm-1"
loadBalancer:
  vips:
    controlPlaneVIP: "USER_CONTROL_PLANE_VIP"
    ingressVIP: "USER_INGRESS_VIP"
  kind: "MetalLB"
  metalLB:
    addressPools:
    - name: "uc-address-pool"
      addresses:
      - "USER_INGRESS_VIP/32"
      - "SERVICE_VIP_1/32"
      - "SERVICE_VIP_2/32"
enableDataplaneV2: true
nodePools:
- name: "uc-node-pool"
  cpus: 4
  memoryMB: 8192
  replicas: 3
  enableLoadBalancer: true
antiAffinityGroups:
  enabled: false
gkeConnect:
  projectID: "PROJECT_ID"
  registerServiceAccountKeyPath: "CONNECT_REGISTER_SA_KEY"
stackdriver:
  projectID: "PROJECT_ID"
  clusterLocation: "us-central1"
  enableVPC: false
  serviceAccountKeyPath: "LOG_MON_SA_KEY"
  disableVsphereResourceMetrics: false
autoRepair:
  enabled: true

Validasi konfigurasi dan buat cluster

  1. Pastikan file konfigurasi cluster pengguna Anda valid dan dapat digunakan untuk pembuatan cluster:

    gkectl check-config --kubeconfig kubeconfig --config user-cluster.yaml
  2. Buat cluster pengguna:

    gkectl create cluster --kubeconfig kubeconfig --config user-cluster.yaml

    Pembuatan cluster memerlukan waktu sekitar 30 menit.

Cari file kubeconfig cluster pengguna

Perintah gkectl create cluster akan membuat file kubeconfig bernama USER_CLUSTER_NAME-kubeconfig di direktori saat ini. Anda akan memerlukan file kubeconfig ini nanti untuk berinteraksi dengan cluster pengguna.

Pastikan cluster pengguna Anda berjalan

Pastikan cluster pengguna Anda berjalan:

kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG

Ganti USER_CLUSTER_KUBECONFIG dengan jalur file kubeconfig cluster pengguna Anda.

Output menampilkan node cluster pengguna. Contoh:

cp-vm-1     Ready    control-plane,master
user-vm-1   Ready
user-vm-2   Ready
user-vm-3   Ready

Mengaktifkan otorisasi RBAC

Untuk memberikan peran clusterrole/cluster-admin Kubernetes ke akun pengguna Anda di cluster, jalankan perintah berikut:

gcloud container fleet memberships generate-gateway-rbac \
  --membership=minimal-installation-user-cluster \
  --role=clusterrole/cluster-admin \
  --users=GOOGLE_ACCOUNT_EMAIL \
  --project=PROJECT_ID \
  --kubeconfig=USER_CLUSTER_KUBECONFIG \
  --context=minimal-installation-user-cluster \
  --apply

Output perintah ini akan mirip dengan berikut ini, yang dipangkas agar mudah dibaca:

Validating input arguments.
Specified Cluster Role is: clusterrole/cluster-admin
Generated RBAC policy is:
--------------------------------------------
...
Applying the generate RBAC policy to cluster with kubeconfig: kubeconfig, context: minimal-installation-admin-cluster
Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster.
Successfully applied the RBAC policy to cluster.

Selain hal lainnya, kebijakan RBAC memungkinkan Anda login ke cluster di konsol Google Cloud menggunakan Identitas Google Anda untuk melihat detail cluster lainnya.

Pendaftaran otomatis di GKE On-Prem API

Karena GKE On-Prem API diaktifkan di project Anda, cluster akan otomatis didaftarkan ke GKE On-Prem API. Dengan begitu, Anda dapat menggunakan konsol atau gcloud CLI untuk melihat detail cluster dan mengelola siklus proses cluster. Misalnya, Anda dapat menjalankan perintah gcloud untuk mendapatkan informasi tentang cluster pengguna Anda.

Konsol

  1. Di konsol Google Cloud , buka halaman Create a Google Distributed Cloud cluster.

    Buka Membuat cluster Google Distributed Cloud

  2. Pilih Google Cloud project tempat Anda ingin membuat cluster. Project yang dipilih juga digunakan sebagai project host fleet. Project ini harus sama dengan project tempat cluster admin terdaftar. Setelah cluster pengguna dibuat, cluster tersebut akan otomatis didaftarkan ke fleet project yang dipilih.

Bagian berikut akan memandu Anda mengonfigurasi cluster pengguna.

Prasyarat

  1. Pahami informasi di halaman Prasyarat.

  2. Di bagian bawah halaman, klik Berikutnya.

Dasar-dasar cluster

  1. Untuk Name, masukkan nama untuk cluster pengguna: misalnya, minimal-installation-user-cluster.

  2. Untuk Admin cluster, pilih minimal-installation-admin-cluster.

  3. Untuk kolom GCP API Location, pilih us-central1.

  4. Untuk Version, pilih 1.32.100-gke.106.

  5. Anda tidak perlu membuka bagian Authorization atau bagian vCenter configuration.

  6. Klik Berikutnya.

Bidang Kontrol

  1. Di bagian Control plane node IPs, untuk Gateway, masukkan DEFAULT_GATEWAY_IP.

  2. Untuk Subnet mask, masukkan NETMASK.

  3. Di bagian IP addresses, untuk IP address 1, masukkan USER_CONTROL_PLANE_NODE_IP. Biarkan Hostname 1 kosong.

  4. Klik Berikutnya.

Jaringan

Di bagian ini, Anda menentukan alamat IP untuk node, Pod, dan Layanan cluster Anda. Cluster pengguna harus memiliki satu alamat IP untuk setiap node dan alamat IP tambahan untuk node sementara yang diperlukan selama upgrade, update, dan perbaikan otomatis cluster. Untuk mengetahui informasi selengkapnya, lihat Berapa banyak alamat IP yang dibutuhkan cluster pengguna?.

  1. Di bagian Worker node IPs, untuk IP mode, pastikan Static dipilih.

  2. Untuk Gateway, masukkan DEFAULT_GATEWAY_IP.

  3. Untuk Subnet mask, masukkan NETMASK.

  4. Di bagian Alamat IP, masukkan alamat berikut:

  • USER_NODE_IP_1
  • USER_NODE_IP_2
  • USER_NODE_IP_3
  • USER_NODE_IP_4

Biarkan kolom Hostname kosong.

  1. Untuk Service CIDR, masukkan 10.96.0.0/20. Untuk Pod CIDR, masukkan 192.168.0.0/16.

  2. Untuk DNS Server 1, masukkan DNS_SERVER_IP.

  3. Untuk NTP Server 1, masukkan NTP_SERVER_IP.

  4. Biarkan DNS search domain kosong.

  5. Klik Berikutnya.

Load balancer

  1. Untuk Load balancer type, pilih Bundled with MetalLB.

  2. Di bagian Address pools, gunakan nama default.

  3. Di bagian Alamat IP, untuk Rentang alamat IP 1, masukkan USER_INGRESS_VIP/32.

    Klik Tambahkan rentang alamat IP. Untuk Rentang alamat IP 1, masukkan SERVICE_VIP_1/32

    Klik Tambahkan rentang alamat IP. Untuk IP address range 2, masukkan SERVICE_VIP_2/32

  4. Untuk Penetapan alamat IP, pilih Otomatis.

  5. Biarkan Hindari alamat IP yang bermasalah tidak dicentang.

  6. Di bagian Virtual IPs, untuk Control plane VIP, masukkan USER_CONTROL_PLANE_VIP. Ingress VIP sudah diisi.

  7. Klik Lanjutkan.

Fitur

  1. Biarkan semua nilai default.

  2. Klik Berikutnya.

Kumpulan node

  1. Biarkan semua nilai default.

  2. Klik Verifikasi dan Selesaikan untuk membuat cluster pengguna. Diperlukan waktu 15 menit atau lebih untuk membuat cluster pengguna. Konsol menampilkan pesan status saat memverifikasi setelan dan membuat cluster di pusat data Anda.

    Jika terjadi error saat memverifikasi setelan, konsol akan menampilkan pesan error yang cukup jelas bagi Anda untuk memperbaiki masalah konfigurasi dan mencoba lagi membuat cluster.

    Untuk mengetahui informasi selengkapnya tentang kemungkinan error dan cara memperbaikinya, lihat Memecahkan masalah cluster yang terdaftar di GKE On-Prem API.

Terraform

Bagian ini menunjukkan cara membuat cluster pengguna dan node pool menggunakan Terraform. Untuk informasi selengkapnya dan contoh lainnya, lihat referensi berikut:

  1. Buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki ekstensi .tf. Dalam panduan ini, file tersebut disebut main.tf.

    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
    
  2. Verifikasi resource Terraform cluster pengguna:

    Contoh resource Terraform berikut diisi dengan nilai yang Anda masukkan dalam tabel perencanaan di bagian sebelumnya.

    resource "google_gkeonprem_vmware_cluster" "cluster-basic" {
      name = "minimal-installation-user-cluster"
      project = "PROJECT_ID"
      location = "us-central1"
      admin_cluster_membership = "projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster"
      description = "User cluster config with MetalLB, static IPs, and Controlplane V2"
      enable_control_plane_v2 = "true"
      on_prem_version = "1.32.100-gke.106"
      control_plane_node {
        cpus = 4
        memory = 8192
        replicas = 1
      }
      network_config {
        service_address_cidr_blocks = ["10.96.0.0/20"]
        pod_address_cidr_blocks = ["192.168.0.0/16"]
        host_config {
          dns_servers = ["DNS_SERVER_IP"]
          ntp_servers = ["NTP_SERVER_IP"]
        }
        static_ip_config {
          ip_blocks {
            netmask = "NETMASK"
            gateway = "DEFAULT_GATEWAY_IP"
            ips {
              ip = "USER_NODE_IP_1"
              hostname = "user-vm-1"
            }
            ips {
              ip = "USER_NODE_IP_2"
              hostname = "user-vm-2"
            }
            ips {
              ip = "USER_NODE_IP_3"
              hostname = "user-vm-3"
            }
            ips {
              ip = "USER_NODE_IP_4"
              hostname = "user-vm-4"
            }
          }
        }
        control_plane_v2_config {
          control_plane_ip_block {
            netmask = "NETMASK"
            gateway = "DEFAULT_GATEWAY_IP"
            ips {
              ip = "USER_CONTROL_PLANE_NODE_IP"
              hostname = "cp-vm-1"
            }
          }
        }
      }
      load_balancer {
        vip_config {
          control_plane_vip = "USER_CONTROL_PLANE_VIP"
          ingress_vip = "USER_INGRESS_VIP"
        }
        metal_lb_config {
          address_pools {
            pool = "uc-address-pool"
            manual_assign = "true"
            addresses = ["USER_INGRESS_VIP/32", "SERVICE_VIP_1/32", "SERVICE_VIP_2/32"]
          }
        }
      }
      authorization {
        admin_users {
        username = "GOOGLE_ACCOUNT_EMAIL"
      }
    }
      provider = google-beta
    }
    
    resource "google_gkeonprem_vmware_node_pool" "my-node-pool-1" {
      name = "uc-node-pool"
      project = "PROJECT_ID"
      vmware_cluster = "minimal-installation-user-cluster"
      location = "us-central1"
      config {
        replicas = 3
        image_type = "ubuntu_containerd"
        enable_load_balancer = "true"
      }
      depends_on = [
        google_gkeonprem_vmware_cluster.cluster-basic
      ]
      provider = google-beta
    }
    
  3. Salin resource Terraform ke main.tf dan simpan file.

  4. Lakukan inisialisasi dan buat rencana Terraform:

    terraform init
    

    Terraform menginstal library yang diperlukan, seperti Google Cloud provider.

  5. Tinjau konfigurasi dan lakukan perubahan jika diperlukan:

    terraform plan
    
  6. Terapkan rencana Terraform untuk membuat cluster pengguna:

    terraform apply
    

    Saat diminta, masukkan yes.

    Diperlukan waktu sekitar 15 menit (atau lebih, bergantung pada jaringan Anda) untuk membuat cluster pengguna dan node pool dasar.

gcloud

Membuat cluster:

gcloud container vmware clusters create minimal-installation-user-cluster \
  --project=PROJECT_ID \
  --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster \
  --location=us-central1 \
  --version=1.32.100-gke.106 \
  --admin-users=GOOGLE_ACCOUNT_EMAIL \
  --service-address-cidr-blocks=10.96.0.0/20 \
  --pod-address-cidr-blocks=192.168.0.0/16 \
  --metal-lb-config-address-pools='pool=uc-address-pool,avoid-buggy-ips=False,manual-assign=False,addresses=USER_INGRESS_VIP/32;SERVICE_VIP_1/32;SERVICE_VIP_2/32' \
  --control-plane-vip=USER_CONTROL_PLANE_VIP \
  --ingress-vip=USER_INGRESS_VIP \
  --static-ip-config-ip-blocks='gateway=DEFAULT_GATEWAY_IP,netmask=NETMASK,ips=USER_NODE_IP_1;USER_NODE_IP_2;USER_NODE_IP_3;USER_NODE_IP_4' \
  --dns-servers=DNS_SERVER_IP \
  --ntp-servers=NTP_SERVER_IP \
  --enable-control-plane-v2 \
  --enable-dataplane-v2 \
  --control-plane-ip-block='gateway=DEFAULT_GATEWAY_IP,netmask=NETMASK,ips=USER_CONTROL_PLANE_NODE_IP'

Output dari perintah ini akan mirip dengan berikut ini:

Waiting for operation [projects/example-project-12345/locations/us-central1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.

Dalam contoh output, string operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179 adalah OPERATION_ID dari operasi yang berjalan lama. Anda dapat mengetahui status operasi dengan perintah berikut:

gcloud container vmware operations describe OPERATION_ID \
  --project=PROJECT_ID \
  --location=us-central1

Untuk mengetahui informasi selengkapnya, lihat gcloud container vmware operations.

Pembuatan cluster pengguna memerlukan waktu 15 menit atau lebih. Anda dapat melihat cluster di konsol pada halaman ringkasan Cluster Google Kubernetes Engine.

Buat node pool:

gcloud container vmware node-pools create  uc-node-pool \
  --cluster=minimal-installation-user-cluster \
  --project=PROJECT_ID \
  --location=us-central1 \
  --image-type=ubuntu_containerd  \
  --boot-disk-size=40 \
  --cpus=4 \
  --memory=8192 \
  --replicas=3 \
  --enable-load-balancer

Langkah berikutnya

Anda telah menyelesaikan penginstalan minimal Google Distributed Cloud ini. Sebagai tindak lanjut opsional, Anda dapat melihat penginstalan yang sedang berlangsung dengan men-deploy aplikasi.