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

Pelajari Google Distributed Cloud (khusus software) untuk bare metal dengan membuat cluster demo di Virtual Machine (VM) Compute Engine. Dalam tutorial ini, Anda akan menjalankan skrip yang melakukan hal berikut:

  • 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 dapat menghosting beban kerja: bmctl,konsol Google Cloud , Google Cloud CLI, atau Terraform. Menyelesaikan tutorial ini dapat memerlukan waktu 40 menit hingga satu jam.

Cluster demo yang Anda buat dalam panduan ini membantu Anda mengevaluasi proses untuk menyediakan dan mengoperasikan cluster Google Distributed Cloud, tetapi cluster tersebut tidak ditujukan untuk digunakan dalam produksi.

Ringkasan prosedur

Dalam tutorial ini, Anda akan menyelesaikan langkah-langkah berikut:

  1. Siapkan lingkungan lokal Anda agar 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 Anda

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 butuhkan di bagian panduan berikutnya:

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify 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 atau editor project.
  7. Anda dapat menjalankan skrip di Cloud Shell atau komputer lokal yang menjalankan Linux atau macOS. Jika Anda menggunakan komputer lokal, pastikan lingkungan Anda telah menginstal alat yang diperlukan:
    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 gcloud CLI diinstal, 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:
      kubectl
      Anda akan melihat informasi penggunaan untuk kubectl. Jika perintah tidak tersedia, instal kubectl:
      gcloud components install kubectl
  8. Pastikan project Anda memiliki jaringan VPC bernama "default".

    Jika Anda tidak memiliki jaringan VPC "default", skrip di bagian berikut akan gagal menyediakan resource yang diperlukan. Kecuali jika Anda memilih untuk menghapus atau membatasinya, setiap project baru dimulai dengan jaringan VPC mode otomatis bernama "default" yang akan berfungsi dengan skrip. Untuk mengetahui informasi selengkapnya, lihat Jaringan VPC.

  9. Pastikan batasan kebijakan organisasi berikut tidak diterapkan:
    • constraints/iam.disableServiceAccountKeyCreation
    • constraints/compute.vmCanIpForward
    • constraints/compute.requireShieldedVm
    • constraints/compute.vmExternalIpAccess

    Jika batasan ini diterapkan, skrip di bagian berikut akan gagal menyediakan resource yang diperlukan. Untuk project baru, batasan ini ditetapkan ke Tidak Aktif (tidak diterapkan) secara default. Untuk mengetahui informasi selengkapnya, lihat Batasan kebijakan organisasi.

  10. 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
    • 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: Google Cloud zona tempat VM Compute Engine dibuat. Anda dapat menggunakan us-central1-a atau zona Compute Engine lainnya.
  11. 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 Anda masukkan. Jika project ID sudah benar, jalankan gcloud auth login untuk login ke gcloud CLI dengan akun yang memiliki akses ke project.

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

    Sebaiknya pilih versi kompatibel tertinggi 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. Buat 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 konfirmasi pilihan Anda saat diminta.

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

    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 tersebut akan melakukan hal berikut:

    1. Mengaktifkan API Google Cloud 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. Daripada membuat beberapa akun layanan untuk berbagai API dan layanan, skrip membuat satu akun layanan bernama baremetal-gcr dan memberikan peran IAM berikut kepadanya:
      • 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 worker node 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 Layer 2 antar-VM. VXLAN tidak persisten, jadi jika Anda me-reboot instance VM, jaringan akan dihancurkan. Jaringan disiapkan agar berada di subnet 10.200.0.0/24. Konektivitas Lapisan 2 adalah persyaratan untuk load balancer gabungan.
    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 bahwa root@10.200.0.x dari workstation admin berfungsi dengan melakukan hal berikut:
      1. Membuat kunci SSH baru di workstation admin.
      2. Menambahkan kunci publik ke semua VM lain dalam deployment.

    Skrip akan menampilkan setiap perintah yang dijalankannya dan statusnya. Setelah selesai, skrip akan menghasilkan 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. Buat 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 agar lebih mudah dibaca.
    • Skrip ini akan 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: ON_PREM_API_REGION
      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 dibuat, bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME.yaml dan ganti isinya dengan isi 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 awal dan membuat cluster. Informasi verbose ditulis ke log di folder baremetal/bmctl-workspace/abm-user-cluster-metallb/log pada workstation admin.

    Pembuatan cluster dapat memerlukan waktu beberapa menit hingga selesai.

  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.

