Membuat GKE pada admin Bare Metal dan cluster pengguna di VM Compute Engine

Halaman ini menunjukkan cara membuat GKE pada cluster pengguna Bare Metal dan cluster admin pada Virtual Machine (VM) Compute Engine. Skrip yang disediakan akan membuat VM Compute Engine untuk admin dan node cluster pengguna, serta workstation admin.

Workstation admin menghosting alat antarmuka command line (CLI) dan file konfigurasi untuk menyediakan cluster selama penginstalan, dan alat CLI untuk berinteraksi dengan cluster yang disediakan pasca-penginstalan. Skrip ini menginstal alat CLI di VM workstation admin.

Cluster pengguna adalah cluster Kubernetes yang menjalankan beban kerja dalam container. Node ini terdiri dari node bidang kontrol dan node pekerja. Cluster pengguna harus berisi satu atau beberapa worker node yang menjalankan beban kerja pengguna. Cluster admin adalah cluster Kubernetes yang mengelola satu atau beberapa cluster pengguna, serta membantu pembuatan, update, dan penghapusan cluster pengguna. Cluster admin hanya terdiri dari node bidang kontrol. Untuk mempelajari lebih lanjut, lihat Deployment cluster admin dan pengguna.

Skrip ini mengonfigurasi jaringan overlay Virtual Extensible LAN (VXLAN) di antara VM dan menyiapkan VM untuk pembuatan cluster. Secara opsional, skrip akan membuat cluster admin, atau Anda dapat memilih untuk membuat cluster admin sendiri guna mempelajari alat yang disediakan GKE di Bare Metal untuk membuat cluster admin.

Dengan skrip yang disediakan, Anda dapat mencoba GKE di Bare Metal dengan cepat dan tanpa harus menyiapkan hardware apa pun. Dengan menyelesaikan langkah-langkah di halaman ini, Anda akan mendapatkan GKE yang berfungsi di lingkungan pengujian Bare Metal yang berjalan di Compute Engine.

Apa itu GKE On-Prem API?

GKE On-Prem API adalah API yang dihosting Google Cloud dan dapat Anda gunakan untuk mengelola siklus proses cluster lokal menggunakan Terraform dan aplikasi Google Cloud standar. GKE On-Prem API berjalan di infrastruktur Google Cloud. Terraform, konsol, dan gcloud CLI adalah klien API, dan menggunakan API untuk membuat cluster di pusat data Anda.

Untuk mengelola siklus proses cluster Anda, GKE On-Prem API harus menyimpan metadata tentang status cluster Anda di Google Cloud, menggunakan region Google Cloud yang Anda tentukan saat membuat cluster. Metadata ini memungkinkan API mengelola siklus proses cluster dan tidak menyertakan data khusus workload.

Saat membuat cluster menggunakan klien GKE On-Prem API, Anda harus menentukan project Google Cloud. Setelah dibuat, cluster akan otomatis terdaftar ke fleet project yang ditentukan. Project ini disebut sebagai project host armada. Project host fleet tidak dapat diubah setelah cluster dibuat.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Catat project ID karena Anda memerlukannya untuk menetapkan variabel lingkungan yang digunakan dalam skrip dan perintah di halaman ini. Jika memilih project yang sudah ada, pastikan Anda merupakan pemilik atau editor project.
  7. Anda dapat menjalankan skrip ini di Cloud Shell atau mesin lokal yang menjalankan Linux atau macOS. Jika Anda tidak menggunakan Cloud Shell:
    1. Pastikan Anda telah menginstal Google Cloud CLI terbaru, yaitu alat command line untuk berinteraksi dengan Google Cloud. Update komponen CLI gcloud, jika diperlukan:
      gcloud components update

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

    2. Pastikan Anda telah menginstal kubectl. Jika Anda perlu menginstal kubectl, jalankan perintah berikut:
      gcloud components install kubectl

Membuat infrastruktur VM dan, jika perlu, cluster admin

Lakukan langkah-langkah berikut untuk menyiapkan dan menjalankan skrip. Skrip yang Anda download dan jalankan berasal dari repositori anthos-samples. Jika ingin mempelajari skrip lebih lanjut sebelum menjalankannya, lihat bagian berikutnya, Tentang skrip.

  1. Siapkan variabel lingkungan:

    export PROJECT_ID=PROJECT_ID
    export ADMIN_CLUSTER_NAME=ADMIN_CLUSTER_NAME
    export ON_PREM_API_REGION=ON_PREM_API_REGION
    export ZONE=ZONE
    
    • ON_PREM_API_REGION: Region Google Cloud tempat GKE On-Prem API menjalankan dan menyimpan metadatanya. Tentukan us-central1 atau wilayah lain yang didukung.

    • ZONE: Zona Google Cloud tempat VM Compute Engine akan dibuat. Anda dapat menggunakan us-central1-a atau zona Compute Engine lainnya.

  2. Tetapkan project dan zona default:

    gcloud config set project $PROJECT_ID
    gcloud config set compute/zone $ZONE
    

    Jika Anda mendapatkan error PERMISSION_DENIED, periksa kembali project ID yang Anda masukkan. Jika project ID sudah benar, jalankan gcloud auth login untuk login ke gcloud CLI dengan akun yang memiliki akses ke project tersebut.

  3. Dapatkan daftar GKE pada versi Bare Metal yang dapat Anda instal:

    gcloud container bare-metal admin-clusters query-version-config \
        --location=ON_PREM_API_REGION | grep 1.16
    

    Beberapa petunjuk dalam dokumen ini bergantung pada GKE On-Prem API, yang mendukung subset GKE yang tersedia pada versi Bare Metal.

  4. Pilih versi dari output perintah sebelumnya dan tetapkan dalam variabel lingkungan:

    export BMCTL_VERSION=BMCTL_VERSION
    

    Sebaiknya pilih versi kompatibel tertinggi untuk mendapatkan fitur dan perbaikan GKE terbaru pada Bare Metal.

  5. Clone repositori anthos-samples dan ubah ke direktori tempat skrip berada:

    git clone https://github.com/GoogleCloudPlatform/anthos-samples
    cd anthos-samples/anthos-bm-gcp-bash
    
  6. Jalankan skrip:

    bash install_admin_cluster.sh
    
  7. Jika diminta, masukkan nomor untuk memilih mode penginstalan:

    • Masukkan 1 untuk meminta skrip menyiapkan infrastruktur VM dan menginstal cluster admin.
    • Masukkan 2 agar skrip hanya menyiapkan infrastruktur VM.
  8. Jika diminta, konfirmasi pilihan Anda.

Skrip ini menghasilkan setiap perintah yang dijalankan beserta statusnya. Setelah selesai, skrip akan menghasilkan output berikut bergantung pada apakah Anda memilih untuk menginstal cluster admin atau tidak:

Cluster admin dibuat

