Membuat cluster admin

Di Google Distributed Cloud, Anda menyiapkan cluster admin untuk mengelola cluster lainnya dengan aman. Anda dapat membuat, memperbarui, mengupgrade, atau menghapus cluster pengguna dari admin klaster. Cluster pengguna menjalankan beban kerja secara terpisah dari administrasi, jadi informasi sensitif terlindungi.

Cluster admin yang mengelola workload multi-cluster dapat menyediakan ketersediaan tinggi dan keandalan (HA). Dalam cluster HA, jika satu node bidang kontrol gagal, node lainnya akan terus berfungsi.

Cluster admin dalam lingkungan multi-cluster memberikan analisis keamanan. Karena akses ke data administrasi dipisahkan dari beban kerja, mereka yang mengakses beban kerja pengguna tidak memiliki akses ke data administratif yang sensitif, seperti kunci SSH dan data akun layanan. Akibatnya, ada beberapa kompromi keamanan dan resource yang diperlukan, karena cluster admin terpisah berarti Anda membutuhkan sumber daya khusus untuk manajemen dan beban kerja.

Anda dapat membuat cluster admin menggunakan perintah bmctl. Setelah membuat admin cluster, Anda membuat pengguna cluster untuk dan menjalankan workload.

Prasyarat:

  • bmctl terbaru telah didownload (gs://anthos-baremetal-release/bmctl/1.30.0-gke.1930/linux-amd64/bmctl) dari Cloud Storage.
  • Workstation yang menjalankan bmctl memiliki konektivitas jaringan ke semua node di menargetkan cluster pengguna.
  • Workstation yang menjalankan bmctl memiliki konektivitas jaringan ke cluster API server (VIP bidang kontrol).
  • Kunci SSH yang digunakan untuk membuat cluster Admin tersedia untuk root atau pengguna non-root dengan hak istimewa sudo tanpa sandi pada semua node di cluster admin target.
  • Akun layanan Connect-register dikonfigurasi untuk digunakan dengan Connect.

Lihat panduan memulai Google Distributed Cloud untuk perluasan petunjuk langkah demi langkah untuk membuat cluster hibrida. Membuat cluster admin mirip dengan membuat cluster hybrid, kecuali Anda tidak menjalankan beban kerja cluster admin.

Aktifkan SELinux

Jika Anda ingin mengaktifkan SELinux untuk mengamankan kontainer Anda, Anda harus memastikan SELinux diaktifkan dalam mode Enforced di semua mesin host Anda. Dimulai dengan Google Distributed Cloud rilis 1.9.0 atau yang lebih baru, Anda dapat mengaktifkan atau menonaktifkan SELinux sebelum atau setelah pembuatan atau upgrade cluster. SELinux diaktifkan oleh default di Red Hat Enterprise Linux (RHEL). Jika SELinux dinonaktifkan pada mesin {i>host<i} Anda atau Anda tidak yakin, lihat Mengamankan container Anda menggunakan SELinux untuk mendapatkan petunjuk cara mengaktifkannya.

Google Distributed Cloud mendukung SELinux hanya di sistem RHEL.

Login ke gcloud CLI dan membuat file konfigurasi cluster admin

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

    gcloud auth application-default login
    
  2. Untuk menggunakan pengaktifan API otomatis dan fitur pembuatan akun layanan di halaman ini, berikan peran Project Owner ke akun utama tersebut. Jika akun utama tidak dapat memiliki peran Project Owner, selesaikan langkah berikutnya.

  3. Untuk memastikan pembuatan cluster dapat berhasil tanpa memberi Project Peran pemilik, tambahkan peran IAM berikut ke akun utama:

    • Service Account Admin
    • Service Account Key Admin
    • Project IAM Admin
    • Compute Viewer
    • Service Usage Admin

    Jika akun utama adalah akun layanan dengan peran tersebut, Anda dapat menjalankan:

    export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILE
    

    Ganti JSON_KEY_FILE dengan jalur ke file kunci JSON akun layanan Anda.

  4. Dapatkan ID project Google Cloud Anda dan simpan dalam variabel lingkungan untuk menggunakannya untuk pembuatan cluster:

    export CLOUD_PROJECT_ID=$(gcloud config get-value project)
    

Membuat konfigurasi cluster admin dengan bmctl

Setelah login ke gcloud CLI dan menyiapkan project, Anda dapat membuat file konfigurasi cluster dengan perintah bmctl.

Dalam contoh berikut, semua akun layanan dibuat secara otomatis oleh perintah bmctl create config:

bmctl create config -c ADMIN_CLUSTER_NAME --enable-apis \
    --create-service-accounts --project-id=CLOUD_PROJECT_ID

Ganti kode berikut:

  • ADMIN_CLUSTER_NAME: nama cluster baru.
  • CLOUD_PROJECT_ID: ID project Google Cloud Anda atau Variabel lingkungan $CLOUD_PROJECT_ID.

Berikut adalah contoh cara membuat file konfigurasi untuk cluster admin bernama admin1 yang terkait dengan project ID my-gcp-project:

bmctl create config -c admin1 --create-service-accounts --enable-apis --project-id=my-gcp-project

File ditulis ke bmctl-workspace/admin1/admin1.yaml.

Sebagai alternatif untuk mengaktifkan API secara otomatis dan membuat akun layanan, Anda juga dapat memberikan informasi yang Izin IAM. Artinya, Anda dapat melewati pembuatan akun layanan otomatis dalam contoh sebelumnya dalam perintah bmctl:

bmctl create config -c admin1 --project-id=my-gcp-project

Mengedit file konfigurasi cluster

Setelah memiliki file konfigurasi cluster, edit file tersebut untuk membuat perubahan berikut:

  1. Berikan kunci pribadi SSH untuk mengakses node cluster admin:

    # bmctl configuration variables. Because this section is valid YAML but not a valid Kubernetes
    # resource, this section can only be included when using bmctl to
    # create the initial admin/admin cluster. Afterwards, when creating user clusters by directly
    # applying the cluster and node pool resources to the existing cluster, you must remove this
    # section.
    gcrKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-gcr.json
    sshPrivateKeyPath: /path/to/your/ssh_private_key
    gkeConnectAgentServiceAccountKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-connect.json
    gkeConnectRegisterServiceAccountKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-register.json
    cloudOperationsServiceAccountKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-cloud-ops.json
    
  2. Daftarkan cluster Anda ke fleet. Project ID yang Anda tentukan di perintah bmctl create config akan otomatis ditambahkan ke Kolom gkeConnect.projectID di file konfigurasi cluster. Proyek ini disebut sebagai project host perangkat.

    • Jika Anda membuat file konfigurasi menggunakan pengaktifan API otomatis dan fitur pembuatan Akun Layanan, Anda dapat melewati langkah ini.

    • Jika Anda membuat file konfigurasi tanpa menggunakan API otomatis dan fitur pembuatan Akun Layanan, lihat file yang didownload kunci JSON akun layanan lain di gkeConnectAgentServiceAccountKeyPath dan gkeConnectRegisterServiceAccountKeyPath kolom cluster file konfigurasi Anda.

    • Secara opsional, Anda dapat menambahkan gkeConnect.location ke spesifikasi cluster untuk menentukan region Google Cloud tempat Armada dan layanan {i>Connect<i} akan berjalan. Keanggotaan regional ini membatasi perangkat traffic layanan 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 pembuatan cluster yang sama akan gagal.

  3. Periksa untuk memastikan konfigurasi menentukan jenis cluster admin (nilai default):

    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: admin
    
  4. Jika GKE On-Prem API diaktifkan di di project Google Cloud, semua cluster dalam project terdaftar di GKE On-Prem API secara otomatis di region yang dikonfigurasi di clusterOperations.location.

    • Jika Anda ingin mendaftarkan semua cluster dalam project di GKE On-Prem API, pastikan untuk melakukan langkah-langkah dalam 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 menyetel 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) di awal proyek. Untuk mengetahui petunjuknya, lihat Menonaktifkan layanan.

  5. Mengubah file konfigurasi untuk menentukan bidang kontrol ketersediaan tinggi multinode. Tentukan jumlah ganjil node agar memiliki kuorum mayoritas untuk HA:

      # Control plane configuration
      controlPlane:
        nodePoolSpec:
          nodes:
          # Control plane node pools. Typically, this is either a single machine
          # or 3 machines if using a high availability deployment.
          - address: 10.200.0.4
          - address: 10.200.0.5
          - address: 10.200.0.6
    
  6. 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: 250
    ....
    

    Untuk cluster admin, nilai yang diizinkan untuk maxPodsPerNode adalah 32-250 untuk cluster HA dan 64-250 untuk cluster non-HA. Nilai default 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 admin dengan konfigurasi cluster

Gunakan perintah bmctl untuk men-deploy cluster:

bmctl create cluster -c ADMIN_CLUSTER_NAME

ADMIN_CLUSTER_NAME menentukan nama cluster yang dibuat di bagian sebelumnya.

Berikut adalah contoh perintah untuk membuat cluster disebut admin1:

bmctl create cluster -c admin1

Contoh konfigurasi cluster admin

Untuk mengetahui contoh konfigurasi cluster admin, lihat Cluster Admin di Contoh konfigurasi cluster.