Membuat cluster pengguna

Di Google Distributed Cloud, cluster pengguna menjalankan workload Anda, dan dalam arsitektur multi-cluster, cluster pengguna dibuat dan dikelola oleh cluster admin.

Setelah Anda membuat cluster admin, memanggil perintah bmctl create config akan membuat file YAML yang dapat diedit untuk menentukan cluster pengguna. Untuk menerapkan konfigurasi dan membuat cluster pengguna, gunakan perintah bmctl create cluster. Pemeriksaan preflight berlaku untuk cluster pengguna yang dibuat dengan perintah bmctl create cluster.

Mengeluarkan workload dari cluster admin akan melindungi data administratif sensitif, seperti kunci SSH yang disimpan di cluster admin, dari orang-orang yang tidak memerlukan akses ke informasi tersebut. Selain itu, memisahkan cluster pengguna satu sama lain memberikan keamanan umum yang baik untuk workload Anda.

Prasyarat

  • bmctl terbaru didownload (gs://anthos-baremetal-release/bmctl/1.29.200-gke.243/linux-amd64/bmctl) dari Cloud Storage.
  • Cluster admin yang berfungsi dengan akses ke server cluster API (controlPlaneVIP).
  • Node cluster admin memiliki konektivitas jaringan ke semua node pada cluster pengguna target.
  • Workstation yang menjalankan bmctl memiliki konektivitas jaringan ke semua node di cluster pengguna target.
  • Workstation admin dapat membuat koneksi SSH ke setiap node cluster pengguna.
  • Akun layanan Connect-register dikonfigurasi di cluster admin untuk digunakan dengan Connect.

Aktifkan SELinux

Jika ingin mengaktifkan SELinux untuk mengamankan container, Anda harus memastikan bahwa SELinux diaktifkan dalam mode Enforced di semua mesin host. Dimulai dengan rilis Google Distributed Cloud 1.9.0 atau yang lebih baru, Anda dapat mengaktifkan atau menonaktifkan SELinux sebelum atau sesudah pembuatan cluster atau upgrade cluster. SELinux diaktifkan secara default di Red Hat Enterprise Linux (RHEL). Jika SELinux dinonaktifkan di mesin host atau Anda tidak yakin, lihat Mengamankan container menggunakan SELinux untuk mengetahui petunjuk cara mengaktifkannya.

Google Distributed Cloud mendukung SELinux hanya di sistem RHEL.

Membuat file konfigurasi cluster pengguna

File konfigurasi untuk membuat cluster pengguna hampir sama persis dengan yang digunakan untuk membuat cluster admin. Satu-satunya perbedaan adalah Anda menghapus bagian konfigurasi kredensial lokal untuk menjadikan konfigurasi sebagai kumpulan resource Kubernetes yang valid. Bagian konfigurasi berada di bagian atas file di bagian bmctl configuration variables. Untuk contoh konfigurasi cluster pengguna, lihat Cluster pengguna dalam contoh konfigurasi Cluster.

Secara default, cluster pengguna mewarisi kredensialnya dari cluster admin yang mengelolanya. Anda dapat mengganti beberapa atau semua kredensial ini secara selektif.

  1. Buat file konfigurasi cluster pengguna dengan perintah bmctl create config:

    bmctl create config -c USER_CLUSTER_NAME
    

    Misalnya, berikan kode berikut untuk membuat file konfigurasi untuk cluster pengguna yang disebut user1:

    bmctl create config -c user1
    

    File ditulis ke bmctl-workspace/user1/user1.yaml. Jalur generik ke file ini adalah bmctl-workspace/CLUSTER NAME/CLUSTER_NAME.yaml.

  2. Edit file konfigurasi dengan perubahan berikut:

    • Hapus jalur file kredensial lokal dari konfigurasi:

      ...
        gcrKeyPath: (path to GCR service account key)
        sshPrivateKeyPath: (path to SSH private key, used for node access)
        gkeConnectAgentServiceAccountKeyPath: (path to Connect agent service account key)
        gkeConnectRegisterServiceAccountKeyPath: (path to Hub registration service account key)
        cloudOperationsServiceAccountKeyPath: (path to Cloud Operations service account key)
      ...
      
    • Ubah konfigurasi untuk menentukan jenis cluster user, bukan admin:

      ...
      spec:
        # Cluster type. This can be:
        #   1) admin:  to create an admin cluster. This can later be used to create
        #   user clusters.
        #   2) user:   to create a user cluster. Requires an existing admin cluster.
        #   3) hybrid: to create a hybrid cluster that runs admin cluster
        #   components and user workloads.
        #   4) standalone: to create a cluster that manages itself, runs user
        #   workloads, but does not manage other clusters.
        type: user
      ...
      
    • Daftarkan cluster Anda ke fleet dengan menentukan project ID Anda di kolom gkeConnect.projectID. Project ini disebut sebagai project host perangkat.

      ...
      gkeConnect:
         projectID: my-project-123
      ...
      
      • Secara opsional, Anda dapat menambahkan gkeConnect.location ke spesifikasi cluster untuk menentukan region Google Cloud tempat layanan Fleet dan Connect dijalankan. Keanggotaan regional ini membatasi traffic layanan fleet ke region Anda. Jika Anda menyertakan gkeConnect.location dalam spesifikasi cluster, region yang Anda tentukan harus sama dengan region yang dikonfigurasi di clusterOperations.location. Jika region tidak sama, pembuatan cluster akan gagal.
    • Jika GKE On-Prem API diaktifkan di project Google Cloud Anda, semua cluster dalam project tersebut akan terdaftar di GKE On-Prem API secara otomatis di region yang dikonfigurasi di clusterOperations.location.

      • Jika ingin mendaftarkan semua cluster dalam project di GKE On-Prem API, pastikan Anda melakukan langkah-langkah di Sebelum memulai untuk mengaktifkan dan menggunakan GKE On-Prem API dalam project.

      • Jika Anda tidak ingin mendaftarkan cluster di GKE On-Prem API, sertakan bagian ini dan tetapkan gkeOnPremAPI.enabled ke false. Jika Anda tidak ingin mendaftarkan cluster apa pun dalam project, nonaktifkan gkeonprem.googleapis.com (nama layanan untuk GKE On-Prem API) pada project tersebut. Untuk mengetahui petunjuknya, lihat Menonaktifkan layanan.

    • Tentukan alamat IP node bidang kontrol.

      ...
      # Sample control plane config
      controlPlane:
       nodePoolSpec:
         nodes:
         - address: 10.200.0.20
      ...
      
    • Pastikan spesifikasi cluster pengguna dan admin untuk VIP load balancer dan kumpulan alamat bersifat saling melengkapi, dan tidak tumpang tindih dengan cluster yang sudah ada. Contoh berikut menunjukkan sepasang contoh konfigurasi cluster admin dan pengguna, yang menentukan load balancing dan kumpulan alamat:

      ...
      # Sample admin cluster config for load balancer and address pools
        loadBalancer:
          vips:
            controlPlaneVIP: 10.200.0.49
            ingressVIP: 10.200.0.50
          addressPools:
          - name: pool1
            addresses:
            - 10.200.0.50-10.200.0.70
      ...
      ...
      # Sample user cluster config for load balancer and address pools
      loadBalancer:
          vips:
            controlPlaneVIP: 10.200.0.71
            ingressVIP: 10.200.0.72
          addressPools:
          - name: pool1
            addresses:
            - 10.200.0.72-10.200.0.90
      ...
      

      File konfigurasi cluster pengguna lainnya sama dengan konfigurasi cluster admin.

    • Tentukan kepadatan pod node cluster:

      ...
      # NodeConfig specifies the configuration that applies to all nodes in the cluster.
      nodeConfig:
        # podDensity specifies the pod density configuration.
        podDensity:
          # maxPodsPerNode specifies at most how many pods can be run on a single node.
          maxPodsPerNode: 110
      ...
      

      Untuk cluster pengguna, nilai yang diizinkan untuk maxPodsPerNode adalah 32-250. Nilai defaultnya jika tidak ditentukan adalah 110. Setelah cluster dibuat, nilai ini tidak dapat diperbarui.

      Kepadatan pod juga dibatasi oleh resource IP cluster Anda yang tersedia. Untuk mengetahui detailnya, lihat Jaringan pod.

Membuat cluster pengguna

Berikan perintah bmctl untuk menerapkan konfigurasi cluster pengguna dan membuat cluster:

bmctl create cluster -c USER_CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG

Ganti kode berikut:

  • USER_CLUSTER_NAME: nama cluster yang dibuat di bagian sebelumnya.
  • ADMIN_KUBECONFIG: jalur ke file kubeconfig cluster admin.

Misalnya, untuk cluster pengguna bernama user1, dan file kubeconfig cluster admin dengan jalur kubeconfig bmctl-workspace/admin/admin-kubeconfig, perintahnya adalah:

bmctl create cluster -c user1 --kubeconfig bmctl-workspace/admin/admin-kubeconfig

Contoh konfigurasi cluster pengguna

Untuk contoh konfigurasi cluster pengguna, lihat Cluster pengguna di contoh konfigurasi Cluster.