Membuat cluster pengguna dan admin Google Distributed Cloud demo di VM Compute Engine

Pelajari Google Distributed Cloud (khusus software) untuk bare metal (sebelumnya dikenal sebagai Google Distributed Cloud Virtual, sebelumnya dikenal sebagai cluster Anthos di bare metal) dengan membuat cluster demo di Virtual Machine (VM) Compute Engine. Membuat cluster admin dan cluster pengguna dengan panduan ini mungkin memerlukan waktu 40 menit hingga satu jam. Cluster demo yang Anda buat dalam panduan ini membantu Anda mengevaluasi proses penyediaan dan pengoperasian cluster Google Distributed Cloud, tetapi cluster ini tidak dimaksudkan untuk digunakan dalam produksi.

Dokumen ini memandu Anda dalam proses menjalankan skrip yang:

  • Menyediakan lima VM Compute Engine untuk menginstal cluster demo Anda
  • Menyiapkan jaringan VPC untuk menyediakan konektivitas cluster

Setelah skrip menyediakan resource yang diperlukan, Anda menggunakan salah satu klien berikut untuk membuat cluster admin dan cluster pengguna yang menyertainya yang dapat menghosting beban kerja: bmctl, konsol Google Cloud, Google Cloud CLI, atau Terraform.

Ringkasan prosedur

Panduan ini berisi langkah-langkah utama berikut:

  1. Siapkan lingkungan lokal Anda sehingga skrip memiliki variabel lingkungan yang diperlukan dan Anda telah mengumpulkan informasi dasar yang diperlukan untuk menjalankan perintah.

  2. Buat VM dan jaringan dengan skrip yang didownload.

  3. Buat cluster admin dengan salah satu klien yang didukung.

  4. Buat cluster pengguna dengan salah satu klien yang didukung.

  5. Bersihkan untuk menghapus cluster dan VM yang Anda buat dengan panduan ini.

1. Menyiapkan lingkungan lokal

Karena panduan ini menggunakan skrip yang menyiapkan jaringan untuk Anda, Anda tidak perlu mengumpulkan banyak informasi atau melakukan perencanaan apa pun. Langkah-langkah berikut akan menyiapkan lingkungan lokal Anda dan mengumpulkan informasi dasar yang Anda perlukan di bagian panduan berikutnya:

  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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  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 Anda memilih project yang sudah ada, pastikan Anda adalah pemilik project atau editor.
  7. Anda dapat menjalankan skrip di Cloud Shell atau komputer lokal yang menjalankan Linux atau macOS. Jika Anda tidak menggunakan Cloud Shell:
    1. Pastikan Anda telah menginstal Google Cloud CLI terbaru, alat command line untuk berinteraksi dengan Google Cloud. Update komponen gcloud CLI, jika diperlukan:
      gcloud components update

      Bergantung pada cara penginstalan gcloud CLI, Anda mungkin melihat pesan berikut:

      You cannot perform this action because the Google Cloud CLI component manager is disabled for this installation. You can run the following command to achieve the same result for this installation:

      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
  8. Menyiapkan 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
    • ADMIN_CLUSTER_NAME: nama yang Anda pilih untuk cluster admin.
    • ON_PREM_API_REGION: region Google Cloud tempat GKE On-Prem API berjalan dan menyimpan metadatanya. Tentukan us-central1 atau wilayah yang didukung lainnya.
    • ZONE: Zona Google Cloud tempat VM Compute Engine dibuat. Anda dapat menggunakan us-central1-a atau salah satu zona Compute Engine lainnya.
  9. Jalankan perintah berikut untuk menetapkan 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 dimasukkan. Jika project ID sudah benar, jalankan gcloud auth login untuk login ke gcloud CLI dengan akun yang memiliki akses ke project.

  10. Dapatkan daftar versi yang didukung yang dapat Anda instal:
    gcloud container bare-metal admin-clusters query-version-config \
        --location=ON_PREM_API_REGION
  11. Pilih versi dari output perintah sebelumnya dan tetapkan dalam variabel lingkungan:
    export BMCTL_VERSION=BMCTL_VERSION

    Sebaiknya pilih versi tertinggi yang kompatibel untuk mendapatkan fitur dan perbaikan Google Distributed Cloud terbaru.

2. Membuat VM dan jaringan