✅ Installation complete. Please check the logs for any errors!!!
✅ If you do not see any errors in the output log, then you now have the following setup:

|---------------------------------------------------------------------------------------------------------|
| VM Name               | L2 Network IP (VxLAN) | INFO                                                    |
|---------------------------------------------------------------------------------------------------------|
| abm-admin-cluster-cp1 | 10.200.0.3            | Has control plane of admin cluster running inside       |
| abm-user-cluster-cp1  | 10.200.0.4            | 🌟 Ready for use as control plane for the user cluster  |
| abm-user-cluster-w1   | 10.200.0.5            | 🌟 Ready for use as worker for the user cluster         |
| abm-user-cluster-w2   | 10.200.0.6            | 🌟 Ready for use as worker for the user cluster         |
|---------------------------------------------------------------------------------------------------------|

Siapkan VM saja

|---------------------------------------------------------------------------------------------------------|
| VM Name               | L2 Network IP (VxLAN) | INFO                                                    |
|---------------------------------------------------------------------------------------------------------|
| abm-admin-cluster-cp1 | 10.200.0.3            | 🌟 Ready for use as control plane for the admin cluster |
| abm-user-cluster-cp1  | 10.200.0.4            | 🌟 Ready for use as control plane for the user cluster  |
| abm-user-cluster-w1   | 10.200.0.5            | 🌟 Ready for use as worker for the user cluster         |
| abm-user-cluster-w2   | 10.200.0.6            | 🌟 Ready for use as worker for the user cluster         |
|---------------------------------------------------------------------------------------------------------|

Tentang skrip

Untuk mempelajari install_admin_cluster.sh lebih lanjut, klik Tentang skrip di baris berikutnya.

Tentang skrip

