Mengelola cluster dari konsol Google Cloud

Dokumen ini menjelaskan cara menyediakan GKE di VMware 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 VMware 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 di VMware, cluster admin didaftarkan ke fleet pada waktu pembuatan dengan menentukan project host fleet Anda di bagian gkeConnect file konfigurasi cluster. GKE di VMware menggunakan informasi tersebut untuk mendaftarkan cluster Anda ke project fleet yang ditentukan. Jika pendaftaran gagal, Anda dapat mencoba kembali pendaftaran dengan menjalankan gkectl update credentials register.

Perhatikan bahwa saat mencoba pendaftaran kembali, Anda tidak perlu mengupdate kunci akun layanan connect-register. Dengan kata lain, Anda dapat terus menggunakan akun layanan pendaftaran koneksi asli. Untuk mengetahui informasi selengkapnya tentang perintah ini, lihat Merotasi kunci akun layanan.

Di GKE di VMware, cluster pengguna didaftarkan ke fleet pada waktu pembuatan:

  • Saat membuat cluster pengguna menggunakan gkectl, Anda harus menentukan project host fleet Anda di bagian gkeConnect pada file konfigurasi cluster. GKE di VMware menggunakan informasi tersebut untuk mendaftarkan cluster Anda ke project fleet yang ditentukan.

  • Saat Anda membuat cluster pengguna menggunakan alat standar (konsol, Google Cloud CLI, atau Terraform), cluster tersebut akan otomatis menjadi anggota fleet dalam project yang Anda tentukan.

Anggota fleet di luar Google Cloud seperti GKE di VMware ditampilkan di konsol dalam project host fleet Anda, bersama dengan cluster armada lainnya seperti GKE di Google Cloud. Kemampuan pengelolaan GKE di VMware 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. Jika fitur ini tidak diaktifkan, Anda hanya dapat mengelola siklus proses cluster menggunakan gkectl di workstation admin.

Lihat cluster terdaftar

Semua cluster fleet Anda akan ditampilkan di halaman ringkasan cluster Google Kubernetes Engine di konsol. Ini memberi Anda ringkasan tentang seluruh fleet dan, untuk GKE di VMware, Anda dapat 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 vm GKE di VMware 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.

    Daftar cluster GKE Enterprise

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

Menyiapkan autentikasi

Seperti yang dijelaskan sebelumnya, semua cluster fleet akan muncul di daftar cluster GKE dan GKE Enterprise di konsol. Namun, untuk melihat detail lebih lanjut seperti node dan beban kerja (serta melakukan tugas pengelolaan siklus proses cluster jika fitur ini diaktifkan), pengguna 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 pengguna 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 Anda, tetapi Anda harus mengonfigurasi autentikasi untuk pengguna lain.

    Login dengan identitas Google adalah pendekatan paling sederhana untuk autentikasi di konsol, terutama jika Anda mencoba GKE di VMware dengan penginstalan minimal. Oleh karena itu, kami telah menjelaskan cara menyiapkannya secara lebih mendetail di bawah di bagian Menyiapkan autentikasi identitas Google.

  • OpenID Connect (OIDC): Opsi ini memungkinkan pengguna login ke cluster dari konsol menggunakan identitas mereka 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 Identity and Access Management (IAM). Peran IAM ini diperlukan, apa pun metode autentikasi yang dipilih. Untuk mengelola siklus proses cluster di konsol, Anda perlu memberikan beberapa peran IAM.

  • 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/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/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 FLEET_HOST_PROJECT_ID \
    --member=MEMBER \
    --role=roles/container.viewer

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

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

dengan:

  • FLEET_HOST_PROJECT_ID adalah project host fleet. Untuk cluster yang dibuat menggunakan gkectl, 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 menggunakan alat standar (konsol, gcloud CLI, atau Terraform) otomatis terdaftar di 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 gkectl, ikuti langkah-langkah dalam Mengonfigurasi cluster pengguna yang akan dikelola oleh GKE On-Prem API. Jika pengelolaan siklus proses cluster diaktifkan, Anda dapat melakukan tugas-tugas berikut dari konsol:

Menyiapkan autentikasi identitas Google

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

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 menggunakan alat standar untuk membuat cluster pengguna, Anda mungkin sudah diberi kebijakan RBAC yang sesuai, yang memberi Anda akses administratif penuh ke cluster tersebut. GKE On-Prem API menambahkan Akun Google Anda secara otomatis sebagai administrator 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 di perintah cluster create.

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

Cluster pengguna yang dibuat menggunakan gkectl tidak memberi Anda kebijakan RBAC untuk mengelola cluster menggunakan konsol. Anda perlu menambahkan diri Anda sendiri setelah cluster dibuat. Apa pun alat yang digunakan untuk membuat cluster, Anda dapat menambahkan alat 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 tersebut memerlukan akses ke kubeconfig dan konteks cluster (yang biasanya hanya ada di workstation admin Anda). Dengan perintah generate-gateway-rbac, Anda dapat menyesuaikan kebijakan RBAC, tetapi alamat email pengguna tidak akan ditampilkan sebagai administrator di bagian Cluster Details pada konsol.

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

generate-gateway-rbac

  1. Hubungkan ke workstation admin.

  2. Jalankan perintah berikut untuk mengupdate komponen:

    gcloud components update
    
  3. 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=FLEET_HOST_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 di VMware, 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 memberikan akses hanya baca, tentukan clusterrole/view. Anda juga dapat membuat 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.
    • FLEET_HOST_PROJECT_ID: project ID dari project host fleet.
    • KUBECONFIG_PATH: jalur lokal tempat kubeconfig Anda yang berisi entri untuk cluster disimpan.
    • 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.

update

  1. Jalankan perintah berikut untuk mengupdate komponen:

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

    gcloud container vmware clusters update USER_CLUSTER_NAME \
      --admin-users YOUR_GOOGLE_ACCOUNT \
      --admin-users ADMIN_GOOGLE_ACCOUNT_1 \
    

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

Konsol

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

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

    Buka cluster GKE

  2. Pilih project Google Cloud tempat cluster pengguna berada.

  3. Di daftar cluster, klik nama cluster, lalu klik Detail selengkapnya di panel Detail.

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

  5. Setelah selesai menambahkan pengguna, klik Selesai.

Informasi selengkapnya