Di bagian ini, Anda akan mendownload dan menjalankan skrip install_admin_cluster.sh.

  1. 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
    
  2. Jalankan skrip:

    bash install_admin_cluster.sh
    
  3. Pada perintah, masukkan 2 untuk menyiapkan infrastruktur Compute Engine saja dan confirmasikan pilihan Anda saat diminta.

    Skrip ini membuat VM Compute Engine, membuat jaringan VXLAN, dan menyiapkan workstation admin dan node cluster. Infrastruktur ini memerlukan waktu sekitar 5 menit untuk disiapkan.

    Untuk mempelajari skrip lebih lanjut, klik link berikut:

    Tentang skrip

    Anda dapat melihat skrip di folder anthos-bm-gcp-bash di repositori GitHub anthos-samples. Skrip ini mengotomatiskan langkah-langkah manual berikut:

    1. Mengaktifkan Google Cloud API berikut:
      anthos.googleapis.com
      anthosaudit.googleapis.com
      anthosgke.googleapis.com
      cloudresourcemanager.googleapis.com
      connectgateway.googleapis.com
      container.googleapis.com
      compute.googleapis.com
      gkeconnect.googleapis.com
      gkehub.googleapis.com
      gkeonprem.googleapis.com
      serviceusage.googleapis.com
      stackdriver.googleapis.com
      monitoring.googleapis.com
      logging.googleapis.com
      kubernetesmetadata.googleapis.com
      iam.googleapis.com
      opsconfigmonitoring.googleapis.com
    2. Alih-alih membuat beberapa akun layanan untuk API dan layanan yang berbeda, skrip ini membuat satu akun layanan yang disebut baremetal-gcr dan memberikan peran IAM berikut:
      • roles/gkehub.admin
      • roles/gkehub.connect
      • roles/logging.logWriter
      • roles/monitoring.dashboardEditor
      • roles/monitoring.metricWriter
      • roles/monitoring.viewer
      • roles/opsconfigmonitoring.resourceMetadata.writer
      • roles/serviceusage.serviceUsageViewer
      • roles/stackdriver.resourceMetadata.writer
    3. Membuat VM berikut:
      • Satu VM untuk workstation admin.
      • Satu VM untuk node bidang kontrol cluster admin.
      • Dua VM untuk node pekerja cluster pengguna.
      • Satu VM untuk node bidang kontrol cluster pengguna.
    4. Memverifikasi bahwa SSH diaktifkan di semua VM dan bahwa workstation admin memiliki akses SSH ke semua VM lain yang dibuat untuk node cluster.
    5. Membuat jaringan overlay Virtual Extensible LAN (VXLAN) untuk konektivitas Lapisan 2 di antara VM. VXLAN tidak persisten, jadi jika Anda memulai ulang instance VM, jaringan akan dihancurkan. Jaringan disiapkan untuk berada di subnet 10.200.0.0/24. Konektivitas Lapisan 2 adalah persyaratan untuk load balancer yang dipaketkan.
    6. Menginstal alat berikut di workstation admin:
      • bmctl
      • kubectl
      • Docker

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

    7. Memastikan root@10.200.0.x dari workstation admin berfungsi dengan melakukan tugas berikut:
      1. Buat kunci SSH baru di workstation admin.
      2. Menambahkan kunci publik ke semua VM lain dalam deployment.

    Skrip menampilkan setiap perintah yang dijalankan dan statusnya. Setelah selesai, skrip akan menampilkan output berikut:

    ✅ Successfully set up SSH access from admin workstation to cluster node VMs.
    
    ✅ GCE Infrastructure setup 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-cp  | 10.200.0.3            | 🌟 Ready for use as control plane for the admin cluster |
    | abm-user-cluster-cp   | 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         |
    |---------------------------------------------------------------------------------------------------------|
    

3. Membuat cluster admin

bmctl

Untuk membuat cluster admin dengan bmctl, Anda mengakses VM workstation admin di jendela terminal dan menjalankan perintah dari sana:

  1. Gunakan SSH untuk mengakses VM workstation admin, abm-ws, sebagai root:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  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. Buat file konfigurasi cluster:

    bmctl create config -c ADMIN_CLUSTER_NAME --project-id=PROJECT_ID
    
  4. Verifikasi file konfigurasi cluster admin:

    File konfigurasi cluster berikut diisi dengan nilai yang Anda berikan sebelumnya. Selain nilai yang Anda masukkan, perhatikan perbedaan berikut dari file konfigurasi yang dihasilkan:

    • Komentar telah dihapus dari contoh ini untuk meningkatkan keterbacaan.
    • Skrip ini membuat satu akun layanan dengan semua izin yang diperlukan dan mendownload kunci bm-gcr.json yang dirujuk dalam file konfigurasi.
    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
      profile: default
      anthosBareMetalVersion: BMCTL_VERSION
      gkeConnect:
        projectID: PROJECT_ID
      controlPlane:
        nodePoolSpec:
          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:
        projectID: PROJECT_ID
        location: us-central1
      storage:
        lvpNodeMounts:
          path: /mnt/localpv-disk
          storageClassName: local-disks
        lvpShare:
          path: /mnt/localpv-share
          storageClassName: local-shared
          numPVUnderSharedPath: 5
      nodeConfig:
        podDensity:
          maxPodsPerNode: 110
    
  5. Ganti konten file konfigurasi yang dihasilkan di workstation admin Anda dengan konten dari contoh sebelumnya.

    Buka file yang dihasilkan, bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME.yaml, dan ganti kontennya dengan konten sampel yang Anda verifikasi di langkah sebelumnya.

  6. Buat cluster admin:

    bmctl create cluster -c ADMIN_CLUSTER_NAME

    Perintah bmctl menampilkan output ke layar saat menjalankan pemeriksaan preflight dan membuat cluster. Informasi panjang ditulis ke log di folder baremetal/bmctl-workspace/abm-user-cluster-metallb/log di workstation admin.

    Pembuatan cluster dapat memerlukan waktu beberapa menit.

  7. Di konsol, buka halaman GKE clusters.

    Buka cluster GKE

    Pastikan project tempat Anda membuat cluster pengguna dipilih. Anda akan melihat cluster admin tercantum.

  8. Login ke cluster admin:

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

    2. Pilih Gunakan identitas Google Anda untuk login.

    3. Klik Login.

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. Gunakan SSH untuk mengakses workstation admin sebagai root:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Pastikan cluster admin Anda telah dibuat dan berjalan:

    kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
    

    Outputnya mirip dengan hal berikut ini:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane   94m   v1.27.4-gke.1600
    
  3. Setelah selesai bereksplorasi, masukkan exit untuk memutuskan koneksi dari workstation admin.

