Membuat cluster dasar

Halaman ini adalah bagian kedua dari panduan yang akan memandu Anda dalam menggunakan software Google Distributed Cloud (sebelumnya dikenal sebagai Google Distributed Cloud) untuk membuat instalasi kecil bukti konsep cluster GKE pada hardware bare metal Anda. Bagian pertama, Menyiapkan infrastruktur minimal, menunjukkan cara menyiapkan hardware, merencanakan alamat IP, dan menyiapkan infrastruktur Google Cloud yang diperlukan. Dokumen ini dibuat berdasarkan penyiapan dan perencanaan dari bagian sebelumnya serta menunjukkan cara membuat cluster admin dan cluster pengguna. Kemudian, Anda dapat membuka Create a Service and an Ingress.

Panduan ini membantu Anda membuat penginstalan minimal Google Distributed Cloud. Instalasi minimal ini mungkin tidak cocok untuk kebutuhan produksi dan kasus penggunaan Anda sebenarnya. Untuk mengetahui informasi tentang penginstalan produksi, lihat panduan penginstalan.

Sebelum memulai

  1. Pastikan Anda telah menyiapkan hardware dan merencanakan alamat IP seperti yang dijelaskan di bagian sebelumnya panduan ini, Menyiapkan infrastruktur minimal. Atau, gunakan perencana persyaratan jaringan di bagian Prasyarat pada alur Buat cluster admin Cloud Terdistribusi di konsol Google Cloud.

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

    1. Pastikan Anda telah menginstal komponen Google Cloud CLI terbaru:

      gcloud components update
      
  3. Lakukan langkah-langkah berikut untuk mengaktifkan dan menggunakan GKE On-Prem API:

    1. Aktifkan API di project Anda:

      gcloud services enable \
          --project PROJECT_ID \
          gkeonprem.googleapis.com
      

      Ganti PROJECT_ID dengan project ID project host fleet Anda.

      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 Google Cloud CLI dengan akun yang memiliki akses ke project tersebut.

    2. Jika ini adalah pertama kalinya Anda mengaktifkan GKE On-Prem API dalam project, Anda perlu melakukan inisialisasi API. Anda dapat melakukannya dengan memanggil perintah gcloud CLI yang menampilkan versi yang tersedia yang dapat digunakan untuk membuat cluster:

      gcloud container bare-metal clusters query-version-config \
          --project=PROJECT_ID \
          --location="us-central1"
      

Ringkasan prosedur

Pembuatan cluster dasar terdiri dari langkah-langkah utama berikut:

  1. Kumpulkan informasi yang digunakan untuk menentukan konfigurasi cluster Anda.

  2. Buat cluster admin untuk mengelola cluster pengguna Anda.

  3. Buat cluster pengguna yang dapat menjalankan workload Anda.

1. Mengumpulkan informasi

Gunakan informasi yang Anda siapkan di Menyiapkan infrastruktur minimal atau dari perencana jaringan untuk mengisi setiap placeholder di tabel berikut. Placeholder sesuai dengan nilai kolom di file konfigurasi cluster untuk penginstalan minimal satu cluster admin dan satu cluster pengguna. Beberapa placeholder ditetapkan ke nilai yang telah diisi otomatis dari file konfigurasi cluster yang dihasilkan, tetapi semua placeholder dapat diedit.

