Dokumen ini menunjukkan cara mengonfigurasi kredensial yang disiapkan untuk cluster pengguna di Google Distributed Cloud.
Dengan kredensial yang disiapkan, Anda dapat menyimpan kredensial untuk cluster pengguna di Secrets di cluster admin. Hal ini memberikan elemen keamanan, karena Anda tidak perlu menyimpan sandi dan kunci akun layanan di workstation admin saat membuat cluster pengguna.
Anda menyiapkan Secret di cluster admin terlebih dahulu. Kemudian, saat membuat cluster pengguna, Anda dapat menentukan bahwa kredensial tertentu harus diambil dari Secret yang disiapkan di cluster admin. Anda juga dapat menggunakan Secret yang telah disiapkan saat merotasi kredensial di cluster pengguna.
Sebelum memulai
Buat cluster admin jika Anda belum memilikinya.
Ringkasan prosedur
Isi file konfigurasi Secrets.
Di cluster admin, buat grup Secret. Setiap grup Secret berada di namespace Kubernetes-nya sendiri.
Buat cluster pengguna. Dalam file konfigurasi cluster pengguna, tunjukkan bahwa Anda ingin kredensial diambil dari Secret di namespace tertentu di cluster admin.
Buat grup Secret tambahan dan versi Secret tambahan sesuai kebutuhan.
Perbarui kredensial untuk cluster pengguna yang ada sesuai kebutuhan.
Buat cluster pengguna tambahan sesuai keinginan. Di setiap file konfigurasi cluster pengguna, tentukan namespace Secrets. Anda juga dapat menentukan versi Secret yang ingin digunakan untuk kredensial tertentu.
Mengisi file konfigurasi secret
Buat template untuk file konfigurasi Secrets:
gkectl create-config secrets
Perintah sebelumnya menghasilkan file bernama secrets.yaml
. Anda dapat mengubah
nama dan lokasi file ini jika ingin.
Pelajari file konfigurasi dengan membaca dokumen File konfigurasi Secrets. Sebaiknya biarkan dokumen ini terbuka di tab atau jendela terpisah.
Di file konfigurasi Secrets, isi nilai yang relevan untuk situasi Anda. Anda harus mengisi nilai untuk namespace
yang dimulai dengan
gke-onprem-secrets-
.
Berikut adalah contoh file konfigurasi Secret yang memiliki satu grup Secret. Grup ini memiliki nilai untuk kredensial vCenter dan empat kunci akun layanan:
apiVersion: v1 kind: ClusterSecrets secretGroups: - namespace: "gke-onprem-secrets-user-cluster-1" secrets vCenter: username: "my-vcenter-account" password: "U$icUKEW#INE" componentAccessServiceAccount: serviceAccountKeyPath: "my-key-folder/component-access-key.json" registerServiceAccount: serviceAccountKeyPath: "my-key-folder/connect-register-key.json" stackdriverServiceAccount: serviceAccountKeyPath: "my-key-folder/log-mon-key.json" cloudAuditLoggingServiceAccount: serviceAccountKeyPath: "my-key-folder/audit-log-key.json"
Membuat Secret yang disiapkan
Buat Secret yang disiapkan di cluster admin Anda:
gkectl prepare secrets --kubeconfig ADMIN_CLUSTER_KUBECONFIG --secret-config SECRETS_CONFIG
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig cluster admin
SECRETS_CONFIG: jalur file konfigurasi Secrets Anda
Melihat Secret yang Anda siapkan
Cantumkan Secret yang disiapkan di cluster admin:
gkectl list secrets --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Contoh output:
The following secrets have been found: - namespace: gke-onprem-secrets-user-cluster-1 - secrets with name prefix: component-access-sa-creds name: component-access-sa-creds.1, version 1, age: 58s - secrets with name prefix: cloud-audit-logging-service-account-creds name: cloud-audit-logging-service-account-creds.1, version: 1, age: 58s - secrets with name prefix: register-service-account-creds name: register-service-account-creds.1, version: 1, age: 58s - secrets with name prefix: stackdriver-service-account-creds name: stackdriver-service-account-creds.1, version: 1, age: 58s - secrets with name prefix: vsphere-creds name: vsphere-creds.1, version: 1, age: 58s
Anda juga dapat menjalankan kubectl get secrets
untuk mencantumkan Secret di namespace. Misalnya:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get secrets --namespace gke-onprem-secrets-user-cluster-1
Contoh output:
component-access-sa-creds ... cloud-audit-logging-service-account-creds ... register-service-account-creds.1 ... stackdriver-service-account-creds.1 ... vsphere-creds.1 ...
Pada output sebelumnya, Anda dapat melihat bahwa setiap nama Secret memiliki ekstensi yang menunjukkan versi Secret. Dalam contoh ini, semua Secret memiliki versi 1.
Membuat cluster pengguna
Ikuti petunjuk di Membuat cluster pengguna.
Saat Anda mengisi file konfigurasi cluster pengguna, masukkan nilai untuk
preparedSecrets.namespace
. Nilai ini harus cocok dengan namespace yang Anda
tentukan sebelumnya dalam file konfigurasi Secrets.
Contoh:
preparedSecrets: namespace: "gke-onprem-secrets-user-cluster-1"
Dalam file konfigurasi cluster pengguna, jangan tentukan nilai untuk kolom berikut. Kolom ini tidak diperlukan, karena Google Distributed Cloud mendapatkan kredensial dan kunci dari Secret yang Anda siapkan.
vCenter.credentials.fileRef.path
componentAccessServiceAccountKeyPath
loadBalancer.f5BigIP.credentials.fileRef.path
gkeConnect.registerServiceAccountKeyPath
stackdriver.serviceAccountKeyPath
usageMetering.bigQueryServiceAccountKeyPath
cloudAuditLogging.serviceAccountKeyPath
privateRegistry.credentials.fileRef.path
Dalam file konfigurasi cluster pengguna, tentukan versi untuk Secret yang telah disiapkan yang ingin Anda gunakan. Berikut adalah contoh yang menentukan versi 1 untuk setiap lima Secret:
vCenter: credentials: secretRef: version "1" ... componentAccessServiceAccountKey: secretRef: version: "1" ... gkeConnect: registerServiceAccountKey: secretRef: version: "1" ... stackdriver: serviceAccountKey: secretRef: version: "1" ... cloudAuditLogging: serviceAccountKey: secretRef: version: "1"
Nilai untuk version
harus berupa string bilangan bulat atau string "latest". Jika Anda tidak menentukan nilai untuk version
, versi terbaru akan digunakan.
Selesaikan pembuatan cluster pengguna seperti yang dijelaskan dalam Membuat cluster pengguna.
Membuat Secret tambahan yang telah disiapkan
Bagian ini menunjukkan cara membuat versi 2 dari beberapa Secret di namespace yang ada.
Buat file konfigurasi Secrets baru bernama secrets-2.yaml
. Tentukan
namespace yang ada, dan berikan kredensial untuk Secret yang dipilih.
Contoh:
apiVersion: v1 kind: ClusterSecrets secretGroups: - namespace: "gke-onprem-secrets-user-cluster-1" secrets: stackdriverServiceAccount: serviceAccountKeyPath: "log-mon-sa-2.json" cloudAuditLoggingServiceAccount: serviceAccountKeyPath: "audit-log-sa-2.json"
Contoh sebelumnya memberikan jalur kunci untuk Secret berikut di
namespace gke-onprem-secrets-user-cluster-1
.
- Versi 2 Secret
stackdriver-service-account-creds
- Versi 2 Secret
cloud-audit-logging-service-account-creds
Buat Secret baru:
gkectl prepare secrets --kubeconfig ADMIN_CLUSTER_KUBECONFIG --secret-config secrets-2.yaml
Cantumkan Secret yang disiapkan di cluster admin:
gkectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG list secrets
Contoh output:
The following secrets have been found: - namespace: gke-onprem-secrets-user-cluster-1 - secrets with name prefix: component-access-sa-creds name: component-access-sa-creds.1, version 1, age: 11h - secrets with name prefix: cloud-audit-logging-service-account-creds name: cloud-audit-logging-service-account-creds.1, version: 1, age: 11h name: cloud-audit-logging-service-account-creds.2, version: 2, age: 33m - secrets with name prefix: register-service-account-creds name: register-service-account-creds.1, version: 1, age: 11h - secrets with name prefix: stackdriver-service-account-creds name: stackdriver-service-account-creds.1, version: 1, age: 11h name: stackdriver-service-account-creds.2, version: 2, age: 33m - secrets with name prefix: vsphere-creds name: vsphere-creds.1, version: 1, age: 11h
Pada output sebelumnya, Anda dapat melihat bahwa ada dua versi
Secret stackdriver-service-account-creds
dan dua versi
Secret cloud-audit-logging-service-account-creds
.
Memutar kredensial untuk cluster pengguna
Bagian ini menunjukkan cara merotasi kredensial yang dipilih untuk cluster pengguna yang ada.
Sebelum merotasi kredensial, periksa versi Secret saat ini yang digunakan di cluster:
gkectl list secrets cluster --cluster-name USER_CLUSTER_NAME kubeconfig ADMIN_CLUSTER_KUBECONFIG
Contoh output:
The following prepared secrets have been used for cluster "user-cluster-1": - namespace: gke-onprem-secrets-user-cluster-1 secret: vsphere-creds.1, version: 1 secret: f5-creds.1, version: 1 secret: component-access-sa-creds.1, version 1 secret: register-service-account-creds.1, version: 1 secret: stackdriver-service-account-creds.1, version: 1 secret: cloud-audit-logging-service-account-creds.1, version: 1
Salin file konfigurasi cluster pengguna ke file bernama user-cluster-update.yaml
.
Di user-cluster-update.yaml
, tambahkan bagian serviceAccountKey
. Misalnya, contoh berikut memiliki bagian serviceAccountKey
di bagian stackdriver
dan
cloudAuditLogging
:
stackdriver: projectID: "my-project-123" clusterLocation: "us-central1" serviceAccountKey: secretRef: version: "2" cloudAuditLogging: projectID: "my-project-123" clusterLocation: "us-central-1" serviceAccountKey: secretRef: version: "latest"
Contoh sebelumnya menentukan bahwa saat cluster pengguna diperbarui, cluster tersebut akan menggunakan:
Versi 2 Secret
stackdriver-service-account-creds
Versi terbaru Secret
cloud-audit-logging-service-account-creds
. Dalam contoh ini, versinya adalah 2.
Perbarui kredensial untuk cluster pengguna:
gkectl update credentials stackdriver --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config user-cluster-2.yaml gkectl update credentials cloudauditlogging --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config user-cluster-2.yaml
Sekarang cluster pengguna menggunakan Secret yang disiapkan berikut:
- Versi 1 dari
vsphere-creds
- Versi 1 dari
component-access-sa-creds
- Versi 1 dari
register-service-account-creds
- Versi 2 dari
stackdriver-service-account-creds
- Versi 2 dari
cloud-audit-logging-service-account-creds
Membuat Secret dan cluster pengguna tambahan
Jika Anda berencana membuat cluster pengguna tambahan, pikirkan cara Anda ingin mengatur Secret yang telah disiapkan. Sebaiknya buat namespace terpisah di cluster admin untuk setiap cluster pengguna. Atau, Anda mungkin ingin membagikan namespace Secret yang telah disiapkan yang sama untuk beberapa atau semua cluster pengguna.
Misalnya, Alice, Bob, dan Carol masing-masing akan memiliki cluster pengguna. Anda dapat membuat tiga grup Secret seperti yang ditunjukkan dalam contoh ini:
apiVersion: v1 kind: ClusterSecrets secretGroups: - namespace: "gke-onprem-secrets-alice" secrets: vCenter: username: "alice" password: "zC7r^URDPq2t" componentAccessServiceAccount: serviceAccountKeyPath: "component-access-sa-a.json" registerServiceAccount: serviceAccountKeyPath: "register-sa-a.json" stackdriverServiceAccount: serviceAccountKeyPath: "log-mon-sa-a.json" cloudAuditLoggingServiceAccount: serviceAccountKeyPath: "audit-log-sa-a.json" - namespace: "gke-onprem-secrets-bob" secrets: vCenter: username: "bob" password: "zC8r^URDPq2t" componentAccessServiceAccount: serviceAccountKeyPath: "component-access-sa-b.json" registerServiceAccount: serviceAccountKeyPath: "register-sa-b.json" stackdriverServiceAccount: serviceAccountKeyPath: "log-mon-sa-b.json" cloudAuditLoggingServiceAccount: serviceAccountKeyPath: "audit-log-sa-b.json" - namespace: "gke-onprem-secrets-carol" secrets: vCenter: username: "carol" password: "zC9r^URDPq2t" componentAccessServiceAccount: serviceAccountKeyPath: "component-access-sa-c.json" registerServiceAccount: serviceAccountKeyPath: "register-sa-c.json" stackdriverServiceAccount: serviceAccountKeyPath: "log-mon-sa-c.json" cloudAuditLoggingServiceAccount: serviceAccountKeyPath: "audit-log-sa-c.json"
Seiring waktu, Anda dapat membuat versi tambahan Secret di setiap grup Secret.
Dalam file konfigurasi cluster pengguna, berikan nilai untuk
serviceAccountKey.secretRef.version
guna menentukan versi Secret yang ingin Anda gunakan. Anda dapat menetapkan nilai ke "latest"
, string kosong, atau
string bilangan bulat.
Misalnya, semua Secret Anda memiliki versi 1, 2, dan 3. Dan anggap saja ini adalah bagian dari file konfigurasi cluster pengguna untuk Alice.
apiVersion: v1 kind: UserCluster name: "user-cluster-alice" preparedSecrets: namespace: "gke-onprem-secrets-alice" ... vCenter: credentials: gkeConnect: projectID: "project-a" serviceAccountKey: secretRef: version: "2" stackdriver: projectID: "project-a" clusterLocation: "us-central1" serviceAccountKey: secretRef: version: "latest" cloudAuditLogging: projectID: "project-a" clusterLocation: "us-central-1" serviceAccountKey: secretRef: version: ""
Dalam contoh sebelumnya, kita dapat melihat:
Tidak ada
secretRef
yang ditentukan untuk vCenter, sehingga cluster akan menggunakan versi terbaru Secretvsphere-creds
di namespacegke-onprem-secrets-alice
.Cluster akan menggunakan Secret
register-service-account-creds
versi 2 di namespacegke-onprem-secrets-alice
.Cluster akan menggunakan versi terbaru secret
stackdriver-service-account-creds
di namespacegke-onprem-secrets-alice
. Dalam contoh ini, versinya adalah 3.Versi untuk
cloudAuditLogging
adalah string kosong, sehingga cluster akan menggunakan Secretcloud-audit-logging-service-account-creds
versi terbaru di namespacegke-onprem-secrets-alice
. Dalam contoh ini, versinya adalah versi 3.Tidak ada
secretRef.version
yang ditentukan untuk akun layanan akses komponen, sehingga cluster akan menggunakan versi terbaru.
Menghapus Secret yang disiapkan
Untuk mencantumkan semua Secret yang disiapkan dan namespace-nya:
gkectl list secrets --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Jika namespace Secret yang disiapkan tidak digunakan oleh cluster pengguna mana pun, Anda dapat menghapus namespace tersebut.
Untuk menghapus namespace Secret yang disiapkan dan semua Secret di dalamnya:
gkectl delete secret –namespace PREPARED_SECRET_NAMESPACE \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Jika Secret yang disiapkan individu tidak digunakan oleh cluster pengguna mana pun, Anda dapat menghapus Secret tersebut.
Untuk menghapus Secret yang disiapkan satu per satu:
gkectl delete secret –namespace PREPARED_SECRET_NAMESPACE \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --secret-name SECRET
Dokumen terkait
- File konfigurasi secret
- File konfigurasi cluster pengguna
- Membuat cluster pengguna
- Membuat akun layanan