Konsol

Untuk membuat cluster admin di konsol, Anda harus menjalankan bmctl register bootstrap dari VM workstation admin untuk membuat cluster bootstrap. Saat perintah bmctl register bootstrap berjalan, Anda melakukan langkah-langkah di konsol untuk membuat cluster admin.

Memasuki dasar-dasar lingkungan bootstrap

  1. Di Konsol Google Cloud, buka halaman cluster GKE.

    Buka cluster GKE

  2. Klik Create.

  3. Pada dialog Create a cluster, pilih On-premises, lalu klik Configure untuk bare metal:

  4. Pastikan untuk memilih PROJECT_ID dari daftar project.

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

  6. Masukkan ADMIN_CLUSTER_NAME sebagai nama cluster admin.

  7. Pilih BMCTL_VERSION sebagai versi untuk cluster admin Anda. Skrip mendownload versi alat command line bmctl ini ke workstation admin. Versi Google Distributed Cloud yang Anda instal harus cocok dengan versi bmctl.

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

    • 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, project, dan lokasi cluster secara bersama-sama mengidentifikasi cluster di Google Cloud secara unik.

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

Membuat cluster bootstrap

Saat menggunakan klien GKE On-Prem API, seperti konsol, untuk membuat cluster admin, Anda perlu membuat cluster bootstrap di workstation admin. Cluster bootstrap menghosting pengontrol Kubernetes yang diperlukan untuk membuat cluster admin.

  1. Dari command line, gunakan SSH untuk mengakses VM 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 untuk 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. Beralihlah ke direktori baremetal/ dan jalankan perintah berikut untuk membuat cluster bootstrap.

    Nama cluster bootstrap berasal dari menambahkan bootstrap- ke nama cluster admin.

    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

  1. Di halaman Instal lingkungan bootstrap di bagian Lingkungan bootstrap dari workstation admin, klik Periksa Koneksi.

    Jika berhasil, konsol akan menampilkan Koneksi dibuat.

    Koneksi ke cluster bootstrap harus dibuat sebelum Anda melanjutkan. Jika koneksi tidak dibuat, 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 perintah.