Informasi cluster dasar
Nama cluster admin yang Anda buat. Lokasi dan penamaan artefak cluster di workstation admin didasarkan pada nama cluster. Namespace cluster diambil dari nama cluster. ADMIN_CLUSTER_NAME
Nama cluster pengguna yang Anda buat. Lokasi dan penamaan artefak cluster di workstation admin didasarkan pada nama cluster. Namespace cluster diambil dari nama cluster. USER_CLUSTER_NAME
Versi bmctl yang Anda download di bagian pertama panduan ini. CLUSTER_VERSION
Informasi akun
Jalur ke file kunci pribadi SSH di workstation admin Anda. Secara default, jalurnya adalah
/home/USERNAME/.ssh/id_rsa.
SSH_PRIVATE_KEY_PATH
ID project Google Cloud yang ingin Anda gunakan untuk menghubungkan cluster Anda ke Google Cloud serta melihat log dan metrik. Project ini juga disebut sebagai project host perangkat. PROJECT_ID
Alamat email yang terkait dengan akun Google Cloud Anda. Misalnya: alex@example.com. GOOGLE_ACCOUNT_EMAIL
Alamat IP mesin node
Satu alamat IP untuk node bidang kontrol cluster admin. ADMIN_CP_NODE_IP
Satu alamat IP untuk node bidang kontrol cluster pengguna. USER_CP_NODE_IP
Satu alamat IP untuk node pekerja cluster pengguna. USER_WORKER_NODE_IP
Alamat VIP
VIP untuk server Kubernetes API cluster admin. ADMIN_CP_VIP
VIP untuk server Kubernetes API cluster pengguna. USER_CP_VIP
Satu VIP yang akan digunakan sebagai alamat eksternal untuk proxy masuk. USER_INGRESS_VIP
Rentang sepuluh alamat IP untuk digunakan sebagai alamat IP eksternal untuk Layanan jenis LoadBalancer. Perhatikan bahwa rentang ini mencakup VIP masuk, yang diwajibkan oleh MetalLB. Tidak ada alamat IP lain yang dapat tumpang-tindih dengan rentang ini. START_IP-END_IP
CIDR Pod dan Service
Rentang alamat IP dalam notasi blok CIDR untuk digunakan oleh Pod di cluster admin. Nilai awal yang direkomendasikan, yang telah diisi sebelumnya dalam file konfigurasi cluster yang dihasilkan adalah 192.168.0.0/16. 192.168.0.0/16
Rentang alamat IP dalam notasi blok CIDR untuk digunakan oleh Layanan di cluster admin. Nilai awal yang direkomendasikan, yang telah diisi sebelumnya dalam file konfigurasi cluster yang dihasilkan adalah 10.96.0.0/20. 10.96.0.0/20
Rentang alamat IP dalam notasi blok CIDR untuk digunakan oleh Pod di cluster pengguna. Nilai awal yang direkomendasikan, yang telah diisi sebelumnya dalam file konfigurasi cluster yang dihasilkan dan merupakan nilai default di konsol adalah 192.168.0.0/16. 192.168.0.0/16
Rentang alamat IP dalam notasi blok CIDR untuk digunakan oleh Layanan di cluster pengguna. Nilai awal yang direkomendasikan, yang telah diisi sebelumnya dalam file konfigurasi cluster yang dihasilkan dan merupakan nilai default di konsol adalah 10.96.0.0/20. 10.96.0.0/20

2. Membuat cluster admin

Langkah-langkah berikut akan membuat cluster admin untuk cluster admin minimal dan penginstalan cluster pengguna. Pastikan Anda telah memberikan nilai untuk setiap placeholder dalam tabel di bagian Kumpulkan informasi sebelumnya sebelum melanjutkan.

Jika GKE On-Prem API (gkeonprem.googleapis.com) diaktifkan untuk project Anda, cluster yang baru dibuat akan otomatis didaftarkan dengan API tersebut. Pendaftaran terjadi bahkan saat spec.gkeOnPremAPI tidak ditentukan dalam file konfigurasi cluster. Dengan mendaftar ke API yang dihosting Google Cloud ini, Anda dapat mengelola siklus proses cluster menggunakan Konsol Google Cloud atau gcloud CLI.

Untuk menonaktifkan pendaftaran otomatis, hapus tanda komentar di bagian spec.gkeOnPremAPI di file konfigurasi cluster dan tetapkan spec.gkeOnPremAPI.enabled ke false sebelum Anda membuat cluster. Kolom spec.gkeOnPremAPI.enabled dapat diubah, sehingga Anda dapat membatalkan pendaftaran cluster kapan saja setelah dibuat.

