Hubungkan ke cluster yang sesuai dengan CNCF

Dokumen ini menjelaskan tiga metode untuk menghubungkan ke cluster terlampir yang sesuai dengan CNCF:

Ketiga metode untuk terhubung ke cluster terdaftar ini diaktifkan oleh layanan Google yang disebut gateway koneksi. Untuk mengetahui detail tentang gateway koneksi, lihat Menghubungkan ke cluster terdaftar dengan gateway Connect.

Sebelum memulai

Sebelum melakukan metode apa pun, pastikan Anda telah melampirkan cluster. Untuk mengetahui detailnya, lihat Melampirkan cluster yang sesuai CNCF.

Sebelum melanjutkan dengan metode #2 atau metode #3, Anda harus memenuhi prasyarat tambahan. Untuk mengetahui detailnya, lihat bagian berikut.

Sebelum memulai metode #2

Untuk menggunakan metode #2 untuk menghubungkan ke cluster yang terpasang, pastikan Anda memiliki prasyarat berikut:

  • Google Cloud CLI versi terbaru. Untuk mengetahui informasi tentang cara mengupdate gcloud CLI, lihat gcloud components update.
  • Versi cluster terlampir 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2, atau yang lebih baru.

Sebelum memulai metode #3

Untuk menggunakan metode #3 untuk menghubungkan ke cluster yang terpasang, pastikan Anda memiliki prasyarat berikut:

  1. Pastikan Anda memiliki Google Cloud CLI versi terbaru. Untuk mengetahui informasi tentang cara mengupdate gcloud CLI, lihat gcloud components update.

  2. Pastikan Anda menggunakan cluster terpasang versi 1.27.0-gke.5, 1.28.0-gke.2, atau yang lebih baru.

  3. Konfigurasi penggabungan identitas tenaga kerja (sehingga pengguna atau grup eksternal dapat menggunakan API cluster terpasang GKE):

  4. Opsional: Tetapkan peran Identity and Access Management (IAM) yang sesuai kepada pengguna atau grup eksternal Anda. Langkah ini hanya diperlukan jika Anda ingin memberi pengguna atau grup kemampuan untuk membuat atau mengupdate cluster; langkah ini tidak diperlukan hanya untuk mengakses cluster.

    Perhatikan bahwa peran adalah kumpulan izin. Saat menetapkan peran pada entity (akun pengguna, grup, atau layanan), Anda memberi entitas tersebut semua izin yang terdapat pada peran tersebut.

    Pengguna

    Untuk pengguna individu, Anda perlu menetapkan peran gkemulticloud.admin:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.admin" \
      --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE"
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda.
    • WORKFORCE_POOL_ID: ID yang secara unik mengidentifikasi kumpulan identitas tenaga kerja Anda di Google Cloud. Saat memformat ID, pastikan Anda mengikuti panduan yang direkomendasikan yang diberikan dalam dokumentasi IAM di bagian Parameter kueri.
    • SUBJECT_VALUE: ID yang secara unik mengidentifikasi pengguna eksternal. Misalnya, ID dapat berupa alamat email seperti alex@cymbalgroup.com.

    Grup

    Untuk grup, Anda perlu menetapkan peran gkemulticloud.admin:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.admin" \
      --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda.
    • WORKFORCE_POOL_ID: ID yang secara unik mengidentifikasi kumpulan identitas tenaga kerja Anda di Google Cloud. Saat memformat ID, pastikan Anda mengikuti panduan yang direkomendasikan yang diberikan dalam dokumentasi IAM di bagian Parameter kueri.
    • GROUP_ID: ID yang secara unik mengidentifikasi grup eksternal.

    Untuk mengetahui informasi selengkapnya tentang peran dan izin API yang diperlukan untuk cluster terpasang GKE, lihat Peran dan izin API.

Metode #1: menghubungkan ke cluster yang terpasang sebagai pengguna Google

Untuk terhubung ke cluster yang terpasang sebagai pengguna Google, ikuti langkah-langkah berikut:

  1. Aktifkan connectgateway API dan cloudresourcemanager API dengan perintah berikut:

     gcloud services enable --project=PROJECT_ID \
         connectgateway.googleapis.com \
         cloudresourcemanager.googleapis.com
    

    Ganti PROJECT_ID dengan ID project Google Cloud Anda.

  2. Siapkan dan terapkan aturan RBAC baik secara otomatis maupun manual:

    • Metode otomatis: Jika saat Anda memasang cluster, Anda menentukan pengguna Google di kolom --admin-users pada perintah gcloud container attached clusters register, pengguna ini otomatis diberi hak istimewa administrator di cluster tersebut. Oleh karena itu, Anda dapat melewati langkah ini.

    • Metode manual: Menyiapkan aturan RBAC secara manual untuk setiap pengguna Google dengan membuat manifes YAML Kubernetes. Untuk mengetahui detailnya, lihat Menggunakan Otorisasi RBAC.

  3. Dapatkan file konfigurasi kubeconfig Kubernetes dengan perintah berikut:

    gcloud container fleet memberships get-credentials CLUSTER_NAME
    

    Ganti CLUSTER_NAME dengan nama cluster yang kredensial koneksinya Anda inginkan.