Verifikasi cluster admin

Anda dapat menemukan file kubeconfig cluster admin di workstation admin di direktori bmctl-workspace akun root. Untuk memverifikasi deployment Anda, 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      1.31.300-gke.81
    
  3. Setelah selesai menjelajah, 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.

Memasukkan dasar-dasar lingkungan bootstrap

  1. Di konsol Google Cloud , buka halaman GKE clusters.

    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 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 bootstrap cluster. Biarkan halaman konsol ditampilkan karena Anda akan melanjutkan di sana untuk membuat cluster admin.

Buat cluster bootstrap

Saat Anda menggunakan klien GKE On-Prem API, seperti konsol, untuk membuat cluster admin, Anda perlu membuat bootstrap cluster 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 memperbarui VM dan menyelesaikan tutorial ini. Jika Anda berencana mempertahankan VM sebagai lingkungan pengujian, Anda mungkin ingin memperbarui 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. Beralih ke direktori baremetal/ dan jalankan perintah berikut untuk membuat bootstrap cluster.

    Nama cluster bootstrap berasal dari penambahan 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..
    

Buat cluster admin

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

    Jika berhasil, konsol akan menampilkan Connection established.

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

    • Pastikan nilai untuk --name cocok dengan Derived bootstrap name yang ditampilkan di bagian Bootstrap environment basics.

    • 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 IPs (VIPs), masukkan hal berikut di kolom Control plane VIP:

    10.200.0.48
    

    Langkah berikutnya bergantung pada ketersediaan cluster bootstrap. Perintah bmctl register bootstrap di jendela terminal harus dijalankan selama beberapa menit sebelum cluster bootstrap ditampilkan sebagai anggota terdaftar. Jika setelah beberapa menit, cluster 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 akan 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.
    

Verifikasi cluster admin

Anda dapat menemukan file kubeconfig cluster admin di workstation admin di direktori bmctl-workspace akun root. Untuk memverifikasi deployment Anda, 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      1.31.300-gke.81
    
  3. Setelah selesai menjelajah, 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 sedang berjalan, Anda menjalankan gcloud container bare-metal admin-clusters create di jendela terminal lain untuk membuat cluster admin.

Buat 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 memperbarui VM dan menyelesaikan tutorial ini. Jika Anda berencana mempertahankan VM sebagai lingkungan pengujian, Anda mungkin ingin memperbarui 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. Beralih ke direktori baremetal/ dan jalankan perintah berikut untuk membuat bootstrap cluster.

    Nama cluster bootstrap berasal dari penambahan 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..
    

Buat cluster admin

  1. Di jendela terminal baru, konfirmasi bahwa cluster bootstrap telah didaftarkan sebagai anggota fleet:

    gcloud container fleet memberships list \
        --project=PROJECT_ID
    

    Perintah gcloud container bare-metal admin-clusters create pada langkah berikut bergantung pada ketersediaan cluster bootstrap. Perintah bmctl register bootstrap di jendela terminal lain harus dijalankan selama beberapa menit sebelum cluster bootstrap ditampilkan sebagai anggota terdaftar. Jika, setelah beberapa menit, cluster 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 gabungan:

    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: 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 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 perintah 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.31.300-gke.81 abm-cluster-1  RUNNING
    

    Saat cluster admin dibuat, cluster bootstrap di workstation admin akan dihapus. Output perintah bmctl register bootstrap di jendela terminal lain akan 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.
    

Verifikasi cluster admin

Anda dapat menemukan file kubeconfig cluster admin di workstation admin di direktori bmctl-workspace akun root. Untuk memverifikasi deployment Anda, 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      1.31.300-gke.81
    
  3. Setelah selesai menjelajah, 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 sedang berjalan, Anda menjalankan perintah Terraform di jendela terminal lain untuk membuat cluster admin.