Untuk membuat cluster admin dengan penginstalan minimal:

  1. Tetapkan kredensial default yang dapat digunakan Google Distributed Cloud untuk membuat cluster dengan perintah berikut:

    gcloud auth application-default login
    
  2. Untuk membuat file konfigurasi cluster, jalankan perintah berikut dari direktori /baremetal di workstation admin Anda:

    bmctl create config -c ADMIN_CLUSTER_NAME \
        --enable-apis --create-service-accounts --project-id=PROJECT_ID
    
  3. Verifikasi file konfigurasi cluster admin:

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

    • Komentar telah dihapus dari sampel ini untuk meningkatkan keterbacaan.
    • Spesifikasi NodePool telah dihapus. Node pekerja tidak diizinkan untuk cluster admin.
    gcrKeyPath: bmctl-workspace/.sa-keys/PROJECT_ID-anthos-baremetal-gcr.json
    sshPrivateKeyPath: SSH_PRIVATE_KEY_PATH
    gkeConnectAgentServiceAccountKeyPath: bmctl-workspace/.sa-keys/PROJECT_ID-anthos-baremetal-connect.json
    gkeConnectRegisterServiceAccountKeyPath: bmctl-workspace/.sa-keys/PROJECT_ID-anthos-baremetal-register.json
    cloudOperationsServiceAccountKeyPath: bmctl-workspace/.sa-keys/PROJECT_ID-anthos-baremetal-cloud-ops.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: CLUSTER_VERSION
      gkeConnect:
        projectID: PROJECT_ID
      controlPlane:
        nodePoolSpec:
          nodes:
          - address: ADMIN_CP_NODE_IP
      clusterNetwork:
        pods:
          cidrBlocks:
          - 192.168.0.0/16
        services:
          cidrBlocks:
          - 10.96.0.0/20
      loadBalancer:
        mode: bundled
        ports:
          controlPlaneLBPort: 443
        vips:
          controlPlaneVIP: ADMIN_CP_VIP
      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: 250
      # GKEOnPremAPI (Optional) Specify if you wish to explicitly enable/disable the cloud hosted gkeonprem
      # API to enable/disable cluster lifecycle management from gcloud UI and Terraform.
      # gkeOnPremAPI:
        # enabled: false
        # location is the Cloud location for the cluster resource metadata where the cluster will be enrolled.
        # location: us-central1
    
  4. 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 contoh yang telah Anda verifikasi pada langkah sebelumnya.

  5. Untuk membuat cluster admin, jalankan perintah berikut dari direktori /baremetal di workstation admin Anda:

    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/ADMIN_CLUSTER_NAME/log pada workstation admin.

    Proses pembuatan cluster dapat memerlukan waktu beberapa menit.

  6. Pastikan bahwa cluster Anda telah dibuat dan sedang berjalan:

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

    Jika cluster Anda berjalan, responsnya akan terlihat seperti ini:

    NAME     STATUS  ROLES          AGE  VERSION
    node-01  Ready   control-plane  16h  v1.25.7-gke.1000
    
  7. Untuk memberi akun pengguna Anda peran clusterrole/cluster-admin Kubernetes di cluster, jalankan perintah gcloud berikut:

    gcloud container fleet memberships generate-gateway-rbac \
        --membership=ADMIN_CLUSTER_NAME \
        --role=clusterrole/cluster-admin \
        --users=GOOGLE_ACCOUNT_EMAIL \
        --project=PROJECT_ID \
        --kubeconfig=bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig \
        --context=ADMIN_CLUSTER_NAME-admin@ADMIN_CLUSTER_NAME \
        --apply
    

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

    Validating input arguments.
    Specified Cluster Role is: clusterrole/cluster-admin
    Generated RBAC policy is:
    --------------------------------------------
    ...
    
    Applying the generate RBAC policy to cluster with kubeconfig: /root/bmctl-workspace/<var class="edit"scope="ADMIN_CLUSTER_NAME">ADMIN_CLUSTER_NAME</var>/<var class="edit"scope="ADMIN_CLUSTER_NAME">ADMIN_CLUSTER_NAME</var>-kubeconfig, context: <var class="edit"scope="ADMIN_CLUSTER_NAME">ADMIN_CLUSTER_NAME</var>-admin@<var class="edit"scope="ADMIN_CLUSTER_NAME">ADMIN_CLUSTER_NAME</var>
    Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster.
    Successfully applied the RBAC policy to cluster.
    

    Antara lain, kebijakan RBAC memungkinkan Anda login ke cluster di Konsol Google Cloud untuk melihat detail cluster selengkapnya.

3. Membuat cluster pengguna

Langkah-langkah berikut akan membuat cluster pengguna untuk cluster admin minimal dan penginstalan cluster pengguna. Pastikan Anda telah memberikan nilai untuk setiap placeholder dalam tabel di bagian Kumpulkan informasi sebelumnya sebelum melanjutkan.

Untuk membuat cluster pengguna dengan penginstalan minimal:

bmctl

Jika GKE On-Prem API (gkeonprem.googleapis.com) diaktifkan untuk project Anda, cluster yang baru dibuat akan otomatis didaftarkan dengan API tersebut. Pendaftaran terjadi bahkan saat spec.gkeOnPremAPI tidak ditentukan dalam file konfigurasi cluster. Setelah cluster didaftarkan dengan API yang dihosting Google Cloud ini, Anda dapat menggunakan Konsol Google Cloud atau gcloud CLI untuk mengelola siklus proses cluster.

