Mengelola cluster dari konsol Google Cloud

Dokumen ini menjelaskan cara membuat admin dan cluster pengguna yang dibuat dengan software Google Distributed Cloud on bare metal tersedia untuk dikelola di Konsol Google Cloud. Kemampuan pengelolaan cluster mencakup kemampuan login ke cluster, melihat workload, mengupgrade, mengupdate, dan menghapus cluster.

Anggota armada dan konsol

Semua cluster harus menjadi anggota fleet—cara terpadu untuk melihat dan mengelola banyak cluster beserta workloadnya. Setiap fleet cluster dikaitkan dengan project host perangkat.

Semua cluster didaftarkan ke fleet pada waktu pembuatan:

  • Saat membuat cluster menggunakan bmctl, Anda menentukan project host fleet di bagian gkeConnect file konfigurasi cluster. Cluster tersebut menjadi anggota fleet project yang ditentukan.

  • Saat Anda membuat admin atau cluster pengguna dengan klien GKE On-Prem API standar (konsol, Google Cloud CLI, atau Terraform), cluster tersebut akan menjadi anggota fleet pada project yang ditentukan.

Anggota fleet di luar Google Cloud, seperti Google Distributed Cloud, ditampilkan di konsol dalam project host fleet Anda, bersama cluster perangkat lainnya seperti GKE di Google Cloud. Sejauh mana Anda dapat mengelola cluster bare metal dari konsol bergantung pada hal berikut:

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

  • Jika telah mengaktifkan pengelolaan siklus proses cluster untuk cluster, Anda dapat mengupgrade cluster admin dan pengguna menggunakan konsol, dan Anda dapat menggunakan konsol untuk memperbarui serta menghapus cluster pengguna. Jika fitur ini tidak diaktifkan, Anda hanya dapat mengelola siklus proses cluster menggunakan bmctl di workstation admin Anda.

Lihat cluster terdaftar

Semua cluster Anda akan ditampilkan di halaman cluster GKE di konsol. Dengan begitu, Anda bisa mendapatkan ringkasan mengenai seluruh fleet dan, untuk Google Distributed Cloud, 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. Perlu diketahui, hanya cluster admin dan pengguna yang dapat dikelola oleh GKE On-Prem API.

    • Jika External ditampilkan di kolom Type, 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 akan muncul di halaman cluster GKE pada konsol. Namun, untuk melihat detail selengkapnya seperti node dan workload (serta untuk melakukan tugas pengelolaan siklus proses cluster jika fitur ini diaktifkan), Anda harus login dan melakukan autentikasi ke cluster. Untuk melakukannya, cluster 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. Jika membuat cluster di konsol, Anda dapat login ke cluster menggunakan identitas Google, tetapi Anda harus mengonfigurasi autentikasi untuk pengguna lain.

    Login dengan identitas Google adalah pendekatan paling sederhana untuk autentikasi di konsol, jadi kami telah menjelaskan cara menyiapkannya secara lebih mendetail di 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 mungkin ingin menggunakan opsi ini jika pengguna sudah memiliki nama pengguna, sandi, dan keanggotaan grup keamanan dari penyedia Anda. Anda dapat mengetahui cara menyiapkan autentikasi OIDC pihak ketiga untuk cluster dalam panduan berikut:

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

Memberikan peran yang diperlukan

Akses ke konsol dikontrol oleh Identity and Access Management (IAM). Untuk mengelola siklus proses cluster di konsol, Anda perlu memberikan beberapa peran IAM kepada pengguna yang bukan pemilik project:

  • Untuk mengizinkan pengguna mengakses konsol, setidaknya Anda harus memberikan peran berikut:

    • roles/container.viewer: Peran ini memungkinkan pengguna melihat halaman Cluster GKE dan resource container lainnya di konsol. Untuk mengetahui 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 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 admin dan pengguna yang dibuat menggunakan alat standar (konsol, gcloud CLI, atau Terraform) akan otomatis terdaftar di GKE On-Prem API sehingga Anda dapat melakukan tugas pengelolaan siklus proses cluster di konsol. Di Google Distributed Cloud 1.16 dan versi yang lebih baru, saat Anda membuat cluster pengguna dan admin menggunakan bmctl, cluster tersebut akan terdaftar di GKE On-Prem API secara default. Jika Anda perlu mendaftarkan cluster di GKE On-Prem API, ikuti langkah-langkah di Mengonfigurasi cluster yang akan dikelola oleh GKE On-Prem API.

Menyiapkan autentikasi identitas Google

Agar pengguna dapat 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 kontrol akses berbasis peran (RBAC) Kubernetes yang diperlukan gateway koneksi untuk mengakses server Kubernetes API cluster menggunakan Agen Connect.

Mengonfigurasi otorisasi RBAC