Skrip ini mengotomatiskan langkah-langkah manual berikut:

  1. Membuat akun layanan yang disebut baremetal-gcr, dan memberikan izin tambahan ke akun layanan agar tidak memerlukan beberapa akun layanan untuk API dan layanan yang berbeda.
  2. Mengaktifkan Google Cloud API berikut:
      anthos.googleapis.com
      anthosaudit.googleapis.com
      anthosgke.googleapis.com
      cloudresourcemanager.googleapis.com
      connectgateway.googleapis.com
      container.googleapis.com
      gkeconnect.googleapis.com
      gkehub.googleapis.com
      gkeonprem.googleapis.com
      iam.googleapis.com
      logging.googleapis.com
      monitoring.googleapis.com
      opsconfigmonitoring.googleapis.com
      serviceusage.googleapis.com
      stackdriver.googleapis.com
      storage.googleapis.com
  3. Membuat VM berikut:
    • Satu VM untuk workstation admin. Workstation admin akan memiliki akses ke semua node cluster lainnya menggunakan SSH.
    • Satu VM untuk node bidang kontrol cluster admin.
    • Dua VM untuk node pekerja cluster pengguna.
    • Satu VM untuk node bidang kontrol cluster pengguna.
    Skrip ini juga memverifikasi bahwa SSH diaktifkan di semua VM.
  4. Membuat jaringan overlay Virtual Extensible LAN (VXLAN) untuk konektivitas lapisan 2 antara VM. VXLAN tidak persisten, jadi jika Anda memulai ulang instance VM, jaringan akan dihancurkan. Jaringan diatur agar berada di subnet 10.200.0.0/24. Konektivitas lapisan 2 adalah persyaratan untuk load balancer paket.
  5. Menginstal alat berikut di workstation admin:
    • bmctl
    • kubectl
    • Docker

    Skrip ini juga mendownload kunci akun layanan untuk akun layanan baremetal-gcr ke workstation admin.

  6. Memastikan bahwa root@10.200.0.x dari workstation admin berfungsi dengan melakukan tugas-tugas berikut:
    1. Membuat kunci SSH baru di workstation admin.
    2. Menambahkan kunci publik ke semua VM lain dalam deployment.
  7. Secara opsional, skrip akan membuat cluster admin dengan file konfigurasi berikut:
      gcloud compute ssh root@"$VM_WS" --zone "${ZONE}" <<EOF
    set -x
    export PROJECT_ID=\$(gcloud config get-value project)
    ADMIN_CLUSTER_NAME=\$(curl http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster_id -H "Metadata-Flavor: Google")
    BMCTL_VERSION=\$(curl http://metadata.google.internal/computeMetadata/v1/instance/attributes/bmctl_version -H "Metadata-Flavor: Google")
    export ADMIN_CLUSTER_NAME
    export BMCTL_VERSION
    bmctl create config -c \$ADMIN_CLUSTER_NAME
    cat > bmctl-workspace/\$ADMIN_CLUSTER_NAME/\$ADMIN_CLUSTER_NAME.yaml << EOB
    ---
    gcrKeyPath: /root/bm-gcr.json
    sshPrivateKeyPath: /root/.ssh/id_rsa
    gkeConnectAgentServiceAccountKeyPath: /root/bm-gcr.json
    gkeConnectRegisterServiceAccountKeyPath: /root/bm-gcr.json
    cloudOperationsServiceAccountKeyPath: /root/bm-gcr.json
    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: cluster-\$ADMIN_CLUSTER_NAME
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: \$ADMIN_CLUSTER_NAME
      namespace: cluster-\$ADMIN_CLUSTER_NAME
    spec:
      type: admin
      anthosBareMetalVersion: \$BMCTL_VERSION
      gkeConnect:
        projectID: \$PROJECT_ID
      controlPlane:
        nodePoolSpec:
          clusterName: \$ADMIN_CLUSTER_NAME
          nodes:
          - address: 10.200.0.3
      clusterNetwork:
        pods:
          cidrBlocks:
          - 192.168.0.0/16
        services:
          cidrBlocks:
          - 10.96.0.0/20
      loadBalancer:
        mode: bundled
        ports:
          controlPlaneLBPort: 443
        vips:
          controlPlaneVIP: 10.200.0.48
      clusterOperations:
        # might need to be this location
        location: us-central1
        projectID: \$PROJECT_ID
      storage:
        lvpNodeMounts:
          path: /mnt/localpv-disk
          storageClassName: node-disk
        lvpShare:
          numPVUnderSharedPath: 5
          path: /mnt/localpv-share
          storageClassName: local-shared
      nodeConfig:
        podDensity:
          maxPodsPerNode: 250
    EOB
    
    bmctl create cluster -c \$ADMIN_CLUSTER_NAME
    EOF

    Jika Anda memilih agar skrip membuat cluster admin, skrip tersebut akan menggunakan SSH untuk login ke workstation admin sebagai pengguna root. Selanjutnya, skrip akan menjalankan alat command line bmctl untuk membuat cluster admin. Ini adalah salah satu alat yang dapat Anda gunakan untuk membuat cluster admin.

    Saat membuat cluster, GKE di Bare Metal akan men-deploy Kubernetes di cluster (jenis) Docker di workstation admin. Cluster bootstrap ini menghosting pengontrol Kubernetes yang diperlukan untuk membuat cluster dan digunakan untuk membuat cluster admin. Setelah dibuat, pengontrol yang relevan akan dipindahkan dari cluster bootstrap ke cluster admin. Terakhir, kecuali jika Anda menentukan sebaliknya, cluster bootstrap akan dihapus saat pembuatan cluster berhasil diselesaikan. Cluster bootstrap memerlukan Docker untuk menarik image container.

Jika ingin, Anda dapat membuat cluster admin

Jika skrip membuat cluster admin, lanjutkan ke bagian berikutnya Memverifikasi cluster admin. Jika tidak, ikuti langkah-langkah di bagian ini untuk membuat cluster bootstrap dan cluster admin.

Sebelum membuat cluster admin, Anda harus menjalankan perintah bmctl register bootstrap di workstation admin. Perintah ini men-deploy Kubernetes sementara di cluster Docker (jenis) pada workstation admin. Cluster bootstrap ini menghosting pengontrol Kubernetes yang diperlukan untuk membuat cluster admin. Saat Anda membuat cluster admin, pengontrol di cluster bootstrap akan menyediakan node, menjalankan pemeriksaan preflight, dan mendaftarkan cluster admin ke fleet. Cluster bootstrap otomatis dihapus setelah cluster berhasil dibuat.

Konsol

  1. Di konsol, buka halaman Create a GKE on Bare Metal cluster.

    Buka Create a GKE pada cluster Bare Metal

  2. Pastikan untuk memilih PROJECT_ID dari daftar project.

  3. Di menu navigasi sebelah kiri, klik Install bootstrap environment.

  4. Masukkan ADMIN_CLUSTER_NAME sebagai nama cluster admin. Perhatikan bahwa nama cluster bootstrap diperoleh dengan menambahkan bootstrap- terlebih dahulu ke nama cluster admin.

  5. Pilih VERSION sebagai versi untuk cluster admin Anda. Skrip mendownload versi alat command line bmctl ini ke workstation admin. GKE pada versi Bare Metal yang Anda instal harus cocok dengan versi bmctl.

  6. Di kolom Google Cloud API Location, pilih ON_PREM_API_REGION dari daftar. Setelan ini menentukan region tempat GKE On-Prem API dijalankan, dan region tempat menyimpan hal-hal berikut:

    • Metadata cluster yang diperlukan GKE On-Prem API untuk mengelola siklus proses cluster
    • Data Cloud Logging dan Cloud Monitoring dari komponen sistem
    • Log Audit Admin yang dibuat oleh Cloud Audit Logs

    Nama cluster, project, dan lokasi bersama-sama mengidentifikasi cluster secara unik di Google Cloud.

Gunakan langkah-langkah di bagian berikutnya, bukan langkah-langkah yang ditampilkan di konsol, untuk membuat cluster bootstrap. Biarkan halaman konsol ditampilkan karena Anda akan kembali ke sana untuk membuat cluster admin.

gcloud CLI

Buka jendela terminal baru. Anda akan menggunakan jendela terminal kedua untuk terhubung ke workstation admin untuk membuat cluster bootstrap. Anda akan menggunakan jendela terminal pertama untuk menjalankan perintah gcloud CLI untuk membuat cluster admin.

Membuat cluster bootstrap

Lakukan langkah-langkah berikut di workstation admin Anda.

  1. Gunakan SSH untuk mengakses workstation admin sebagai root:

    gcloud compute ssh root@abm-ws --zone ZONE
    

    Anda dapat mengabaikan pesan apa pun tentang mengupdate VM dan menyelesaikan tutorial ini. Jika berencana mempertahankan VM sebagai lingkungan pengujian, Anda mungkin ingin mengupdate OS atau mengupgrade ke rilis berikutnya seperti yang dijelaskan dalam dokumentasi Ubuntu.

  2. Tetapkan kredensial pengguna Anda sebagai Kredensial Default Aplikasi (ADC):

    gcloud auth application-default login
    

    Ikuti petunjuk untuk memilih Akun Google Anda untuk ADC.

  3. Membuat cluster bootstrap.

    bmctl register bootstrap \
      --ssh-key=/root/.ssh/id_rsa \
      --name=bootstrap-ADMIN_CLUSTER_NAME \
      --project-id=PROJECT_ID
    

Setelah bmctl berhasil membuat cluster bootstrap, Anda akan melihat output yang mirip dengan berikut ini:

[2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK
[2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster
[2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..

Membuat cluster admin

Konsol

  1. Di halaman Install bootstrap environment di bagian Bootstrap environment from admin workstation, klik Check Connection.

    Jika berhasil, konsol akan menampilkan Connection created.

    Koneksi ke cluster bootstrap harus dibuat sebelum Anda melanjutkan. Jika koneksi tidak terhubung, periksa argumen yang Anda tentukan ke perintah bmctl register bootstrap:

    • Pastikan nilai untuk --name cocok dengan Nama bootstrap turunan yang ditampilkan di bagian Dasar-dasar lingkungan bootstrap.

    • Pastikan nilai untuk --project-id cocok dengan ID project yang Anda pilih di konsol.

    Jika Anda perlu mengubah nama cluster bootstrap atau project ID, masukkan Ctrl-C untuk keluar dari bmctl register bootstrap dan jalankan kembali perintahnya.

  2. Klik Networking di menu navigasi sebelah kiri.

  3. Di bagian Control bidang, masukkan perintah berikut di kolom Control plane node IP 1:

    10.200.0.3
    

    Ini adalah alamat IP VM abm-admin-cluster-cp di VXLAN yang dibuat oleh skrip.

  4. Di bagian Load balancer, pastikan Bundled dipilih.

  5. Di bagian Virtual IP (VIP), masukkan kode berikut di kolom Control pesawat VIP:

    10.200.0.48
    
  6. Klik Verifikasi dan Buat.

    Konsol akan menampilkan pesan status saat memverifikasi setelan dan membuat cluster.

gcloud CLI

  1. Pastikan variabel lingkungan yang Anda tetapkan sebelumnya memiliki nilai yang benar. Meskipun menggunakan placeholder, contoh perintah ini harus cocok dengan variabel lingkungan yang digunakan skrip.

    echo $PROJECT_ID
    echo $ADMIN_CLUSTER_NAME
    echo $ON_PREM_API_REGION
    echo $BMCTL_VERSION
    
  2. Pastikan cluster bootstrap telah terdaftar sebagai anggota fleet:

    gcloud container fleet memberships list \
      --project=PROJECT_ID
    

    Jika cluster bootstrap tidak tercantum, periksa nama cluster bootstrap dan ID project yang Anda tentukan untuk bmctl register bootstrap. Jika Anda perlu mengubah nama cluster bootstrap atau project ID, masukkan Ctrl-C untuk keluar dari bmctl register bootstrap dan jalankan kembali perintah tersebut.

  3. Buat cluster admin dengan load balancer yang dipaketkan:

    gcloud container bare-metal admin-clusters create ADMIN_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=ON_PREM_API_REGION \
      --version=BMCTL_VERSION \
      --max-pods-per-node=110 \
      --control-plane-vip=10.200.0.48 \
      --control-plane-load-balancer-port=443 \
      --control-plane-node-configs node-ip=10.200.0.3 \
      --island-mode-service-address-cidr-blocks=10.96.0.0/20 \
      --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \
      --lvp-share-path=/mnt/localpv-share \
      --lvp-share-storage-class=local-shared \
      --lvp-node-mounts-config-path=/mnt/localpv-disk \
      --lvp-node-mounts-config-storage-class=local-disks
    

    Pada perintah sebelumnya:

    • --control-plane-vip: Disetel ke 10.200.0.48. Ini adalah IP virtual (VIP) di load balancer untuk server Kubernetes API cluster.

    • --control-plane-node-configs: node-ip disetel ke 10.200.0.3. Ini adalah alamat IP VM abm-admin-cluster-cp di VXLAN yang dibuat oleh skrip.

    Untuk mengetahui daftar lengkap flag dan deskripsinya, baca referensi gcloud CLI.

    Output dari perintah ini mirip dengan berikut ini:

    Waiting for operation [projects/example-project-12345/locations/us-west1/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 menjalankan perintah berikut di jendela terminal lain:

    gcloud container bare-metal operations describe OPERATION_ID \
      --project=PROJECT_ID \
      --location=ON_PREM_API_REGION
    

Detail tentang proses pembuatan cluster adalah output di workstation admin Anda. Sebelum membuat cluster, bmctl menjalankan serangkaian pemeriksaan preflight untuk memverifikasi konfigurasi. Jika pemeriksaan preflight lulus, Anda akan melihat sesuatu seperti berikut:

[2023-03-22 23:12:47+0000] Waiting for cluster kubeconfig to become ready OK
[2023-03-22 23:15:47+0000] Writing kubeconfig file
[2023-03-22 23:15:47+0000] kubeconfig of cluster being created is present at bmctl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig
[2023-03-22 23:15:47+0000] Please restrict access to this file as it contains authentication credentials of your cluster.
[2023-03-22 23:15:47+0000] Waiting for cluster to become ready OK
[2023-03-22 23:20:17+0000] Please run
[2023-03-22 23:20:17+0000] kubectl --kubeconfig bmctl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig get nodes
[2023-03-22 23:20:17+0000] to get cluster nodes status.
[2023-03-22 23:20:17+0000] Waiting for node pools to become ready OK
[2023-03-22 23:20:37+0000] Waiting for metrics to become ready in GCP OK
[2023-03-22 23:25:38+0000] Waiting for cluster API provider to install in the created admin cluster OK
[2023-03-22 23:25:48+0000] Moving admin cluster resources to the created admin cluster
[2023-03-22 23:25:51+0000] Waiting for node update jobs to finish OK
[2023-03-22 23:27:41+0000] Flushing logs... OK
[2023-03-22 23:27:41+0000] Deleting membership... OK
[2023-03-22 23:27:42+0000] Deleting bootstrap cluster.

Memverifikasi cluster admin

Anda dapat menemukan file kubeconfig cluster admin di workstation admin di direktori bmctl-workspace akun root. Untuk memverifikasi deployment, selesaikan langkah-langkah berikut.

  1. Jika skrip membuat cluster admin, gunakan SSH untuk mengakses workstation admin sebagai root:

    gcloud compute ssh root@abm-ws --zone ZONE
    

    Anda dapat mengabaikan pesan apa pun tentang mengupdate VM dan menyelesaikan tutorial ini. Jika berencana mempertahankan VM sebagai lingkungan pengujian, Anda mungkin ingin mengupdate OS atau mengupgrade ke rilis berikutnya seperti yang dijelaskan dalam dokumentasi Ubuntu.

  2. Tetapkan variabel lingkungan KUBECONFIG dengan jalur ke file konfigurasi cluster untuk menjalankan perintah kubectl di cluster.

    export clusterid=ADMIN_CLUSTER_NAME
    export KUBECONFIG=$HOME/bmctl-workspace/$clusterid/$clusterid-kubeconfig
    kubectl get nodes
    

    Outputnya mirip dengan hal berikut ini:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane,master   91m   v1.24.2-gke.1900
    
  3. Setel konteks saat ini dalam variabel lingkungan:

    export CONTEXT="$(kubectl config current-context)"
    
  4. Jalankan perintah gcloud berikut. Perintah ini akan melakukan hal berikut:

    • Memberikan peran clusterrole/cluster-admin Kubernetes kepada akun pengguna Anda di cluster.
    • Mengonfigurasi cluster sehingga Anda dapat menjalankan perintah kubectl di komputer lokal tanpa harus SSH ke workstation admin.
    • Memungkinkan Anda login ke cluster di konsol menggunakan identitas Google Anda.

    Ganti YOUR_EMAIL_ADDRESS dengan alamat email yang terkait dengan akun Google Cloud Anda. Contoh: --users=alex@example.com.

    gcloud container fleet memberships generate-gateway-rbac  \
        --membership=ADMIN_CLUSTER_NAME \
        --role=clusterrole/cluster-admin \
        --users=YOUR_EMAIL_ADDRESS \
        --project=PROJECT_ID \
        --kubeconfig=$KUBECONFIG \
        --context=$CONTEXT\
        --apply
    

    Output perintah ini mirip dengan berikut ini, yang dipotong 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: /root/bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig, context: ADMIN_CLUSTER_NAME-admin@ADMIN_CLUSTER_NAME
    Writing RBAC policy for user: YOUR_EMAIL_ADDRESS to cluster.
    Successfully applied the RBAC policy to cluster.
    
  5. Setelah selesai menjelajah, masukkan exit untuk logout dari workstation admin.

  6. Jalankan perintah berikut di komputer lokal Anda untuk mendapatkan entri kubeconfig yang dapat mengakses cluster melalui gateway koneksi:

    gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME
    

    Outputnya mirip dengan hal berikut ini:

    Starting to build Gateway kubeconfig...
    Current project_id: PROJECT_ID
    A new kubeconfig entry "connectgateway_PROJECT_ID_global_ADMIN_CLUSTER_NAME" has been generated and set as the current context.
    
  7. Anda kini dapat menjalankan perintah kubectl melalui gateway koneksi:

    kubectl get nodes
    

    Outputnya mirip dengan hal berikut ini:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane,master   94m   v1.24.2-gke.1900
    

Di GKE pada Bare Metal 1.16 dan yang lebih baru, cluster akan otomatis didaftarkan di GKE On-Prem API. Dengan begitu, Anda dapat menggunakan gcloud CLI dan console untuk mengupgrade dan mengupdate cluster admin.

Membuat cluster pengguna

Saat membuat VXLAN L2 untuk VM, skrip menetapkan alamat IP berikut di jaringan 10.200.0.0/24. Anda menggunakan alamat IP ini saat mengonfigurasi setelan jaringan dan kumpulan node untuk cluster pengguna.

Nama VM IP jaringan Deskripsi node
abm-admin-cluster-cp1 10.200.0.3 Node bidang kontrol untuk cluster admin
abm-user-cluster-cp1 10.200.0.4 Node bidang kontrol untuk cluster pengguna
abm-user-cluster-w1 10.200.0.5 Node pekerja untuk cluster pengguna
abm-user-cluster-w2 10.200.0.6 Node pekerja lain untuk cluster pengguna

Anda dapat menggunakan konsol Google Cloud, Google Cloud CLI, atau Terraform untuk membuat cluster pengguna.

Konsol

Lakukan langkah-langkah berikut untuk membuat cluster pengguna di konsol:

  1. Di konsol, buka halaman Create a GKE on Bare Metal cluster.

    Buka Create a GKE pada cluster Bare Metal

  2. Pastikan project Google Cloud tempat Anda membuat cluster admin telah dipilih.

  3. Di bagian Pilih jenis cluster Anda, pilih Buat cluster pengguna untuk cluster admin yang ada

  4. Klik Next.

Dasar-dasar cluster

  1. Masukkan nama untuk cluster pengguna atau gunakan default.

  2. Pastikan cluster admin yang baru dibuat dipilih. Anda dapat menggunakan default untuk setelan lainnya di halaman ini.

  3. Klik Networking di menu navigasi sebelah kiri.

Networking

  1. Di bagian Control bidang, masukkan nilai berikut di kolom Control bidang node IP 1:

    10.200.0.4
    

    Ini adalah alamat IP VM abm-user-cluster-cp1 di VXLAN yang dibuat oleh skrip.

  2. Di bagian Load balancer, gunakan load balancer default, Bundled with MetalLB.

  3. Di bagian New address pool, masukkan rentang alamat IP berikut di kolom IP address range 1:

    10.200.0.51-10.200.0.70
    
  4. Klik Done.

  5. Di bagian Virtual IPs, masukkan alamat IP berikut di kolom Control Plane VIP:

    10.200.0.50
    
  6. Masukkan alamat IP berikut untuk Ingress VIP:

    10.200.0.51
    
  7. Gunakan alamat IP default di bagian Service and Pod CIDRs.

  8. Klik kumpulan default di menu navigasi sebelah kiri.

Membuat node pool

Cluster Anda harus memiliki minimal satu kumpulan node untuk node pekerja. Kumpulan node adalah template untuk grup node pekerja yang dibuat di cluster ini.

Masukkan alamat IP berikut di kolom Nodes address 1:

10.200.0.5

Ini adalah alamat IP VM abm-user-cluster-w1 di VXLAN yang dibuat oleh skrip.

Membuat cluster

  1. Klik Verifikasi dan Buat untuk membuat cluster pengguna.

    Perlu waktu 15 menit atau lebih untuk membuat cluster pengguna. Console akan menampilkan pesan status saat memverifikasi setelan dan membuat cluster.

    Jika ada masalah dengan konfigurasi, konsol akan menampilkan pesan error yang seharusnya cukup jelas bagi Anda untuk memperbaiki masalah konfigurasi, lalu mencoba lagi untuk membuat cluster.

    Untuk melihat informasi tambahan tentang proses pembuatan, klik Show details untuk menampilkan panel samping. Klik untuk menutup panel detail.

    Saat cluster dibuat, Status cluster: berjalan akan ditampilkan.

    Cluster screenshot siap

  2. Setelah cluster dibuat, klik Cluster untuk kembali ke halaman Clusters.

gcloud CLI

Anda dapat menggunakan perintah berikut untuk membuat cluster pengguna:

gcloud container bare-metal clusters create

Setelah membuat cluster, Anda harus membuat setidaknya satu kumpulan node menggunakan perintah berikut:

gcloud container bare-metal node-pools create

Untuk membuat cluster pengguna:

  1. Pastikan variabel lingkungan yang Anda tetapkan sebelumnya memiliki nilai yang benar. Meskipun menggunakan placeholder, contoh perintah ini harus cocok dengan variabel lingkungan yang digunakan skrip.

    echo $PROJECT_ID
    echo $ADMIN_CLUSTER_NAME
    echo $ON_PREM_API_REGION
    echo $BMCTL_VERSION
    
  2. Jalankan perintah berikut untuk membuat cluster pengguna. Ganti kode berikut:

    • USER_CLUSTER_NAME: Nama cluster.

    • Pastikan --admin-users ditetapkan ke alamat email yang terkait dengan Akun Google Anda agar Anda dapat mengelola cluster.

    Nilai tanda lainnya telah diisi untuk Anda. Scroll ke atas jika perlu untuk memverifikasi bahwa flag --admin-cluster-membership memiliki nilai yang benar untuk nama cluster admin, yang merupakan segmen terakhir dalam nama keanggotaan yang ditentukan secara lengkap.

    gcloud container bare-metal clusters create USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
      --location=ON_PREM_API_REGION \
      --version=BMCTL_VERSION \
      --admin-users=YOUR_EMAIL_ADDRESS \
      --metal-lb-address-pools='pool=lb-pool-1,manual-assign=True,addresses=10.200.0.51-10.200.0.70' \
      --control-plane-node-configs='node-ip=10.200.0.4' \
      --control-plane-vip=10.200.0.50 \
      --control-plane-load-balancer-port=443 \
      --ingress-vip=10.200.0.51 \
      --island-mode-service-address-cidr-blocks=10.96.0.0/20 \
      --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \
      --lvp-share-path=/mnt/localpv-share \
      --lvp-share-storage-class=local-shared \
      --lvp-node-mounts-config-path=/mnt/localpv-disk \
      --lvp-node-mounts-config-storage-class=local-disks
    

Daftar berikut menjelaskan flag:

  • --project: ID project tempat cluster pengguna akan didaftarkan. Project ini disebut sebagai project host fleet.

  • --admin-cluster-membership: Nama cluster admin yang ditentukan secara lengkap yang mengidentifikasi cluster admin dalam fleet.

  • --location: Region Google Cloud tempat GKE On-Prem API menjalankan dan menyimpan metadatanya.

  • --version: GKE pada versi Bare Metal.

  • --admin-users: Sertakan alamat email Anda yang akan diberi kebijakan kontrol akses berbasis peran (RBAC) Kubernetes yang memberi Anda akses administratif penuh ke cluster.

  • --metal-lb-address-pools: Konfigurasi kumpulan alamat untuk load balancer MetalLB paket. Rentang alamat IP harus berada di jaringan 10.200.0.0/24 yang dibuat oleh skrip. Rentang alamat IP tidak boleh berisi alamat IP yang ditetapkan ke VM atau bidang kontrol VIP. Namun, perhatikan bahwa VIP masuk harus berada dalam rentang alamat ini.

  • --control-plane-node-configs: Konfigurasi node bidang kontrol untuk cluster pengguna. Nilai untuk node-ip adalah 10.200.0.4, yang merupakan alamat IP yang ditetapkan oleh skrip ke VM abm-user-cluster-cp1.

  • --control-plane-vip: IP virtual untuk bidang kontrol. Nilai 10.200.0.50 berada di jaringan 10.200.0.0/24 yang dibuat skrip, tetapi tidak tumpang tindih dengan rentang alamat IP yang digunakan untuk kumpulan alamat load balancer MetalLB.

  • --control-plane-load-balancer-port: Port tempat load balancer menayangkan bidang kontrol. Meskipun Anda dapat mengonfigurasi nilai lain, port 443 adalah port standar yang digunakan untuk koneksi HTTPS.

  • --ingress-vip: IP virtual untuk layanan ingress. Alamat IP ini harus berada dalam rentang alamat IP yang digunakan untuk kumpulan alamat load balancer MetalLB.

  • --island-mode-service-address-cidr-blocks: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Layanan di cluster pengguna. Contoh perintah tersebut menggunakan 10.96.0.0/20, yang merupakan nilai default yang disediakan oleh konsol. Rentang CIDR harus antara /24 dan /12, dengan /12 memberikan alamat IP terbanyak. Sebaiknya gunakan rentang dalam ruang alamat IP untuk internet pribadi, seperti yang dijelaskan dalam RFC 1918.

  • --island-mode-pod-address-cidr-blocks: Rentang alamat IP, dalam format CIDR, yang akan digunakan untuk Pod di cluster pengguna. Contoh perintah tersebut menggunakan 192.168.0.0/16, yang merupakan nilai default yang disediakan oleh konsol. Rentang CIDR harus antara /18 dan /8, dengan /8 sebagai alamat IP terbanyak. Sebaiknya gunakan rentang dalam ruang alamat IP untuk internet pribadi, seperti yang dijelaskan dalam RFC 1918.

  • --lvp-share-path: Ini adalah jalur mesin host tempat subdirektori dapat dibuat. PersistentVolume (PV) lokal dibuat untuk setiap subdirektori.

  • --lvp-share-storage-class: Ini adalah StorageClass yang akan digunakan untuk membuat volume persisten. StorageClass dibuat selama pembuatan cluster.

  • --lvp-node-mounts-config-path: Ini adalah jalur mesin host tempat disk yang terpasang dapat ditemukan. PersistentVolume (PV) lokal dibuat untuk setiap pemasangan.

  • --lvp-node-mounts-config-storage: Kelas penyimpanan tempat PV dibuat selama pembuatan cluster.

Setelah menjalankan perintah, Anda akan melihat output seperti berikut:

Waiting for operation [projects/PROJECT_ID/locations/ON_PREM_API_REGION/operations/operation-1678304606537-5f668bde5c57e-341effde-b612ff8a] to complete...

Dalam contoh output, string operation-1678304606537-5f668bde5c57e-341effde-b612ff8a adalah OPERATION_ID dari operasi yang berjalan lama.

Untuk mengetahui status operasi, salin OPERATION_ID dari output Anda ke dalam perintah berikut. Buka jendela terminal lain dan jalankan perintah.

gcloud container bare-metal operations describe OPERATION_ID \
    --project=PROJECT_ID \
    --location=ON_PREM_API_REGION

Perlu waktu sekitar 15 menit atau lebih untuk membuat cluster. Saat cluster sedang dibuat, Anda dapat menjalankan perintah sebelumnya sesering mungkin untuk mendapatkan status saat ini.

Saat cluster dibuat, Anda akan melihat output seperti berikut:

Created Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/USER_CLUSTER_NAME].

Membuat node pool

Setelah cluster berhasil dibuat, jalankan perintah berikut untuk membuat kumpulan node. Ganti NODE_POOL_NAME dengan nama untuk kumpulan node, dan pastikan placeholder untuk tanda --cluster masih ditetapkan ke nama cluster pengguna.

gcloud container bare-metal node-pools create NODE_POOL_NAME \
  --cluster=USER_CLUSTER_NAME \
  --project=PROJECT_ID \
  --location=ON_PREM_API_REGION \
  --node-configs='node-ip=10.200.0.5'
  • -node-configs: Nilai yang ditetapkan ke node-ip adalah alamat IP VM abm-user-cluster-w1 di VXLAN yang dibuat oleh skrip.

Setelah menjalankan perintah, Anda akan melihat output seperti berikut:

Waiting for operation [projects/PROJECT_ID/locations/ON_PREM_API_REGION/operations/operation-1678308682052-5f669b0d132cb-6ebd1c2c-816287a7] to complete...

Pembuatan node pool memerlukan waktu sekitar 5 menit atau kurang. Saat kumpulan node dibuat, Anda akan melihat output seperti berikut:

Created node pool in Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/USER_CLUSTER_NAME/bareMetalNodePools/NODE_POOL_NAME].

Perintah cluster pengguna lainnya

Selain membuat cluster, ada perintah gcloud CLI lain yang dapat Anda jalankan, misalnya:

  • Untuk membuat daftar cluster pengguna:
gcloud container bare-metal clusters list \
    --project=PROJECT_ID \
    --location=ON_PREM_API_REGION
  • Untuk menggambarkan cluster pengguna:
gcloud container bare-metal clusters describe USER_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=ON_PREM_API_REGION

Untuk mengetahui informasi selengkapnya, baca bagian gcloud container bare-metal clusters.

Perintah kumpulan node lainnya

Selain membuat node pool, ada beberapa perintah gcloud CLI lain yang dapat Anda jalankan, misalnya:

  • Untuk membuat daftar kumpulan node:
gcloud container bare-metal node-pools list \
    --cluster=USER_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=ON_PREM_API_REGION
  • Untuk mendeskripsikan kumpulan node:
gcloud container bare-metal node-pools describe NODE_POOL_NAME \
    --cluster=USER_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=ON_PREM_API_REGION

Untuk mengetahui informasi selengkapnya, lihat gcloud container bare-metal node-pools.

Terraform

Anda dapat menggunakan contoh konfigurasi dasar berikut untuk membuat cluster pengguna dengan load balancer MetalLB yang dipaketkan. Untuk informasi selengkapnya, lihat dokumentasi referensi google_gkeonprem_bare_metal_cluster.

  1. Di direktori tempat Anda meng-clone anthos-samples, ubah ke direktori tempat sampel Terraform berada:

    cd anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb
    

    Contoh ini menyediakan contoh file variabel untuk diteruskan ke main.tf.

  2. Buat salinan file terraform.tfvars.sample:

    cp terraform.tfvars.sample terraform.tfvars
    
    
    project_id          = "PROJECT_ID"
    region              = "ON_PREM_API_REGION"
    admin_cluster_name  = "ADMIN_CLUSTER_NAME"
    bare_metal_version  = "VERSION"
    admin_user_emails   = ["YOUR_EMAIL_ADDRESS", "ADMIN_2_EMAIL_ADDRESS"]
    cluster_name        = "abm-user-cluster-metallb"
    control_plane_ips   = ["10.200.0.4"]
    worker_node_ips     = ["10.200.0.5", "10.200.0.6"]
    control_plane_vip   = "10.200.0.50"
    ingress_vip         = "10.200.0.51"
    lb_address_pools    = [
        { name = "lbpool_1", addresses = ["10.200.0.51-10.200.0.70"] }
    ]
    
  3. Ubah nilai parameter di terraform.tfvars, lalu simpan file-nya.

    Daftar berikut mendeskripsikan variabel:

    • project_id: ID project tempat cluster pengguna akan didaftarkan. Project ini disebut sebagai project host fleet.

    • region: Region Google Cloud yang Anda tetapkan di awal tutorial. Jalankan echo $ON_PREM_API_REGION untuk mendapatkan nilai.

    • admin_cluster_name: Nama cluster admin yang Anda tetapkan di awal tutorial ini. Jalankan echo $ADMIN_CLUSTER_NAME untuk mendapatkan nilainya.

    • bare_metal_version: GKE pada versi Bare Metal untuk cluster pengguna Anda. Untuk menggunakan versi yang sama dengan yang digunakan untuk cluster admin, jalankan echo $BMCTL_VERSION untuk mendapatkan nilai. Jika mau, Anda dapat menentukan versi yang tidak lebih dari satu versi minor yang lebih rendah dari versi cluster admin. Versi cluster pengguna tidak boleh lebih tinggi daripada versi cluster admin.

    • cluster_name: Anda dapat menggunakan nama dalam file TVARS untuk cluster pengguna atau menentukan nama pilihan Anda. Nama tidak dapat diubah setelah cluster dibuat.

    • admin_user_emails: Daftar alamat email pengguna yang akan diberi hak istimewa administratif di cluster. Pastikan untuk menambahkan alamat email agar Anda dapat mengelola cluster.

      Saat cluster dibuat, GKE On-Prem API menerapkan kebijakan kontrol akses berbasis peran (RBAC) Kubernetes ke cluster untuk memberikan peran clusterrole/cluster-admin Kubernetes kepada pengguna admin, yang menyediakan akses penuh ke setiap resource dalam cluster di semua namespace. Hal ini juga memungkinkan pengguna login ke konsol menggunakan identitas Google mereka.

    Gunakan nilai default yang ditentukan dalam terraform.tvars untuk variabel lainnya. Skrip menggunakan nilai ini saat membuat VM dan cluster admin.

    • control_plane_ips: Daftar satu atau beberapa alamat IPv4 untuk node bidang kontrol. Gunakan nilai default, yaitu alamat IP yang ditetapkan oleh skrip ke VM abm-user-cluster-cp1.

    • worker_node_ips: Daftar satu atau beberapa alamat IPv4 untuk mesin node pekerja. Gunakan nilai default, yaitu alamat IP yang ditetapkan oleh skrip ke VM abm-user-cluster-w1 dan abm-user-cluster-w2.

    • control_plane_vip: IP virtual (VIP) untuk bidang kontrol. Gunakan nilai default, 10.200.0.50, yang ada di jaringan 10.200.0.0/24 yang dibuat oleh skrip. Perlu diperhatikan bahwa alamat IP ini tidak tumpang-tindih dengan rentang alamat IP yang digunakan untuk kumpulan alamat load balancer MetalLB.

    • ingress_vip: Alamat IP virtual yang akan dikonfigurasi pada load balancer untuk proxy ingress. Gunakan nilai default, 10.200.0.51, yang ada di jaringan 10.200.0.0/24 yang dibuat oleh skrip. Perlu diperhatikan bahwa alamat IP ini berada dalam rentang alamat IP yang digunakan untuk kumpulan alamat load balancer MetalLB.

    • lb_address_pools: Daftar peta yang menentukan kumpulan alamat untuk load balancer MetalLB. Gunakan nilai default.

  4. Simpan perubahan di terraform.tfvars.

  5. Lakukan inisialisasi dan buat paket Terraform:

    terraform init
    

    Terraform menginstal semua library yang diperlukan, seperti penyedia Google Cloud.

  6. Tinjau konfigurasi dan buat perubahan jika diperlukan:

    terraform plan
    
  7. Terapkan paket Terraform untuk membuat cluster pengguna:

    terraform apply
    

    Perlu waktu 15 menit atau lebih untuk membuat cluster pengguna. Anda dapat melihat cluster di Konsol Google Cloud di halaman Cluster GKE.

Menghubungkan ke cluster pengguna

Saat Anda membuat cluster pengguna menggunakan konsol atau gcloud CLI, cluster akan dikonfigurasikan dengan kebijakan kontrol akses berbasis peran (RBAC) Kubernetes yang sama dengan yang Anda konfigurasikan untuk cluster admin saat menjalankan gcloud container fleet memberships generate-gateway-rbac. Dengan kebijakan RBAC ini, Anda dapat terhubung ke cluster menggunakan Google Cloud Identity, yaitu alamat email yang terkait dengan akun Google Cloud Anda. Kebijakan RBAC ini memungkinkan Anda login ke konsol tanpa konfigurasi tambahan.

Menghubungkan ke cluster di konsol

Jika Anda menggunakan gcloud CLI atau Terraform untuk membuat cluster pengguna, buka halaman GKE clusters di konsol:

Buka cluster GKE

Pastikan project tempat Anda membuat cluster pengguna dipilih. Anda akan melihat admin dan cluster pengguna dalam daftar.

Perhatikan bahwa cluster pengguna memiliki Bare metal: User di kolom Type. Hal ini menunjukkan bahwa cluster dikelola oleh GKE On-Prem API.

Jika Anda menggunakan skrip untuk membuat cluster admin, skrip ini memiliki External di kolom Type. Hal ini menunjukkan bahwa cluster tidak dikelola oleh GKE On-Prem API. Anda dapat mengonfigurasi cluster admin agar dikelola oleh GKE On-Prem API setelah cluster dibuat.

Daftar cluster screenshot

Untuk login ke cluster:

  1. Klik link pada nama cluster, lalu klik Login di panel samping.

  2. Pilih Gunakan identitas Google Anda untuk login.

  3. Klik Login.

Ulangi langkah yang sama untuk login juga ke cluster admin.

Daftar cluster screenshot

Menghubungkan ke cluster di command line

GKE On-Prem API mengonfigurasi kebijakan RBAC untuk Anda sebagai pembuat cluster pengguna. Kebijakan ini memungkinkan Anda menjalankan perintah kubectl di desktop lokal menggunakan gateway kubeconfig koneksi.

Dari komputer lokal Anda:

  1. Dapatkan entri kubeconfig yang dapat mengakses cluster melalui gateway koneksi.

    gcloud container fleet memberships get-credentials USER_CLUSTER_NAME
    

    Outputnya mirip dengan hal berikut ini:

    Starting to build Gateway kubeconfig...
    Current project_id: PROJECT_ID
    A new kubeconfig entry "connectgateway_PROJECT_ID_global_USER_CLUSTER_NAME" has been generated and set as the current context.
    
  2. Anda kini dapat menjalankan perintah kubectl melalui gateway koneksi:

    kubectl get nodes
    

    Outputnya mirip dengan hal berikut ini:

    NAME                  STATUS   ROLES                  AGE     VERSION
    abm-user-cluster-cp   Ready    control-plane,master   14m     v1.24.2-gke.1900
    abm-user-cluster-w1   Ready    worker                 8m28s   v1.24.2-gke.1900
    

Menambahkan kumpulan node lain ke cluster pengguna

Konsol

  1. Di konsol, buka halaman Cluster GKE.

    Buka cluster GKE

  2. Di daftar cluster, klik nama cluster, lalu klik Detail selengkapnya di panel Detail.

  3. Klik tab Nodes.

  4. Klik Add Node Pool.

  5. Masukkan nama untuk kumpulan node.

  6. Di kolom Nodes address 1, masukkan alamat IP berikut:

    10.200.0.6
    

    Ini adalah alamat IP VM abm-user-cluster-w2 yang dibuat skrip.

  7. Klik Buat

  8. Klik tab Nodes lagi jika diperlukan.

  9. Kumpulan node baru menampilkan status Rekonsiliasi.

  10. Klik di pojok kanan atas untuk melihat status pembuatan kumpulan node. Anda mungkin harus memuat ulang halaman untuk melihat status yang diperbarui dalam daftar node pool.

gcloud CLI

Jalankan perintah berikut untuk membuat node pool lainnya. Ganti NODE_POOL_NAME_2 dengan nama untuk kumpulan node, dan pastikan placeholder untuk flag --cluster masih ditetapkan ke nama cluster pengguna.

gcloud container bare-metal node-pools create NODE_POOL_NAME_2 \
  --cluster=USER_CLUSTER_NAME \
  --project=PROJECT_ID \
  --location=ON_PREM_API_REGION \
  --node-configs='node-ip=10.200.0.6'
  • -node-configs: Nilai yang ditetapkan ke node-ip adalah alamat IP VM abm-user-cluster-w2 di VXLAN yang dibuat oleh skrip.

Terraform

Jika Anda membuat cluster menggunakan Terraform, cluster tersebut dibuat dengan dua node, sehingga tidak ada VM tambahan di VXLAN yang tersedia untuk menambahkan node lain. Untuk mengetahui informasi tentang cara menambahkan node pool, lihat dokumentasi referensi google_gkeonprem_bare_metal_cluster.

Anda juga dapat memverifikasi node baru menggunakan kubectl. Pertama-tama, Anda harus menjalankan perintah gcloud container fleet memberships get-credentials seperti yang ditunjukkan di atas untuk mengambil konfigurasi cluster:

kubectl get nodes

Outputnya mirip dengan hal berikut ini:

NAME                  STATUS   ROLES                  AGE     VERSION
abm-user-cluster-cp   Ready    control-plane,master   24m   v1.24.2-gke.1900
abm-user-cluster-w1   Ready    worker                 18m   v1.24.2-gke.1900
abm-user-cluster-w2   Ready    worker                 52s   v1.24.2-gke.1900

Pembersihan

Bagian berikut berisi petunjuk untuk menghapus cluster dan VM yang Anda buat dengan panduan ini.

Hapus cluster pengguna

Konsol

  1. Di konsol, buka halaman Cluster GKE.

    Buka cluster GKE

  2. Di daftar cluster, klik cluster pengguna.

  3. Di panel Details, klik More details.

  4. Di dekat bagian atas jendela, klik Hapus.

  5. Saat diminta untuk mengonfirmasi, masukkan nama cluster dan klik Konfirmasi.

  6. Klik di pojok kanan atas untuk melihat status penghapusan. Anda mungkin harus memuat ulang halaman untuk memperbarui daftar cluster.

gcloud CLI

Jalankan perintah berikut untuk menghapus cluster:

gcloud container bare-metal clusters delete USER_CLUSTER_NAME \
  --project=PROJECT_ID \
  --location=ON_PREM_API_REGION \
  --force

Flag --force memungkinkan Anda menghapus cluster yang memiliki kumpulan node. Tanpa flag --force, Anda harus menghapus kumpulan node terlebih dahulu, lalu menghapus cluster.

Untuk mengetahui informasi tentang flag lainnya, lihat gcloud container bare-metal clusters delete.

Terraform

Jalankan perintah berikut:

terraform destroy

Tunggu hingga cluster pengguna dihapus sebelum menghapus cluster admin dan VM.

Menghapus cluster admin dan VM

  1. Batalkan pendaftaran cluster admin dari GKE On-Prem API:

    gcloud container bare-metal admin-clusters unenroll ADMIN_CLUSTER_NAME \
        --project=PROJECT_ID \
        --location=ON_PREM_API_REGION
    
  2. Hubungkan ke workstation admin:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  3. Hapus cluster admin:

    bmctl reset -c ADMIN_CLUSTER_NAME
    

    bmctl akan membatalkan pendaftaran cluster dari fleet, lalu menghapus cluster. Tunggu hingga cluster dihapus sebelum menghapus VM.

  4. Keluar dari workstation admin.

  5. Cantumkan semua VM yang memiliki abm dalam namanya:

    gcloud compute instances list | grep 'abm'
    
  6. Pastikan Anda tidak keberatan menghapus semua VM yang berisi abm dalam namanya.

    Setelah terverifikasi, Anda dapat menghapus VM abm dengan menjalankan perintah berikut:

    gcloud compute instances list --format="value(name)" | \
      grep 'abm'  | \
      xargs gcloud --quiet compute instances delete --zone ZONE
    
  7. Hapus akun layanan:

    gcloud iam service-accounts delete baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com
    

    Pada dialog konfirmasi, masukkan y.

    Langkah selanjutnya