Untuk menonaktifkan pendaftaran otomatis, hapus tanda komentar di bagian spec.gkeOnPremAPI di file konfigurasi cluster dan tetapkan spec.gkeOnPremAPI.enabled ke false sebelum Anda membuat cluster. Kolom spec.gkeOnPremAPI.enabled dapat diubah, sehingga Anda dapat membatalkan pendaftaran cluster kapan saja setelah dibuat.

  1. Buat file konfigurasi cluster:

    bmctl create config -c USER_CLUSTER_NAME \
      --project-id=PROJECT_ID
    
  2. Verifikasi file konfigurasi cluster pengguna:

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

    • Komentar telah dihapus dari sampel ini untuk meningkatkan keterbacaan.
    • 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 selengkapnya.
    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: cluster-USER_CLUSTER_NAME
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: USER_CLUSTER_NAME
      namespace: cluster-USER_CLUSTER_NAME
    spec:
      type: user
      profile: default
      anthosBareMetalVersion: CLUSTER_VERSION
      gkeConnect:
        projectID: PROJECT_ID
      controlPlane:
        nodePoolSpec:
          nodes:
          - address: USER_CP_NODE_IP
      clusterNetwork:
        pods:
          cidrBlocks:
          - 192.168.0.0/16
        services:
          cidrBlocks:
          - 10.96.0.0/20
      loadBalancer:
        mode: bundled
        ports:
          controlPlaneLBPort: 443
        vips:
          controlPlaneVIP: USER_CP_VIP
          ingressVIP: USER_INGRESS_VIP
        addressPools:
        - name: pool1
          addresses:
          - START_IP-END_IP
      clusterOperations:
        projectID: PROJECT_ID
        location: us-central1
      clusterSecurity:
        authorization:
          clusterAdmin:
            gcpAccounts:
            - GOOGLE_ACCOUNT_EMAIL
      storage:
        lvpNodeMounts:
          path: /mnt/localpv-disk
          storageClassName: local-disks
        lvpShare:
          path: /mnt/localpv-share
          storageClassName: local-shared
          numPVUnderSharedPath: 5
      nodeConfig:
        podDensity:
          maxPodsPerNode: 250
      # GKEOnPremAPI (Optional) Specify if you wish to explicitly enable/disable the cloud hosted gkeonprem
      # API to enable/disable cluster lifecycle management from gcloud UI and Terraform.
      # gkeOnPremAPI:
        # enabled: false
        # location is the Cloud location for the cluster resource metadata where the cluster will be enrolled.
        # location: us-central1
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: NodePool
    metadata:
      name: node-pool-1
      namespace: cluster-USER_CLUSTER_NAME
    spec:
      clusterName: USER_CLUSTER_NAME
      nodes:
      - address: USER_WORKER_NODE_IP
    
  3. Ganti konten file konfigurasi yang dihasilkan di workstation admin Anda dengan konten dari contoh sebelumnya.

    Buka file yang dihasilkan, bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME.yaml, dan ganti kontennya dengan konten contoh yang telah Anda verifikasi pada langkah sebelumnya.

  4. Buat cluster pengguna:

    bmctl create cluster -c USER_CLUSTER_NAME \
    --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/USER_CLUSTER_NAME/log pada workstation admin.

    Proses pembuatan cluster dapat memerlukan waktu beberapa menit.

  5. Pastikan bahwa cluster Anda telah dibuat dan sedang berjalan:

    kubectl --kubeconfig bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME-kubeconfig \
      get nodes
    

    Jika cluster Anda berjalan, responsnya akan terlihat seperti ini:

    NAME    STATUS   ROLES           AGE     VERSION
    nuc-3   Ready    control-plane   4m32s   v1.26.2-gke.1001
    nuc-4   Ready    worker          2m2s    v1.26.2-gke.1001
    

Konsol

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

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

    Buka Membuat cluster Cloud Terdistribusi

  2. Pastikan daftar project Google Cloud telah memilih PROJECT_ID.

  3. Klik Create Cluster.

  4. Pada dialog, klik On-Premises.

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

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

  7. Klik Next.

Dasar-dasar cluster

  1. Masukkan USER_CLUSTER_NAME sebagai nama cluster pengguna atau gunakan default.

  2. Pastikan cluster admin yang baru dibuat telah dipilih.

  3. Di GCP API Location, pilih us-central1.

  4. Di Google Distributed Cloud version, pilih CLUSTER_VERSION atau gunakan default. Anda dapat menggunakan setelan default untuk setelan lainnya di halaman ini.

  5. Klik Networking di menu navigasi sebelah kiri.

