Mengelola cluster dari konsol Google Cloud

Dokumen ini menjelaskan cara menyediakan GKE di Bare Metal untuk pengelolaan di Konsol Google Cloud. Hal ini mencakup pengelolaan dasar seperti dapat login ke cluster dan melihat workload-nya, serta cara mengaktifkan pengelolaan siklus proses cluster agar Anda dapat mengupgrade, mengupdate, dan menghapus cluster.

Anggota fleet dan konsol

Semua GKE di Bare Metal harus menjadi anggota fleet—cara terpadu untuk melihat dan mengelola beberapa cluster dan workload-nya. Setiap fleet cluster dikaitkan dengan project host armada.

Di GKE pada Bare Metal, cluster pengguna didaftarkan ke fleet pada waktu pembuatan:

  • Saat membuat cluster menggunakan bmctl, Anda akan menentukan project host fleet Anda di bagian gkeConnect pada file konfigurasi cluster. GKE di Bare Metal menggunakan informasi tersebut untuk mendaftarkan cluster Anda ke project fleet yang ditentukan.

  • Saat Anda membuat cluster pengguna di konsol, cluster tersebut akan otomatis menjadi anggota fleet dalam project yang dipilih di konsol.

Anggota fleet di luar Google Cloud seperti GKE di Bare Metal ditampilkan di konsol dalam project host fleet Anda, bersama dengan cluster armada lainnya seperti GKE di Google Cloud. Kemampuan pengelolaan GKE di Bare Metal dari konsol bergantung pada hal berikut:

  • Jika telah menyiapkan autentikasi, Anda dapat login ke cluster dan melihat beban kerja serta detail lainnya.

  • Jika telah mengaktifkan pengelolaan siklus proses cluster untuk cluster, Anda juga dapat mengupgrade, mengupdate, atau menghapus cluster pengguna menggunakan konsol. Untuk melakukannya, cluster harus dikelola oleh layanan yang disebut GKE On-Prem API. Untuk cluster pengguna yang dibuat dalam konsol, pengelolaan siklus proses cluster diaktifkan pada waktu pembuatan cluster, atau Anda dapat mengaktifkan fitur ini nanti untuk cluster pengguna yang dibuat menggunakan bmctl. Jika fitur ini tidak diaktifkan, Anda hanya dapat mengelola siklus proses cluster menggunakan bmctl di workstation admin Anda.

Lihat cluster terdaftar

Semua cluster fleet Anda akan ditampilkan di halaman cluster GKE di konsol. Ini memberi Anda ringkasan tentang seluruh fleet Anda dan, untuk GKE pada Bare Metal, memungkinkan Anda melihat cluster mana yang dikelola oleh GKE On-Prem API.

Untuk melihat cluster fleet Anda:

  1. Di konsol, buka halaman ringkasan cluster Google Kubernetes Engine.

    Buka cluster GKE

  2. Pilih project Google Cloud.

    • Jika Bare metal ditampilkan di kolom Type, cluster akan dikelola oleh GKE On-Prem API.

    • Jika External ditampilkan di kolom Type, berarti cluster tidak dikelola oleh GKE On-Prem API.

Untuk melihat detail selengkapnya tentang cluster, Anda harus login dan melakukan autentikasi ke cluster. Untuk melakukannya, Anda harus melakukan langkah-langkah berikut:

Menyiapkan autentikasi

Seperti yang dijelaskan sebelumnya, semua cluster fleet akan muncul di halaman cluster GKE dalam konsol. Namun, untuk melihat detail lebih lanjut, seperti node dan workload (serta melakukan tugas pengelolaan siklus proses cluster jika fitur tersebut diaktifkan), Anda harus login dan melakukan autentikasi ke cluster. Untuk melakukannya, cluster terdaftar Anda harus disiapkan dengan salah satu metode autentikasi berikut:

  • Identitas Google: Opsi ini memungkinkan Anda login menggunakan Google Cloud Identity, yaitu alamat email yang terkait dengan akun Google Cloud Anda. Gunakan opsi ini jika pengguna sudah memiliki akses ke Google Cloud dengan identitas Google mereka. Jika membuat cluster di konsol, Anda dapat login ke cluster menggunakan identitas Google, tetapi Anda perlu mengonfigurasi autentikasi untuk pengguna lain.

    Login dengan identitas Google adalah pendekatan paling sederhana untuk autentikasi di konsol. Oleh karena itu, kami menjelaskan cara menyiapkannya secara lebih mendetail di bagian Menyiapkan autentikasi identitas Google.

  • OpenID Connect (OIDC): Opsi ini memungkinkan Anda login ke cluster dari konsol menggunakan identitasnya dari penyedia identitas OIDC pihak ketiga seperti Okta atau Microsoft AD FS. Anda dapat menggunakan opsi ini jika pengguna memiliki nama pengguna, sandi, dan keanggotaan grup keamanan yang sudah ada dari penyedia Anda. Anda dapat mengetahui cara menyiapkan autentikasi OIDC pihak ketiga untuk cluster dalam panduan berikut:

  • Token beruang: Jika solusi yang disediakan Google sebelumnya tidak sesuai untuk organisasi Anda, Anda dapat menyiapkan autentikasi menggunakan akun layanan Kubernetes dan menggunakan token pemilik untuk login. Untuk mengetahui detailnya, lihat Menyiapkan menggunakan token pemilik.