Setelah melakukan langkah-langkah ini, Anda dapat terhubung ke cluster yang terpasang sebagai pengguna Google.

Metode #2: menghubungkan ke cluster yang terhubung dengan grup Google

Metode ini memungkinkan Anda terhubung ke cluster yang terpasang sebagai anggota grup Google. Dengan kata lain, Anda perlu memberi grup Google akses ke cluster dan semua pengguna yang termasuk dalam grup Google tersebut memiliki akses ke cluster.

Menggunakan Google Grup untuk memberikan akses cluster lebih efisien daripada membuat otorisasi terpisah untuk masing-masing pengguna. Misalnya, Anda ingin menambahkan 50 pengguna ke grup Administrator cluster, 75 pengguna ke grup Editor, dan 100 pengguna ke grup Reader. Metode #1, yang dijelaskan dalam dokumen ini, mengharuskan Anda membuat aturan RBAC dalam file manifes Kubernetes untuk 225 pengguna. Namun, metode #2 menghemat waktu Anda karena Anda hanya perlu membuat aturan RBAC untuk tiga grup Google.

Untuk mengizinkan grup Google terhubung ke cluster yang terpasang, ikuti langkah-langkah berikut:

  1. Aktifkan connectgateway API dan cloudresourcemanager API dengan perintah berikut:

      gcloud services enable --project=PROJECT_ID \
          connectgateway.googleapis.com \
          cloudresourcemanager.googleapis.com
    

    Ganti PROJECT_ID dengan ID project Google Cloud Anda.

  2. Buat grup bernama gke-security-groups sebagai grup di domain project Anda jika tidak ada.

  3. Buat satu atau beberapa subgrup dalam grup gke-security-groups untuk autentikasi cluster.

  4. Tambahkan pengguna ke subgrup yang baru dibuat.

  5. Memberikan peran IAM ke Google Grup:

    1. Pilih peran yang sesuai untuk grup. Peran ini menentukan cara grup berinteraksi dengan gateway koneksi. Perannya dapat berupa salah satu dari hal berikut: roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor, roles/gkehub.gatewayReader. (Perhatikan bahwa Anda tidak memberikan izin atas cluster yang terpasang di sini - langkah itu akan dilakukan nanti. Di sini, Anda hanya menentukan cara pengguna grup memanipulasi gateway yang terhubung).

    2. Jalankan perintah berikut untuk memberikan peran ke grup:

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=group:GROUP_NAME@DOMAIN \
        --role=GATEWAY_ROLE
      

      Ganti kode berikut:

      • PROJECT_ID: ID project Google Anda
      • GROUP_NAME: nama grup yang akan diberi akses
      • DOMAIN: domain Google Workspace Anda
      • GATEWAY_ROLE: peran yang dipilih. Misalnya roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor, atau roles/gkehub.gatewayReader.
  6. Dalam manifes Kubernetes, tentukan jenis izin yang dimiliki setiap grup Google di cluster. Misalnya, manifes berikut memberikan peran administrator cluster kepada Google Grup cluster-admin-team:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: gateway-cluster-admin-group
    subjects:
    - kind: Group
      name: cluster-admin-team@example.com
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: rbac.authorization.k8s.io
    
  7. Simpan manifes ke file dan terapkan ke cluster dengan menjalankan perintah berikut:

    kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
    

    Ganti kode berikut:

    • KUBECONFIG_PATH: jalur ke file kubeconfig Anda.
    • FILENAME: nama file manifes yang Anda buat.

Setelah Anda melakukan langkah-langkah ini, pengguna yang termasuk dalam grup Google tertentu dapat terhubung ke cluster yang terpasang. Pada contoh yang diberikan, pengguna yang termasuk dalam Google Grup cluster-admin-team dapat terhubung ke cluster sebagai administrator.

Metode #3: memberikan akses ke identitas eksternal saat melampirkan atau memperbarui cluster

Metode #3 memberikan akses ke identitas eksternal saat Anda melampirkan atau mengupdate cluster.

Untuk memasang cluster yang sesuai dengan CNCF, ikuti langkah-langkah dalam artikel Melampirkan cluster yang sesuai CNCF. Untuk memperbarui cluster yang sesuai CNCF, ikuti langkah-langkah dalam Mengupdate cluster yang sesuai CNCF.

Saat menjalankan perintah gcloud CLI untuk mendaftarkan atau mengupdate cluster, tentukan parameter admin-users dan/atau admin-groups sebagai berikut:

gcloud container attached clusters [register|update] CLUSTER_NAME \
    --admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
    --admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster Anda.
  • WORKFORCE_POOL_ID: ID yang secara unik mengidentifikasi kumpulan identitas tenaga kerja Anda di Google Cloud. Saat memformat ID, pastikan Anda mengikuti panduan yang direkomendasikan yang diberikan dalam dokumentasi IAM di bagian Parameter kueri.
  • SUBJECT_VALUE: ID yang secara unik mengidentifikasi pengguna eksternal. Misalnya, ID dapat berupa alamat email seperti alex@cymbalgroup.com.
  • GROUP_ID: ID yang secara unik mengidentifikasi grup eksternal.

Langkah selanjutnya

Untuk mengelola cluster dari Konsol Google Cloud dengan Cloud Identity Anda, lihat Login menggunakan Google Cloud Identity.