Networking

  1. Di bagian Control field, masukkan hal berikut di kolom Control plane node IP 1:

    USER_CP_NODE_IP
    
  2. Di bagian Load balancer, gunakan load balancer default, Dipaketkan dengan MetalLB.

  3. Buka bagian Kumpulan alamat baru. Masukkan rentang alamat IP di kolom rentang alamat IP 1:

    10.200.0.51-10.200.0.70
    
  4. Klik Done.

  5. Di bagian Virtual IPs, masukkan alamat IP untuk Control Plane VIP:

    USER_CP_VIP
    
  6. Masukkan alamat IP untuk Ingress VIP:

    USER_INGRESS_VIP
    
  7. Di bagian Service and Pod CIDR, jika Anda tidak mengubah Service dan Pod CIDR di planner, Anda dapat menggunakan defaultnya.

    Jika Anda mengubah CIDR, masukkan CIDR yang ingin digunakan:

    • CIDR Layanan:
    10.96.0.0/20
    
    • CIDR Pod:
    192.168.0.0/16
    
  8. Klik kumpulan default di menu navigasi kiri.

Membuat node pool

Cluster Anda harus memiliki setidaknya satu kumpulan node untuk node pekerja. Kumpulan node adalah template untuk grup worker node yang dibuat dalam cluster ini.

Masukkan alamat IP node pekerja cluster pengguna di kolom Node address 1:

USER_WORKER_NODE_IP

Membuat cluster

  1. Klik Verify and Create untuk membuat cluster pengguna.

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

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

    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.

    Cluster screenshot siap

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

gcloud CLI

Bagian ini menunjukkan cara membuat cluster pengguna dan node pool menggunakan gcloud CLI.

  1. Jalankan perintah berikut untuk membuat cluster pengguna:

    gcloud container bare-metal clusters create USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=us-central1 \
      --admin-cluster-membership=ADMIN_CLUSTER_NAME \
      --admin-cluster-membership-project=PROJECT_ID \
      --admin-cluster-membership-location=global \
      --version=CLUSTER_VERSION \
      --admin-users=GOOGLE_ACCOUNT_EMAIL \
      --island-mode-service-address-cidr-blocks=10.96.0.0/20 \
      --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \
      --metal-lb-address-pools='pool=lb-pool-1,manual-assign=True,addresses=START_IP-END_IP' \
      --control-plane-node-configs='node-ip=USER_CP_NODE_IP' \
      --control-plane-vip=USER_CP_VIP \
      --control-plane-load-balancer-port=443 \
      --ingress-vip=USER_INGRESS_VIP \
      --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
    

    Output dari perintah ini mirip dengan berikut ini:

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

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

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

    Perlu waktu sekitar 15 menit atau lebih untuk membuat cluster. Saat cluster dibuat, Anda dapat sering menjalankan perintah sebelumnya 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/us-central1/bareMetalClusters/USER_CLUSTER_NAME].
    
  2. Setelah cluster dibuat, jalankan perintah berikut untuk membuat kumpulan node pada cluster yang baru dibuat.

    gcloud container bare-metal node-pools create node-pool-1 \
      --cluster=USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=us-central1 \
      --node-configs node-ip=USER_WORKER_NODE_IP

Untuk informasi selengkapnya dan contoh lain, lihat referensi berikut:

Terraform