Setiap server Kubernetes API cluster harus dapat mengizinkan permintaan yang berasal dari konsol. Untuk mengonfigurasi otorisasi, Anda perlu mengonfigurasi kebijakan kontrol akses berbasis peran (RBAC) Kubernetes untuk pengguna di setiap cluster. Akun Google Anda ditambahkan sebagai administrator dengan akses penuh ke cluster pengguna dalam kasus berikut:

  • Anda telah membuat cluster pengguna di konsol.

  • Anda telah membuat cluster pengguna menggunakan gcloud CLI, dan Akun Google Anda ditentukan dalam flag --admin-users dalam perintah create cluster.

  • Anda telah membuat cluster pengguna menggunakan Terraform dan Akun Google Anda telah ditentukan di kolom authorization.admin_users.username.

  • Anda telah membuat cluster pengguna menggunakan bmctl dan mengonfigurasi Akun Google Anda di clusterSecurity.authorization.clusterAdmin.gcpAccounts.

Anda dapat menambahkan orang lain sebagai administrator setelah cluster dibuat. Anda dapat menggunakan salah satu cara berikut untuk memberikan akses administratif ke cluster. Tersedia dua perintah gcloud yang berbeda.

  • Perintah gcloud ... generate-gateway-rbac perlu dijalankan di workstation admin Anda karena perintah ini memerlukan akses ke kubeconfig dan konteks cluster (yang biasanya hanya ada di workstation admin Anda). Perintah generate-gateway-rbac memungkinkan Anda menyesuaikan kebijakan RBAC, tetapi alamat email pengguna tidak akan ditampilkan sebagai administrator di bagian Detail Cluster di konsol.

  • Perintah gcloud ... update dapat dijalankan di workstation admin Anda atau komputer apa pun yang memiliki akses ke GKE On-Prem API.

Perlu diperhatikan bahwa jika Anda membuat cluster admin di Konsol Google Cloud, Anda akan diberi akses hanya baca ke cluster tersebut. Jika Anda ingin diberi peran clusterrole/cluster-admin, seseorang dengan peran tersebut perlu menambahkan Anda menggunakan perintah gcloud ... generate-gateway-rbac.

generate-gateway-rbac

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

  1. Jalankan perintah berikut untuk mengupdate komponen (jika diperlukan):

    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 secara unik dalam fleet-nya. Di Google Distributed Cloud, 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 di cluster di semua namespace, tentukan clusterrole/cluster-admin. Untuk memberikan akses hanya baca, tentukan clusterrole/view. 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 berikan izin, sebagai daftar yang dipisahkan koma. Contoh: --users=222larabrown@gmail.com,test-acct@test-project.iam.gserviceaccount.com.
    • PROJECT_ID: project ID dari project host fleet.
    • KUBECONFIG_PATH: jalur lokal file kubeconfig Anda yang berisi entri untuk cluster.
    • KUBECONFIG_CONTEXT: konteks cluster seperti yang muncul dalam file kubeconfig. Anda bisa mendapatkan konteks saat ini dari command line dengan menjalankan kubectl config current-context. Baik Anda menggunakan konteks saat ini atau tidak, pastikan konteks tersebut berfungsi untuk mengakses cluster dengan menjalankan perintah seperti:

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

    Setelah menjalankan gcloud container fleet memberships generate-gateway-rbac, Anda akan melihat kode seperti berikut di akhir output, 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: /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.
    

    Ini adalah konteks untuk mengakses cluster melalui gateway koneksi.

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

update

  1. Jalankan perintah berikut untuk mengupdate komponen:

    gcloud components update
    
  2. Untuk setiap pengguna yang perlu diberi peran clusterrole/cluster-admin, sertakan flag --admin-users dan jalankan perintah berikut. Anda tidak dapat menentukan beberapa pengguna dalam satu tanda. Pastikan untuk menyertakan Akun Google Anda di perintah karena perintah tersebut akan menimpa daftar pemberian akses dengan pengguna yang Anda tentukan dalam perintah tersebut.

    gcloud container bare-metal clusters update USER_CLUSTER_NAME \
      --admin-users YOUR_GOOGLE_ACCOUNT \
      --admin-users ADMIN_GOOGLE_ACCOUNT_1 \
    

Selain memberikan peran clusterrole/cluster-admin Kubernetes, perintah ini juga memberikan kebijakan RBAC yang diperlukan pengguna untuk mengakses cluster melalui Gateway Connect.

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 tersebut. Jika cluster adalah cluster pengguna, ganti KUBECONFIG dengan jalur ke file kubeconfig cluster admin.

Konsol

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

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

    Buka cluster GKE

  2. Pilih project Google Cloud tempat cluster pengguna berada.

  3. Dalam daftar cluster, klik nama cluster, lalu klik View details di panel Details.

  4. Di bagian Otorisasi, klik kolom Pengguna admin dan masukkan alamat email setiap pengguna.

  5. Jika Anda selesai menambahkan pengguna, klik Selesai.

Informasi selengkapnya