Jaringan

  1. Klik Networking di menu navigasi sebelah kiri.

  2. Di bagian Control plane, masukkan hal 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.

  3. Di bagian Load balancer, pastikan Bundled dipilih.

  4. Di bagian Virtual IP (VIP), masukkan hal berikut di kolom VIP bidang kontrol:

    10.200.0.48
    

    Langkah berikut bergantung pada ketersediaan cluster bootstrap. Perintah bmctl register bootstrap di jendela terminal harus berjalan selama beberapa menit sebelum cluster bootstrap ditampilkan sebagai anggota terdaftar. Jika, setelah beberapa menit, cluster tersebut masih belum tersedia, periksa nama cluster bootstrap dan project ID yang Anda gunakan. Jika Anda perlu mengubah nama cluster bootstrap atau project ID, masukkan Ctrl-C di jendela terminal lain untuk keluar dari bmctl register bootstrap dan jalankan kembali perintah.

  5. Klik Verifikasi dan Buat.

    Konsol menampilkan pesan status saat memverifikasi setelan dan membuat cluster.

    Saat cluster admin dibuat, cluster bootstrap di workstation admin akan dihapus. Output perintah bmctl register bootstrap di jendela terminal lain mirip dengan berikut ini:

    ...
    [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK
    [2024-04-15 23:16:38+0000] Please run
    [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes
    [2024-04-15 23:16:38+0000] to get cluster nodes status.
    [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK
    [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK
    [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK
    [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster
    [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK
    [2024-04-15 23:24:30+0000] Flushing logs... OK
    [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster.
    [2024-04-15 23:24:30+0000] Deleting membership... OK
    [2024-04-15 23:24:32+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. Gunakan SSH untuk mengakses workstation admin sebagai root:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Pastikan cluster admin Anda telah dibuat dan berjalan:

    kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
    

    Outputnya mirip dengan hal berikut ini:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane   94m   v1.27.4-gke.1600
    
  3. Setelah selesai bereksplorasi, masukkan exit untuk memutuskan koneksi dari workstation admin.

gcloud CLI

Petunjuk berikut memerlukan dua jendela terminal. Di satu jendela terminal, Anda menjalankan bmctl register bootstrap untuk membuat cluster bootstrap. Saat perintah bmctl register bootstrap berjalan, Anda menjalankan gcloud container bare-metal admin-clusters create di jendela terminal lain untuk membuat cluster admin.

Membuat cluster bootstrap

Saat menggunakan klien GKE On-Prem API, seperti gcloud CLI, untuk membuat cluster admin, Anda perlu membuat cluster bootstrap di workstation admin. Cluster bootstrap menghosting pengontrol Kubernetes yang diperlukan untuk membuat cluster admin.

  1. Dari command line, gunakan SSH untuk mengakses VM 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 untuk 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. Beralihlah ke direktori baremetal/ dan jalankan perintah berikut untuk membuat cluster bootstrap.

    Nama cluster bootstrap berasal dari menambahkan bootstrap- ke nama cluster admin.

    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

  1. Di jendela terminal baru, pastikan cluster bootstrap telah terdaftar sebagai anggota fleet:

    gcloud container fleet memberships list \
        --project=PROJECT_ID
    

    Perintah gcloud container bare-metal admin-clusters create di langkah berikut bergantung pada ketersediaan cluster bootstrap. Perintah bmctl register bootstrap di jendela terminal lain harus berjalan selama beberapa menit sebelum cluster bootstrap ditampilkan sebagai anggota terdaftar. Jika, setelah beberapa menit, cluster tersebut masih belum tercantum, periksa nama cluster bootstrap dan project ID yang Anda gunakan. Jika Anda perlu mengubah nama cluster bootstrap atau project ID, masukkan Ctrl-C di jendela terminal lain untuk keluar dari bmctl register bootstrap dan jalankan kembali perintah.

  2. Buat cluster admin dengan load balancer yang dipaketkan:

    Pastikan nilai yang Anda tentukan cocok dengan variabel lingkungan yang Anda tentukan sebelumnya untuk skrip.

    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
    

    Dalam perintah ini:

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

    • --control-plane-node-configs: node-ip ditetapkan 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, lihat referensi gcloud CLI.

    Output dari perintah ini akan 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
    

    Jika gcloud container bare-metal admin-clusters create berhasil diselesaikan, output-nya akan mirip dengan berikut ini:

    Created Anthos on bare metal Admin Cluster
    [https://gkeonprem.googleapis.com/v1/projects/anonuser-anonproject/locations/us-central1/bareMetalAdminClusters/gce-admin-gcloud-001].
    NAME           LOCATION     VERSION           MEMBERSHIP     STATE
    abm-cluster-1  us-central1  1.28.300-gke.131  abm-cluster-1  RUNNING
    

    Saat cluster admin dibuat, cluster bootstrap di workstation admin akan dihapus. Output perintah bmctl register bootstrap di jendela terminal lain mirip dengan berikut ini:

    ...
    [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK
    [2024-04-15 23:16:38+0000] Please run
    [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes
    [2024-04-15 23:16:38+0000] to get cluster nodes status.
    [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK
    [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK
    [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK
    [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster
    [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK
    [2024-04-15 23:24:30+0000] Flushing logs... OK
    [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster.
    [2024-04-15 23:24:30+0000] Deleting membership... OK
    [2024-04-15 23:24:32+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. Gunakan SSH untuk mengakses workstation admin sebagai root:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Pastikan cluster admin Anda telah dibuat dan berjalan:

    kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
    

    Outputnya mirip dengan hal berikut ini:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane   94m   v1.27.4-gke.1600
    
  3. Setelah selesai bereksplorasi, masukkan exit untuk memutuskan koneksi dari workstation admin.

Terraform

Petunjuk berikut memerlukan dua jendela terminal. Di satu jendela terminal, Anda menjalankan bmctl register bootstrap untuk membuat cluster bootstrap. Saat perintah bmctl register bootstrap berjalan, Anda menjalankan perintah Terraform di jendela terminal lain untuk membuat cluster admin.

Mengubah file contoh cluster pengguna agar berfungsi untuk cluster admin

Repositori anthos-samples tidak menyertakan contoh yang khusus untuk membuat cluster admin Google Distributed Cloud. Langkah-langkah berikut menunjukkan cara membuat cluster admin dengan mengubah contoh Terraform cluster pengguna yang ada.

  1. Di direktori tempat Anda meng-clone anthos-samples, jalankan perintah berikut untuk menyalin file contoh untuk contoh cluster pengguna MetalLB ke folder baru untuk cluster admin Anda:

    cp -r anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb \
        anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basic
    
  2. Ubah ke direktori abm_admin_cluster_basic:

    cd anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basic
    
  3. Edit file Terraform:

    • variables.tf:

      • Tentukan variabel untuk alamat IP node bidang kontrol (meskipun kita hanya menggunakan satu untuk demo ini). Variabel ini harus mirip dengan entri variable "control_plane_ips" { ... }.

      • Tentukan variabel untuk alamat VIP bidang kontrol. Variabel ini harus mirip dengan entri variable "control_plane_vip" { ... }.

    • terraform.tfvars:

      • Tetapkan nilai variabel untuk setelan cluster admin berikut:

        • Alamat IP node control plane: 10.200.0.3

        • Alamat VIP bidang kontrol: 10.200.0.48

    • main.tf:

      • Ganti resource google_gkeonprem_bare_metal_cluster dengan resource google_gkeonprem_bare_metal_admin_cluster.

      • Hapus resource google_gkeonprem_bare_metal_node_pool dan bagian lifecycle terkait.

      • Perbarui resource untuk menggunakan variabel yang baru ditentukan.

    Berikut adalah contoh tampilan file main.tf saat diedit untuk membuat cluster admin:

    /**
    * Copyright 2023 Google LLC
    *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
    *
    *      http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
    
    #[START anthos_onprem_terraform_bare_metal_admin_cluster_basic_main]
    
    module "enable_google_apis_primary" {
      source     = "terraform-google-modules/project-factory/google//modules/project_services"
      version    = "~> 14.0"
      project_id = var.project_id
      activate_apis = [
        "anthos.googleapis.com",
        "anthosaudit.googleapis.com",
        "anthosgke.googleapis.com",
        "cloudresourcemanager.googleapis.com",
        "compute.googleapis.com",
        "connectgateway.googleapis.com",
        "container.googleapis.com",
        "file.googleapis.com",
        "gkehub.googleapis.com",
        "iam.googleapis.com",
        "kubernetesmetadata.googleapis.com",
        "logging.googleapis.com",
        "monitoring.googleapis.com",
        "opsconfigmonitoring.googleapis.com",
        "serviceusage.googleapis.com",
        "stackdriver.googleapis.com"
      ]
      disable_services_on_destroy = false
    }
    
    # Enable GKE OnPrem API
    resource "google_project_service" "default" {
      project            = var.project_id
      service            = "gkeonprem.googleapis.com"
      disable_on_destroy = false
    }
    
    # Create a baremetal admin cluster and enroll it with the gkeonprem API
    resource "google_gkeonprem_bare_metal_admin_cluster" "admin-cluster-basic" {
      name                     = var.admin_cluster_name
      description              = "Bare metal admin cluster"
      provider                 = google
      depends_on               = [google_project_service.default]
      location                 = var.region
      bare_metal_version       = var.bare_metal_version
      network_config {
        island_mode_cidr {
          service_address_cidr_blocks = ["0.96.0.0/20"]
          pod_address_cidr_blocks     = ["192.168.0.0/16"]
        }
      }
      node_config {
        max_pods_per_node = 250
      }
      control_plane {
        control_plane_node_pool_config {
          node_pool_config {
            operating_system = "LINUX"
            dynamic "node_configs" {
              for_each = var.admin_cp_ips
              content {
                node_ip = node_configs.value
              }
            }
          }
        }
      }
      load_balancer {
        port_config {
          control_plane_load_balancer_port = 443
        }
        vip_config {
          control_plane_vip = var.admin_cp_vip
        }
      }
      storage {
        lvp_share_config {
          lvp_config {
            path = "/mnt/localpv-share"
            storage_class = "local-shared"
          }
          shared_path_pv_count = 5
        }
        lvp_node_mounts_config {
          path = "/mnt/localpv-disk"
          storage_class = "local-disks"
        }
      }
    
      dynamic "security_config" {
        for_each = length(var.admin_user_emails) == 0 ? [] : [1]
        content {
          authorization {
            dynamic "admin_users" {
              for_each = var.admin_user_emails
              content {
                username = admin_users.value
              }
            }
          }
        }
      }
    
      lifecycle {
        ignore_changes = [
          annotations["onprem.cluster.gke.io/user-cluster-resource-link"],
          annotations["alpha.baremetal.cluster.gke.io/cluster-metrics-webhook"],
          annotations["baremetal.cluster.gke.io/operation"],
          annotations["baremetal.cluster.gke.io/operation-id"],
          annotations["baremetal.cluster.gke.io/start-time"],
          annotations["baremetal.cluster.gke.io/upgrade-from-version"]
        ]
      }
    }
    
    #[END anthos_onprem_terraform_bare_metal_admin_cluster_basic_main]
    

    Untuk informasi selengkapnya tentang resource Terraform untuk cluster admin, lihat google_gkeonprem_bare_metal_admin_cluster di registry Terraform.

Membuat cluster bootstrap

Saat menggunakan klien GKE On-Prem API, seperti Terraform, untuk membuat cluster admin, Anda perlu membuat cluster bootstrap di workstation admin. Cluster bootstrap menghosting pengontrol Kubernetes yang diperlukan untuk membuat cluster admin.

  1. Dari command line, gunakan SSH untuk mengakses VM 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 untuk 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. Beralihlah ke direktori baremetal/ dan jalankan perintah berikut untuk membuat cluster bootstrap.

    Nama cluster bootstrap berasal dari menambahkan bootstrap- ke nama cluster admin.

    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

  1. Lakukan inisialisasi dan buat rencana Terraform:

    terraform init
    

    Terraform menginstal library yang diperlukan, seperti penyedia Google Cloud.

  2. Tinjau konfigurasi dan buat perubahan jika diperlukan:

    terraform plan
    
  3. Terapkan rencana Terraform untuk membuat cluster admin:

    terraform apply
    

    Pembuatan cluster admin memerlukan waktu 15 menit atau lebih. Setelah pembuatan cluster selesai, Anda akan melihat pesan seperti berikut:

    ...
    google_gkeonprem_bare_metal_admin_cluster.admin-cluster-basic: Still creating... [20m10s elapsed]
    google_gkeonprem_bare_metal_admin_cluster.admin-cluster-basic: Creation complete after 20m11s
    [id=projects/anonuser-anonproject/locations/us-central1/bareMetalAdminClusters/gce-admin-terra002]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
    

    Saat cluster admin dibuat, cluster bootstrap di workstation admin akan dihapus. Output perintah bmctl register bootstrap di jendela terminal lain mirip dengan berikut ini:

    ...
    [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK
    [2024-04-15 23:16:38+0000] Please run
    [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes
    [2024-04-15 23:16:38+0000] to get cluster nodes status.
    [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK
    [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK
    [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK
    [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster
    [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK
    [2024-04-15 23:24:30+0000] Flushing logs... OK
    [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster.
    [2024-04-15 23:24:30+0000] Deleting membership... OK
    [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
    

  4. Di konsol, buka halaman GKE clusters.

    Buka cluster GKE

    Pastikan project tempat Anda membuat cluster pengguna dipilih. Anda akan melihat cluster admin tercantum.

  5. Login ke cluster admin:

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

    2. Pilih Gunakan identitas Google Anda untuk login.

    3. Klik Login.

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. Gunakan SSH untuk mengakses workstation admin sebagai root:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Pastikan cluster admin Anda telah dibuat dan berjalan:

    kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
    

    Outputnya mirip dengan hal berikut ini:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane   94m   v1.27.4-gke.1600
    
  3. Setelah selesai bereksplorasi, masukkan exit untuk memutuskan koneksi dari workstation admin.

4. Membuat cluster pengguna

Anda dapat menggunakan konsol Google Cloud, Google Cloud CLI, atau Terraform untuk membuat cluster pengguna. Agar mudah, gunakan abm-user-cluster-metallb untuk nama cluster pengguna, agar cocok dengan nama yang di-hardcode dalam skrip Terraform.

bmctl

  1. Gunakan SSH untuk mengakses VM workstation admin, abm-ws, sebagai root:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Buat file konfigurasi cluster:

    bmctl create config -c abm-user-cluster-metallb \
        --project-id=PROJECT_ID
  3. Dalam file konfigurasi cluster pengguna berikut, tetapkan alamat email Anda di bagian clusterSecurity dan verifikasi setelan lainnya:

    File konfigurasi cluster berikut diisi dengan nilai yang Anda masukkan di tabel perencanaan sebelumnya. Selain nilai yang Anda masukkan, perhatikan perbedaan berikut dari file konfigurasi yang dihasilkan:

    • Komentar telah dihapus dari contoh ini untuk meningkatkan keterbacaan.
    • Bagian Kredensial telah dihapus seperti biasa untuk cluster pengguna.
    • Jenis cluster, spec.type, telah ditetapkan ke user.
    • Kolom spec.clusterSecurity.authorization.clusterAdmin.gcpAccounts ditambahkan untuk memberikan clusterrole/cluster-admin ke akun Anda. Di antara hal lainnya, kolom ini memungkinkan Anda login ke cluster di Konsol Google Cloud untuk melihat detail cluster lainnya.
    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: cluster-abm-user-cluster-metallb
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: abm-user-cluster-metallb
      namespace: cluster-abm-user-cluster-metallb
    spec:
      type: user
      profile: default
      anthosBareMetalVersion: BMCTL_VERSION
      gkeConnect:
        projectID: PROJECT_ID
      controlPlane:
        nodePoolSpec:
          nodes:
          - address: 10.200.0.4
      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.50
          ingressVIP: 10.200.0.51
        addressPools:
        - name: pool1
          addresses:
          - 10.200.0.51-10.200.0.70
      clusterOperations:
        projectID: PROJECT_ID
        location: us-central1
      clusterSecurity:
        authorization:
          clusterAdmin:
            gcpAccounts:
            - YOUR_EMAIL_ADDRESS
      storage:
        lvpNodeMounts:
          path: /mnt/localpv-disk
          storageClassName: local-disks
        lvpShare:
          path: /mnt/localpv-share
          storageClassName: local-shared
          numPVUnderSharedPath: 5
      nodeConfig:
        podDensity:
          maxPodsPerNode: 250
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: NodePool
    metadata:
      name: node-pool-1
      namespace: cluster-abm-user-cluster-metallb
    spec:
      clusterName: abm-user-cluster-metallb
      nodes:
      - address: 10.200.0.5
    
  4. Ganti konten file konfigurasi yang dihasilkan di workstation admin Anda dengan konten dari contoh sebelumnya.

    Buka file yang dihasilkan, bmctl-workspace/abm-user-cluster-metallb/abm-user-cluster-metallb.yaml, dan ganti kontennya dengan konten sampel yang Anda verifikasi di langkah sebelumnya.

  5. Buat cluster pengguna:

    bmctl create cluster -c abm-user-cluster-metallb \
      --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig

    Perintah bmctl menampilkan output ke layar saat menjalankan pemeriksaan preflight dan membuat cluster. Informasi panjang ditulis ke log di folder baremetal/bmctl-workspace/abm-user-cluster-metallb/log di workstation admin.

    Pembuatan cluster dapat memerlukan waktu beberapa menit.

  6. Di Konsol Google Cloud, buka halaman Cluster GKE.

    Buka cluster GKE

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

  7. Login ke cluster pengguna:

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

    2. Pilih Gunakan identitas Google Anda untuk login.

    3. Klik Login.

    Ulangi langkah-langkah yang sama untuk login ke cluster admin.

Konsol

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

  1. Di konsol, buka halaman Create a bare metal cluster.

    Buka Membuat cluster bare metal

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

  3. Klik Create Cluster.

  4. Dalam dialog, klik On-premises.

  5. Di samping Bare metal, klik Configure. Halaman Prasyarat akan ditampilkan.

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

  7. Klik Berikutnya.

Dasar-dasar cluster

  1. Masukkan nama untuk cluster pengguna atau gunakan nama default.

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

  3. Klik Networking di menu navigasi sebelah kiri.

Jaringan

Skrip yang Anda jalankan untuk membuat VM dan cluster admin juga membuat VXLAN Lapisan 2 dengan alamat IP di subnet 10.200.0.0/24.

  1. Di bagian Control plane, masukkan hal berikut di kolom Control plane 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, Disertakan dengan 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 VIP Ingress:

    10.200.0.51
    
  7. Gunakan alamat IP default di bagian CIDR Service dan Pod.

  8. Klik default pool di menu navigasi sebelah kiri.

Membuat node pool

Cluster pengguna Anda harus memiliki minimal satu node pool untuk node pekerja.

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

    Pembuatan cluster pengguna memerlukan waktu 15 menit atau lebih. Konsol menampilkan pesan status saat memverifikasi setelan dan membuat cluster.

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

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

    Saat cluster dibuat, Status cluster: berjalan akan ditampilkan.

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

  3. Login ke cluster pengguna:

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

    2. Pilih Gunakan identitas Google Anda untuk login.

    3. Klik Login.

    Ulangi langkah-langkah yang sama untuk login ke cluster admin.

gcloud CLI

Untuk membuat cluster pengguna:

  1. Jalankan perintah berikut untuk membuat cluster pengguna:

    gcloud container bare-metal clusters create abm-user-cluster-metallb \
        --project=PROJECT_ID \
        --admin-cluster-membership=projects/PROJECT_ID/locations/ON_PREM_API_REGION/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
    

    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.

  2. Untuk mengetahui status operasi, buka jendela terminal lain dan jalankan perintah.

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

    Ganti OPERATION_ID dengan string yang sesuai dari output langkah sebelumnya.

    Perlu waktu sekitar 15 menit atau lebih untuk membuat cluster. Saat cluster dibuat, Anda dapat menjalankan perintah sebelumnya setiap saat 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/abm-user-cluster-metallb].

    Untuk mengetahui informasi selengkapnya tentang perintah gcloud container bare-metal clusters create, termasuk deskripsi setiap flag, lihat halaman container bare-metal clusters create untuk resource cluster dalam referensi gcloud CLI.

Membuat node pool

Setelah cluster berhasil dibuat, Anda dapat membuat node pool untuk cluster.

Untuk membuat node pool:

  1. Jalankan perintah berikut untuk membuat node pool:

    gcloud container bare-metal node-pools create NODE_POOL_NAME \
        --cluster=abm-user-cluster-metallb \
        --project=PROJECT_ID \
        --location=ON_PREM_API_REGION \
        --node-configs='node-ip=10.200.0.5'
    

    Ganti NODE_POOL_NAME dengan nama untuk node pool.

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

    Perlu waktu sekitar 5 menit atau kurang untuk membuat kumpulan node. Saat node pool 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/abm-user-cluster-metallb/bareMetalNodePools/NODE_POOL_NAME].
    
  2. Buka halaman Cluster Kubernetes di konsol:

    Buka halaman Buat cluster bare metal

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

  3. Login ke cluster pengguna:

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

    2. Pilih Gunakan identitas Google Anda untuk login.

    3. Klik Login.

    Ulangi langkah-langkah yang sama untuk login ke cluster admin.

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 contoh Terraform berada:

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

    Contoh ini memberikan contoh file variabel yang akan diteruskan ke main.tf.

  2. Buat salinan file terraform.tfvars.sample:

    cp terraform.tfvars.sample terraform.tfvars
    
  3. Verifikasi nilai dalam contoh berikut:

    File variabel Terraform berikut, terraform.tfvars.sample, telah diisi sebelumnya dengan alamat IP dan nilai yang Anda masukkan di bagian sebelumnya dalam panduan ini.

    
    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"] }
    ]
    

    Ganti ADMIN_2_EMAIL_ADDRESS dengan alamat email yang terkait dengan akun Google Cloud Anda atau hapus saat Anda mengedit file variabel.

    Untuk informasi selengkapnya tentang argumen dalam contoh ini yang Anda tetapkan variabelnya, lihat Referensi Argumen dalam dokumentasi Terraform untuk cluster pengguna bare metal.

  4. Ganti konten salinan file variabel Anda dengan konten dari contoh sebelumnya.

  5. Lakukan inisialisasi dan buat rencana Terraform:

    terraform init
    

    Terraform menginstal library yang diperlukan, seperti penyedia Google Cloud.

  6. Tinjau konfigurasi dan buat perubahan jika diperlukan:

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

    terraform apply
    

    Pembuatan cluster pengguna memerlukan waktu 15 menit atau lebih. Anda dapat melihat cluster di konsol Google Cloud di halaman cluster GKE.

  8. Di Konsol Google Cloud, buka halaman Cluster GKE.

    Buka cluster GKE

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

  9. Login ke cluster pengguna:

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

    2. Pilih Gunakan identitas Google Anda untuk login.

    3. Klik Login.

    Ulangi langkah-langkah yang sama untuk login ke cluster admin.

5. Pembersihan

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

Menghapus cluster pengguna

bmctl

  • Untuk menghapus cluster pengguna dengan bmctl, jalankan perintah berikut dari VM workstation admin, abm-ws:

    bmctl reset \
        --cluster abm-user-cluster-metallb \
        --admin-kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
    

Konsol

  1. Di konsol, buka halaman GKE clusters.

    Buka cluster GKE

  2. Di daftar cluster, klik cluster pengguna.

  3. Di panel Details, klik View more details.

  4. Di dekat bagian atas jendela, klik Hapus.

  5. Saat diminta untuk mengonfirmasi, masukkan nama cluster, lalu klik Hapus.

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

gcloud CLI

  • Untuk menghapus cluster, jalankan perintah berikut:

    gcloud container bare-metal clusters delete abm-user-cluster-metallb \
        --project=PROJECT_ID \
        --location=ON_PREM_API_REGION \
        --force
    

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

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

Terraform

Perintah terraform destroy menghentikan resource yang dibuat saat Anda menjalankan terraform apply untuk membuat cluster pengguna.

  • Jalankan perintah berikut dari direktori tempat file contoh cluster pengguna Terraform, seperti main.tf, berada:

    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 membatalkan pendaftaran cluster dari fleet, lalu menghapus cluster. Tunggu hingga cluster dihapus sebelum menghapus VM.

  4. Keluar dari workstation admin:

    exit
    
  5. Cantumkan semua VM yang memiliki abm dalam namanya:

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

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

    gcloud compute instances list --format="value(name)" | \
        grep 'abm' | \
        xargs gcloud compute instances delete --quiet --zone ZONE
    
  7. Jalankan perintah berikut untuk menghapus akun layanan dan, saat diminta, masukkan y:

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

    Langkah selanjutnya