Memberikan peran yang diperlukan

Akses ke konsol dikontrol oleh IAM Google Cloud. Untuk mengelola siklus proses cluster di konsol, Anda perlu memberikan beberapa peran IAM kepada pengguna yang bukan pemilik project:

  • Agar pengguna dapat mengakses konsol, setidaknya Anda perlu memberikan peran berikut:

    • roles/container.viewer. Peran ini memungkinkan pengguna melihat halaman Cluster GKE dan resource penampung lainnya di konsol. Untuk detail tentang izin yang disertakan dalam peran ini, atau untuk memberikan peran dengan izin baca dan tulis, lihat peran Kubernetes Engine dalam dokumentasi IAM.

    • roles/gkehub.viewer. Peran ini memungkinkan pengguna melihat cluster di luar Google Cloud di konsol. Untuk mengetahui detail tentang izin yang disertakan dalam peran ini, atau untuk memberikan peran dengan izin baca dan tulis, lihat peran GKE Hub dalam dokumentasi IAM.

  • Untuk mengizinkan pengguna mengelola siklus proses cluster di konsol, berikan peran IAM roles/gkeonprem.admin. Peran roles/gkeonprem.admin memberi pengguna akses administratif ke GKE On-Prem API, yang digunakan konsol untuk mengelola siklus proses cluster. Untuk mengetahui detail tentang izin yang disertakan dalam peran ini, lihat peran lokal GKE dalam dokumentasi IAM.

Perintah berikut menunjukkan cara memberikan peran minimal yang diperlukan untuk mengelola siklus proses cluster di konsol:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=MEMBER \
    --role=roles/container.viewer

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=MEMBER \
    --role=roles/gkehub.viewer

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=MEMBER \
    --role=roles/gkeonprem.admin

dengan:

  • PROJECT_ID adalah project host fleet. Untuk cluster yang dibuat menggunakan bmctl, ini adalah project yang Anda konfigurasi di bagian gkeConnect pada file konfigurasi cluster pengguna. Untuk cluster yang dibuat di konsol, ini adalah project yang Anda pilih saat cluster dibuat.

  • MEMBER adalah alamat email pengguna dalam format user:emailID, misalnya: user:alice@example.com

Mengaktifkan pengelolaan siklus proses cluster di konsol

Cluster pengguna yang dibuat di konsol dikelola secara otomatis oleh GKE On-Prem API, dan memungkinkan Anda menjalankan tugas pengelolaan siklus proses cluster di konsol. Jika Anda ingin mengaktifkan fitur ini untuk cluster pengguna yang dibuat menggunakan bmctl, ikuti langkah-langkah dalam Mengonfigurasi cluster pengguna yang akan dikelola oleh GKE On-Prem API. Jika pengelolaan siklus proses cluster diaktifkan, Anda dapat mengupdate cluster dari konsol:

  • Mengupdate cluster pengguna
  • Menambahkan atau menghapus kumpulan node pada cluster pengguna
  • Hapus cluster pengguna

Menyiapkan autentikasi identitas Google

Untuk mengizinkan pengguna login ke cluster menggunakan identitas Google mereka, Anda perlu mengonfigurasi hal berikut:

  • Pengguna memerlukan peran Identity and Access Management (IAM) tertentu agar dapat melihat dan berinteraksi dengan cluster di konsol pada halaman Cluster GKE.

  • Pengguna harus ditambahkan ke kebijakan role-based access control (RBAC) Kubernetes yang diperlukan gateway koneksi untuk mengakses server Kubernetes API cluster saat menggunakan Connect Agent.

Mengonfigurasi otorisasi RBAC