Ubah 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 bagi 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 bidang kontrol: 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 mengetahui informasi selengkapnya tentang resource Terraform untuk cluster admin, lihat google_gkeonprem_bare_metal_admin_cluster di registry Terraform.

Buat cluster bootstrap

Saat menggunakan klien GKE On-Prem API, seperti Terraform, untuk membuat cluster admin, Anda perlu membuat bootstrap cluster 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 memperbarui VM dan menyelesaikan tutorial ini. Jika Anda berencana mempertahankan VM sebagai lingkungan pengujian, Anda mungkin ingin memperbarui 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. Beralih ke direktori baremetal/ dan jalankan perintah berikut untuk membuat bootstrap cluster.

    Nama cluster bootstrap berasal dari penambahan 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..
    

Buat cluster admin

  1. Lakukan inisialisasi dan buat rencana Terraform:

    terraform init
    

    Terraform menginstal library yang diperlukan, seperti Google Cloud provider.

  2. Tinjau konfigurasi dan lakukan 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 akan 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.

Verifikasi cluster admin

Anda dapat menemukan file kubeconfig cluster admin di workstation admin di direktori bmctl-workspace akun root. Untuk memverifikasi deployment Anda, 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      1.31.300-gke.81
    
  3. Setelah selesai menjelajah, masukkan exit untuk memutuskan koneksi dari workstation admin.

4. Buat 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 dikodekan secara permanen 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 dalam tabel perencanaan sebelumnya. Selain nilai yang Anda masukkan, perhatikan perbedaan berikut dari file konfigurasi yang dihasilkan:

    • Komentar telah dihapus dari contoh ini agar lebih mudah dibaca.
    • Bagian kredensial telah dihapus seperti biasa untuk cluster pengguna.
    • Jenis cluster, spec.type, telah ditetapkan ke user.
    • Kolom spec.clusterSecurity.authorization.clusterAdmin.gcpAccounts telah ditambahkan untuk memberikan peran clusterrole/cluster-admin ke akun Anda. Selain hal lainnya, kolom ini memungkinkan Anda login ke cluster di Google Cloud konsol untuk melihat detail cluster selengkapnya.
    ---
    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: ON_PREM_API_REGION
      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 isinya dengan isi contoh yang Anda verifikasi pada 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 awal dan membuat cluster. Informasi verbose ditulis ke log di folder baremetal/bmctl-workspace/abm-user-cluster-metallb/log pada workstation admin.

    Pembuatan cluster dapat memerlukan waktu beberapa menit hingga selesai.

  6. Di konsol Google Cloud , buka halaman GKE clusters.

    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 yang sama untuk login ke cluster admin.

Konsol

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

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

    Buka Create a bare metal cluster

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

  3. Klik Create Cluster.

  4. Dalam dialog, klik Lokal.

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

  6. Di bagian Choose your cluster type, pilih Create a user cluster for an existing admin cluster

  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 opsi 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 Layer 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, 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 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 setidaknya 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 seharusnya 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, Cluster status: running 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 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.

    Pembuatan cluster memerlukan waktu sekitar 15 menit atau lebih. Saat cluster dibuat, Anda dapat menjalankan perintah sebelumnya secara berkala untuk mendapatkan status saat ini.

    Setelah 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 di referensi gcloud CLI.

Membuat node pool

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

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

    Proses pembuatan kumpulan node memerlukan waktu sekitar 5 menit atau kurang. 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 Kubernetes clusters 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 yang sama untuk login ke cluster admin.

Terraform

Anda dapat menggunakan contoh konfigurasi dasar berikut untuk membuat cluster pengguna dengan load balancer MetalLB yang dibundel. Untuk mengetahui 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 menyediakan contoh file variabel untuk 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 mengetahui informasi selengkapnya tentang argumen dalam contoh ini yang digunakan untuk menetapkan variabel, 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 Google Cloud provider.

  6. Tinjau konfigurasi dan lakukan 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 GKE clusters.

  8. Di konsol Google Cloud , buka halaman GKE clusters.

    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 yang sama untuk login ke cluster admin.

5. Pembersihan

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

Hapus 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 Detail, klik Lihat detail lainnya.

  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

  • Hapus cluster:

    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 mengetahui 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. Mencantumkan 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 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 berikutnya