Bagian ini menunjukkan cara membuat cluster pengguna dan kumpulan node menggunakan Terraform.

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

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

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

    resource "google_gkeonprem_bare_metal_cluster"  "cluster-basic" {
      provider = google-beta
      name = "USER_CLUSTER_NAME"
      project = "PROJECT_ID"
      location = "us-central1"
      admin_cluster_membership = "projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME"
      bare_metal_version = "CLUSTER_VERSION"
      network_config {
        island_mode_cidr {
          service_address_cidr_blocks = ["10.96.0.0/20"]
          pod_address_cidr_blocks = ["192.168.0.0/16"]
        }
      }
      control_plane {
        control_plane_node_pool_config {
          node_pool_config {
            labels = {}
            operating_system = "LINUX"
            node_configs {
              labels = {}
              node_ip = "USER_CP_NODE_IP"
            }
          }
        }
      }
      load_balancer {
        port_config {
          control_plane_load_balancer_port = 443
        }
        vip_config {
          control_plane_vip = "USER_CP_VIP"
          ingress_vip = "USER_INGRESS_VIP"
        }
        metal_lb_config {
          address_pools {
            pool = "pool1"
            addresses = [
              "START_IP-END_IP"
            ]
            avoid_buggy_ips = true
            manual_assign = true
          }
        }
      }
      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"
        }
      }
      security_config {
        authorization {
          admin_users {
            username = "GOOGLE_ACCOUNT_EMAIL"
          }
        }
      }
    }
    
    resource "google_gkeonprem_bare_metal_node_pool" "node-pool-default" {
      provider = google-beta
      name =  "node-pool-1"
      bare_metal_cluster = google_gkeonprem_bare_metal_cluster.cluster-basic.name
      project = "PROJECT_ID"
      location = "us-central1"
      node_pool_config {
        operating_system = "LINUX"
        node_configs {
          node_ip = "USER_WORKER_NODE_IP"
        }
      }
    }
    
  3. Salin resource Terraform ke main.tf dan simpan file.

  4. Lakukan inisialisasi dan buat paket Terraform:

    terraform init
    

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

  5. Tinjau konfigurasi dan buat perubahan jika diperlukan:

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

    terraform apply
    

    Saat diminta, masukkan yes.

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

  7. Untuk membuat file kubeconfig bagi cluster pengguna, jalankan perintah berikut di workstation admin:

    bmctl get credentials --cluster USER_CLUSTER_NAME \
    --admin-kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
    

    Output dari perintah ini akan menampilkan nama file kubeconfig untuk cluster pengguna, misalnya:

    bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME-TIMESTAMP-kubeconfig
    

    TIMESTAMP dalam nama file menunjukkan tanggal dan waktu file dibuat.

    Karena file ini berisi kredensial autentikasi untuk cluster Anda, sebaiknya simpan di lokasi yang aman dengan akses terbatas.

  8. Pastikan bahwa cluster Anda telah dibuat dan sedang berjalan:

    kubectl --kubeconfig bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME-TIMESTAMP-kubeconfig \
        get nodes
    

    Jika cluster Anda berjalan, responsnya akan terlihat seperti ini:

    NAME    STATUS   ROLES           AGE     VERSION
    nuc-3   Ready    control-plane   4m32s   v1.26.2-gke.1001
    nuc-4   Ready    worker          2m2s    v1.26.2-gke.1001
    

Untuk informasi selengkapnya dan contoh lain, lihat referensi berikut:

Menghubungkan ke cluster pengguna

Apa pun alat yang Anda gunakan untuk membuat cluster pengguna, alamat email Anda akan diberi kebijakan role-based access control (RBAC) sehingga Anda dapat terhubung ke cluster dengan hak istimewa administratif penuh. Tempat alamat email ditentukan bergantung pada alat:

  • bmctl: Alamat email Anda disertakan di bagian clusterSecurity dalam contoh file konfigurasi pengguna.

  • Terraform: Alamat email Anda disertakan di bagian security_config pada contoh resource google_gkeonprem_bare_metal_cluster.

  • Konsol: Sebagai pembuat cluster, alamat email Anda akan otomatis disertakan di halaman Dasar-dasar cluster di bagian Otorisasi.

Meskipun hanya alamat email Anda yang ditentukan, Anda dapat menyertakan alamat email lain untuk memberikan akses administratif ke cluster kepada pengguna lain.

Kebijakan RBAC yang diberikan ke alamat email Anda melakukan hal berikut:

  • Memberi Anda peran clusterrole/cluster-admin Kubernetes di cluster.

  • Izinkan Anda login ke cluster di Konsol Google Cloud menggunakan identitas Google Anda. Anda dapat melihat cluster ini di halaman Cluster GKE di konsol.

  • Izinkan Anda menjalankan perintah kubectl di komputer lokal menggunakan kubeconfig gateway koneksi.

Untuk mendapatkan kubeconfig gateway koneksi, jalankan perintah berikut dari komputer lokal Anda:

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

    gcloud container fleet memberships get-credentials USER_CLUSTER_NAME  \
    --project=PROJECT_ID
    

    Outputnya mirip dengan hal berikut ini:

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

    kubectl get nodes
    

    Outputnya mirip dengan hal berikut ini:

    NAME    STATUS   ROLES           AGE     VERSION
    nuc-3   Ready    control-plane   4m32s   v1.26.2-gke.1001
    nuc-4   Ready    worker          2m2s    v1.26.2-gke.1001
    

    Banyak perintah kubectl memerlukan kubeconfig untuk cluster admin. Anda harus menjalankan perintah tersebut di workstation admin.

Langkah selanjutnya