Dokumen ini menjelaskan cara membuat cluster admin dan pengguna yang dibuat dengan software Google Distributed Cloud di bare metal tersedia untuk pengelolaan di konsolGoogle Cloud . Kemampuan pengelolaan cluster mencakup kemampuan untuk 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 beberapa cluster dan workload-nya. Setiap fleet cluster dikaitkan dengan project host fleet.
Semua cluster terdaftar ke fleet pada saat pembuatan:
Saat membuat cluster menggunakan
bmctl
, Anda menentukan project host fleet di bagiangkeConnect
file konfigurasi cluster. Cluster akan menjadi anggota fleet dari project yang ditentukan.Saat Anda membuat cluster admin atau pengguna dengan klien API GKE On-Prem standar (konsol, Google Cloud CLI, atau Terraform), cluster tersebut akan menjadi anggota fleet di project yang ditentukan.
Anggota fleet di luar Google Cloud, seperti Google Distributed Cloud, ditampilkan di konsol dalam project host fleet Anda, bersama dengan cluster fleet 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 workload serta detail lainnya.
Jika Anda telah mengaktifkan pengelolaan siklus proses cluster untuk cluster, Anda dapat mengupgrade cluster admin dan pengguna menggunakan konsol, dan Anda dapat menggunakan konsol untuk mengupdate dan menghapus cluster pengguna. Jika fitur ini tidak diaktifkan, Anda hanya dapat mengelola siklus proses cluster menggunakan
bmctl
di workstation admin Anda.
Melihat cluster terdaftar
Semua cluster Anda ditampilkan di halaman GKE clusters di konsol. Hal ini memberi Anda ringkasan seluruh armada dan, untuk Google Distributed Cloud, memungkinkan Anda melihat cluster mana yang dikelola oleh GKE On-Prem API.
Untuk melihat cluster fleet Anda:
Di konsol, buka halaman ringkasan cluster Google Kubernetes Engine.
Pilih project Google Cloud .
Jika Bare metal ditampilkan di kolom Type, cluster dikelola oleh GKE On-Prem API. Perhatikan bahwa hanya cluster admin dan pengguna yang dapat dikelola oleh GKE On-Prem API.
Jika Eksternal ditampilkan di kolom Jenis, 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 perlu melakukan langkah-langkah berikut:
Menyiapkan autentikasi
Seperti yang dijelaskan sebelumnya, semua cluster muncul di halaman cluster GKE di konsol. Namun, untuk melihat detail selengkapnya seperti node dan workload (serta melakukan tugas pengelolaan siklus proses cluster jika fitur diaktifkan), Anda harus login dan melakukan autentikasi ke cluster. Untuk melakukannya, cluster Anda harus disiapkan dengan salah satu metode autentikasi berikut:
Identitas Google: Opsi ini memungkinkan Anda login menggunakan Google Cloud identitas Anda, 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 Anda 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, 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 identitas mereka dari penyedia identitas OIDC pihak ketiga seperti Okta atau Microsoft AD FS. Anda mungkin ingin menggunakan opsi ini jika pengguna Anda 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 Anda dalam panduan berikut:
Mengonfigurasi cluster untuk GKE Identity Service dengan OIDC: Panduan ini menunjukkan cara menyiapkan autentikasi OIDC di cluster berdasarkan cluster.
Menyiapkan GKE Identity Service untuk fleet: Opsi ini memungkinkan Anda menyiapkan OIDC di tingkat fleet.
Token pembawa: Jika solusi yang disediakan Google sebelumnya tidak sesuai untuk organisasi Anda, Anda dapat menyiapkan autentikasi menggunakan akun layanan Kubernetes dan menggunakan token pembawanya untuk login. Untuk mengetahui detailnya, lihat Menyiapkan menggunakan token bearer.
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, minimal, Anda perlu 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
. Peranroles/gkeonprem.admin
memberikan akses administratif kepada pengguna ke GKE On-Prem API, yang digunakan konsol untuk mengelola siklus proses cluster. Untuk mengetahui detail izin yang disertakan dalam peran ini, lihat Peran GKE on-prem 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 menggunakanbmctl
, ini adalah project yang Anda konfigurasi di bagiangkeConnect
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 formatuser: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 didaftarkan ke GKE On-Prem API, yang memungkinkan Anda melakukan tugas pengelolaan siklus proses cluster di konsol. Di Google Distributed Cloud 1.16 dan yang lebih tinggi, saat Anda membuat cluster pengguna dan admin menggunakan bmctl
, cluster tersebut didaftarkan di GKE On-Prem API secara default. Jika Anda perlu mendaftarkan cluster ke
GKE On-Prem API, ikuti langkah-langkah di
Mengonfigurasi cluster agar 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 GKE clusters.
Pengguna harus ditambahkan ke kebijakan kontrol akses berbasis peran (RBAC) Kubernetes yang diperlukan gateway koneksi untuk mengakses server Kubernetes API cluster menggunakan Connect Agent.
Mengonfigurasi otorisasi RBAC
Server Kubernetes API setiap cluster harus dapat mengizinkan permintaan yang berasal dari konsol. Untuk mengonfigurasi otorisasi, Anda harus mengonfigurasi kebijakan role-based access control (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 membuat cluster pengguna menggunakan gcloud CLI, dan Akun Google Anda ditentukan dalam flag
--admin-users
di perintah pembuatan cluster.Anda membuat cluster pengguna menggunakan Terraform dan Akun Google Anda ditentukan di kolom
authorization.admin_users.username
.Anda 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. Dua
perintah gcloud
berbeda diberikan.
Perintah
gcloud ... generate-gateway-rbac
harus dijalankan di workstation admin Anda karena perintah tersebut memerlukan akses ke kubeconfig dan konteks cluster (yang biasanya hanya ada di workstation admin Anda). Perintahgenerate-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 mana pun yang memiliki akses ke GKE On-Prem API.
Perhatikan bahwa jika Anda membuat cluster admin di konsol Google Cloud , Anda
diberi akses hanya baca ke cluster. Jika Anda ingin diberi peran
clusterrole/cluster-admin
, seseorang dengan peran tersebut harus menambahkan
Anda menggunakan perintah gcloud ... generate-gateway-rbac
.
generate-gateway-rbac
Untuk menerapkan kebijakan RBAC kepada pengguna, lakukan langkah-langkah berikut di workstation admin Anda:
Jalankan perintah berikut untuk mengupdate komponen (jika diperlukan):
gcloud components update
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 fleetnya. Di Google Distributed Cloud, nama keanggotaan dan nama cluster sama.
- ROLE: peran Kubernetes yang ingin Anda berikan kepada pengguna di
cluster. Untuk memberikan akses penuh kepada pengguna ke setiap resource di cluster
di semua namespace, tentukan
clusterrole/cluster-admin
. Untuk memberikan akses hanya baca, tentukanclusterrole/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 beri izin, sebagai
daftar yang dipisahkan koma. Contoh:
--users=222larabrown@gmail.com,test-acct@test-project.iam.gserviceaccount.com
. - PROJECT_ID: project ID project host fleet.
- KUBECONFIG_PATH: jalur lokal file kubeconfig Anda yang berisi entri untuk cluster.
KUBECONFIG_CONTEXT: konteks cluster seperti yang muncul di 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 sesuatu seperti berikut di akhir output, yang dipangkas 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 connect gateway.
Untuk mengetahui detail selengkapnya tentang perintah
generate-gateway-rbac
, lihat panduan referensi gcloud CLI.
update
Jalankan perintah berikut untuk mengupdate komponen:
gcloud components update
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 dalam perintah karena perintah akan mengganti daftar pemberian izin dengan pengguna yang Anda tentukan dalam perintah.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 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 Anda:
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] ...
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 cluster admin atau mandiri), ganti KUBECONFIG dengan jalur ke file kubeconfig cluster. 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:
Di konsol, buka halaman ringkasan cluster Google Kubernetes Engine.
Pilih project Google Cloud tempat cluster pengguna berada.
Di daftar cluster, klik nama cluster, lalu klik Lihat detail di panel Detail.
Di bagian Otorisasi, klik kolom Pengguna admin dan masukkan alamat email setiap pengguna.
Setelah selesai menambahkan pengguna, klik Selesai.
Informasi selengkapnya
- Ringkasan pengelolaan fleet
- Menggunakan cluster dari Google Cloud konsol
- Ringkasan Connect
- Ringkasan Connect Agent