Setiap server Kubernetes API cluster harus dapat mengizinkan permintaan yang berasal dari konsol. Untuk mengonfigurasi otorisasi, Anda perlu mengonfigurasi kebijakan role-based access control (RBAC) Kubernetes di setiap cluster. Jika Anda membuat cluster di konsol, GKE On-Prem API akan menambahkan akun pengguna Anda sebagai administrator dan membuat kebijakan RBAC yang sesuai, yang memberi Anda akses administratif penuh ke cluster tersebut.

gcloud CLI

Untuk menerapkan kebijakan RBAC kepada pengguna, lakukan langkah-langkah berikut di workstation admin:

  1. Jalankan perintah berikut untuk login dengan Akun Google Anda dan mengupdate komponen:

    gcloud auth login
    gcloud components update
    
  2. Buat dan terapkan kebijakan RBAC ke cluster Anda untuk pengguna dan akun layanan:

    gcloud container fleet memberships generate-gateway-rbac  \
        --membership=MEMBERSHIP_NAME \
        --role=ROLE \
        --users=USERS \
        --project=PROJECT_ID \
        --kubeconfig=KUBECONFIG_PATH \
        --context=KUBECONFIG_CONTEXT \
        --apply
    

    Ganti kode berikut:

    • MEMBERSHIP_NAME: nama yang digunakan untuk merepresentasikan cluster dalam fleet-nya secara unik. Di GKE pada Bare Metal, nama keanggotaan dan nama cluster sama.
    • ROLE: peran Kubernetes yang ingin Anda berikan kepada pengguna di cluster. Untuk memberi pengguna akses penuh ke setiap resource dalam cluster di semua namespace, tentukan clusterrole/cluster-admin. Untuk membatasi akses, buat peran khusus, misalnya: role/mynamespace/namespace-reader. Peran khusus harus sudah ada sebelum Anda menjalankan perintah.
    • USERS: alamat email pengguna (akun pengguna atau akun layanan) yang ingin Anda beri izin, sebagai daftar yang dipisahkan koma. Contoh: --users=foo@example.com,test-acct@test-project.iam.gserviceaccount.com.
    • PROJECT_ID: project ID dari project host fleet.
    • KUBECONFIG_PATH: jalur lokal file kubeconfig yang berisi entri untuk cluster.
    • KUBECONFIG_CONTEXT: konteks cluster seperti yang ditampilkan dalam file kubeconfig. Anda bisa mendapatkan konteks saat ini dari command line dengan menjalankan kubectl config current-context. Terlepas dari apakah Anda menggunakan konteks saat ini atau tidak, pastikan konteks tersebut berfungsi untuk mengakses cluster dengan menjalankan perintah sederhana seperti:

      kubectl get namespaces \
        --kubeconfig=KUBECONFIG_PATH \
        --context=KUBECONFIG_CONTEXT
      

    Setelah menjalankan gcloud container fleet memberships generate-gateway-rbac, Anda akan melihat sesuatu seperti berikut di akhir output, yang terpotong 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: /usr/local/google/home/foo/.kube/config, context: kind-kind
    Writing RBAC policy for user: foo@example.com to cluster.
    Successfully applied the RBAC policy to cluster.
    

    Hal ini merupakan konteks untuk mengakses cluster melalui gateway koneksi.

    Untuk mengetahui detail lebih lanjut tentang perintah generate-gateway-rbac, baca panduan referensi gcloud CLI.

Bmctl

Untuk menerapkan kebijakan RBAC kepada pengguna, lakukan langkah-langkah berikut di workstation admin:

  1. Tambahkan bagian clusterSecurity.authorization ke file konfigurasi cluster Anda. Tentukan alamat email Anda dan alamat email pengguna lain yang perlu mengelola cluster. Misalnya:

    ...
    clusterSecurity:
      authorization:
        clusterAdmin:
          gcpAccounts: [alex@example.com,hao@example.com,sasha@example.com]
    ...
    
  2. Update cluster:

    bmctl update cluster \
        -c CLUSTER_NAME \
        --kubeconfig=KUBECONFIG
    

    Buat perubahan berikut:

    • Ganti CLUSTER_NAME dengan nama cluster yang ingin Anda perbarui.
    • Jika cluster adalah cluster yang dikelola sendiri (seperti admin atau cluster mandiri), ganti KUBECONFIG dengan jalur ke file kubeconfig cluster. Jika cluster adalah cluster pengguna, ganti KUBECONFIG dengan jalur ke file kubeconfig cluster admin.

Informasi selengkapnya