์ด ๋ฌธ์์์๋ Google Distributed Cloud์์ ์ฌ์ฉ์ ํด๋ฌ์คํฐ์ ๋ํ ์ค๋น๋ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
์ค๋น๋ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๊ฐ ์์ผ๋ฉด ๊ด๋ฆฌ์ ํด๋ฌ์คํฐ์ ๋ณด์ ๋น๋ฐ์ ์ฌ์ฉ์ ํด๋ฌ์คํฐ์ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ฉ์ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค ๋ ๋น๋ฐ๋ฒํธ ๋ฐ ์๋น์ค ๊ณ์ ํค๋ฅผ ๊ด๋ฆฌ์ ์ํฌ์คํ ์ด์ ์ ๋ณด๊ดํ ํ์๊ฐ ์์ผ๋ฏ๋ก ํ๋์ ๋ณด์ ์์๊ฐ ์ ๊ณต๋ฉ๋๋ค.
๋ฏธ๋ฆฌ ๊ด๋ฆฌ์ ํด๋ฌ์คํฐ์์ ๋ณด์ ๋น๋ฐ์ ์ค๋นํฉ๋๋ค. ๊ทธ๋ฐ ํ ์ฌ์ฉ์ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค ๋ ๊ด๋ฆฌ์ ํด๋ฌ์คํฐ์ ์ค๋น๋ ๋ณด์ ๋น๋ฐ์์ ํน์ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋๋ก ์ง์ ํ ์ ์์ต๋๋ค. ๋ํ ์ฌ์ฉ์ ํด๋ฌ์คํฐ์์ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ํํ ๋ ์ค๋น๋ ๋ณด์ ๋น๋ฐ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
์์ํ๊ธฐ ์ ์
์์ง ๋ง๋ค์ง ์์์ผ๋ฉด ๊ด๋ฆฌ์ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ญ๋๋ค.
์ ์ฐจ ๊ฐ์
๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ํ์ผ์ ์์ฑํฉ๋๋ค.
๊ด๋ฆฌ์ ํด๋ฌ์คํฐ์์ ๋ณด์ ๋น๋ฐ ๊ทธ๋ฃน์ ๋ง๋ญ๋๋ค. ๊ฐ ๋ณด์ ๋น๋ฐ ๊ทธ๋ฃน์ ์์ฒด Kubernetes ๋ค์์คํ์ด์ค์ ์์ต๋๋ค.
์ฌ์ฉ์ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ญ๋๋ค. ์ฌ์ฉ์ ํด๋ฌ์คํฐ ๊ตฌ์ฑ ํ์ผ์์ ๊ด๋ฆฌ์ ํด๋ฌ์คํฐ์ ํน์ ๋ค์์คํ์ด์ค์ ์๋ ๋ณด์ ๋น๋ฐ์์ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋๋ก ํ์ํฉ๋๋ค.
ํ์์ ๋ฐ๋ผ ์ถ๊ฐ ๋ณด์ ๋น๋ฐ ๊ทธ๋ฃน๊ณผ ์ถ๊ฐ ๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ๋ง๋ญ๋๋ค.
ํ์์ ๋ฐ๋ผ ๊ธฐ์กด ์ฌ์ฉ์ ํด๋ฌ์คํฐ์ ๋ํด ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ํ๋ ๋๋ก ์ถ๊ฐ ์ฌ์ฉ์ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ญ๋๋ค. ๊ฐ ์ฌ์ฉ์ ํด๋ฌ์คํฐ ๊ตฌ์ฑ ํ์ผ์ ๋ณด์ ๋น๋ฐ ๋ค์์คํ์ด์ค๋ฅผ ์ง์ ํฉ๋๋ค. ๋ํ ํน์ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด์ ์ฌ์ฉํ๋ ค๋ ๋ณด์ ๋น๋ฐ์ ๋ฒ์ ์ ์ง์ ํ ์ ์์ต๋๋ค.
๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ํ์ผ ์์ฑ
๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ํ์ผ์ ํ ํ๋ฆฟ์ ์์ฑํฉ๋๋ค.
gkectl create-config secrets
์ ๋ช
๋ น์ด๋ secrets.yaml
์ด๋ผ๋ ํ์ผ์ ์์ฑํฉ๋๋ค. ์ํ๋ ๊ฒฝ์ฐ ์ด ํ์ผ์ ์ด๋ฆ๊ณผ ์์น๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ํ์ผ ๋ฌธ์๋ฅผ ์ดํด๋ณด๊ณ ๊ตฌ์ฑ ํ์ผ์ ์์งํฉ๋๋ค. ์ด ๋ฌธ์๋ฅผ ๊ฐ๋ณ ํญ ๋๋ ์ฐฝ์ผ๋ก ์ด์ด ๋๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ํ์ผ์์ ํด๋น ์ํฉ์ ์ ํฉํ ๊ฐ์ ์
๋ ฅํฉ๋๋ค. gke-onprem-secrets-
๋ก ์์ํ๋ namespace
๊ฐ์ ์
๋ ฅํด์ผ ํฉ๋๋ค.
๋ค์์ ๋ณด์ ๋น๋ฐ ๊ทธ๋ฃน์ด ํ๋ ์๋ ๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ํ์ผ ์์์ ๋๋ค. ์ด ๊ทธ๋ฃน์๋ vCenter ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด์ ๋ํ ๊ฐ๊ณผ 4๊ฐ์ ์๋น์ค ๊ณ์ ํค๊ฐ ์์ต๋๋ค.
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"
์ค๋น๋ ๋ณด์ ๋น๋ฐ ๋ง๋ค๊ธฐ
๊ด๋ฆฌ์ ํด๋ฌ์คํฐ์ ์ค๋น๋ ๋ณด์ ๋น๋ฐ์ ๋ง๋ญ๋๋ค.
gkectl prepare secrets --kubeconfig ADMIN_CLUSTER_KUBECONFIG --secret-config SECRETS_CONFIG
๋ค์์ ๋ฐ๊ฟ๋๋ค.
ADMIN_CLUSTER_KUBECONFIG: ๊ด๋ฆฌ์ ํด๋ฌ์คํฐ kubeconfig ํ์ผ์ ๊ฒฝ๋ก์ ๋๋ค.
SECRETS_CONFIG: ๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ํ์ผ์ ๊ฒฝ๋ก์ ๋๋ค.
์ค๋น๋ ๋ณด์ ๋น๋ฐ ๋ณด๊ธฐ
๊ด๋ฆฌ์ ํด๋ฌ์คํฐ์ ์ค๋น๋ ๋ณด์ ๋น๋ฐ์ ๋์ดํฉ๋๋ค.
gkectl list secrets --kubeconfig ADMIN_CLUSTER_KUBECONFIG
์ถ๋ ฅ ์์:
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
๋ํ kubectl get secrets
๋ฅผ ์คํํ์ฌ ๋ค์์คํ์ด์ค์ ๋ณด์ ๋น๋ฐ์ ๋์ดํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get secrets --namespace gke-onprem-secrets-user-cluster-1
์ถ๋ ฅ ์์:
component-access-sa-creds ... cloud-audit-logging-service-account-creds ... register-service-account-creds.1 ... stackdriver-service-account-creds.1 ... vsphere-creds.1 ...
์ ์ถ๋ ฅ์์ ๊ฐ ๋ณด์ ๋น๋ฐ ์ด๋ฆ์ ๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ๋ํ๋ด๋ ํ์ฅ์๊ฐ ํฌํจ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ด ์์์์ ๋ชจ๋ ๋ณด์ ๋น๋ฐ์ ๋ฒ์ ์ด 1์ ๋๋ค.
์ฌ์ฉ์ ํด๋ฌ์คํฐ ๋ง๋ค๊ธฐ
์ฌ์ฉ์ ํด๋ฌ์คํฐ ๋ง๋ค๊ธฐ์ ์๋ด๋ฅผ ๋ฐ๋ฆ ๋๋ค.
์ฌ์ฉ์ ํด๋ฌ์คํฐ ๊ตฌ์ฑ ํ์ผ์ ์์ฑํ ๋ preparedSecrets.namespace
๊ฐ์ ์
๋ ฅํฉ๋๋ค. ์ด ๊ฐ์ ๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ํ์ผ์ ์ด์ ์ ์ง์ ํ ๋ค์์คํ์ด์ค์ ์ผ์นํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
preparedSecrets: namespace: "gke-onprem-secrets-user-cluster-1"
์ฌ์ฉ์ ํด๋ฌ์คํฐ ๊ตฌ์ฑ ํ์ผ์ ๋ค์ ํ๋์ ๊ฐ์ ์ง์ ํ์ง ๋ง์ธ์. Google Distributed Cloud๊ฐ ์ค๋น๋ ๋ณด์ ๋น๋ฐ์์ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด์ ํค๋ฅผ ๊ฐ์ ธ์ค๋ฏ๋ก ์ด๋ฌํ ํ๋๊ฐ ํ์ํ์ง ์์ต๋๋ค.
vCenter.credentials.fileRef.path
componentAccessServiceAccountKeyPath
loadBalancer.f5BigIP.credentials.fileRef.path
gkeConnect.registerServiceAccountKeyPath
stackdriver.serviceAccountKeyPath
usageMetering.bigQueryServiceAccountKeyPath
cloudAuditLogging.serviceAccountKeyPath
privateRegistry.credentials.fileRef.path
์ฌ์ฉ์ ํด๋ฌ์คํฐ ๊ตฌ์ฑ ํ์ผ์์ ์ฌ์ฉํ๋ ค๋ ์ค๋น๋ ๋ณด์ ๋น๋ฐ์ ๋ฒ์ ์ ์ง์ ํฉ๋๋ค. ๋ค์์ ๋ณด์ ๋น๋ฐ 5๊ฐ ๊ฐ๊ฐ์ ๋ํด ๋ฒ์ 1์ ์ง์ ํ๋ ์์์ ๋๋ค.
vCenter: credentials: secretRef: version "1" ... componentAccessServiceAccountKey: secretRef: version: "1" ... gkeConnect: registerServiceAccountKey: secretRef: version: "1" ... stackdriver: serviceAccountKey: secretRef: version: "1" ... cloudAuditLogging: serviceAccountKey: secretRef: version: "1"
version
๊ฐ์ ์ ์ ๋ฌธ์์ด ๋๋ 'latest' ๋ฌธ์์ด์ด์ด์ผ ํฉ๋๋ค. version
๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด ์ต์ ๋ฒ์ ์ด ์ฌ์ฉ๋ฉ๋๋ค.
์ฌ์ฉ์ ํด๋ฌ์คํฐ ๋ง๋ค๊ธฐ์ ์ค๋ช ๋ ๋๋ก ์ฌ์ฉ์ ํด๋ฌ์คํฐ ๋ง๋ค๊ธฐ๋ฅผ ์๋ฃํฉ๋๋ค.
์ค๋น๋ ์ถ๊ฐ ๋ณด์ ๋น๋ฐ ๋ง๋ค๊ธฐ
์ด ์น์ ์์๋ ๊ธฐ์กด ๋ค์์คํ์ด์ค์์ ์ผ๋ถ ๋ณด์ ๋น๋ฐ์ ๋ฒ์ 2๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
secrets-2.yaml
์ด๋ผ๋ ์๋ก์ด ๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ํ์ผ์ ๋ง๋ญ๋๋ค. ๊ธฐ์กด ๋ค์์คํ์ด์ค๋ฅผ ์ง์ ํ๊ณ ์ ํํ ๋ณด์ ๋น๋ฐ์ ๋ํด ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
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"
์ ์์๋ gke-onprem-secrets-user-cluster-1
๋ค์์คํ์ด์ค์์ ๋ค์ ๋ณด์ ๋น๋ฐ์ ํค ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค.
stackdriver-service-account-creds
๋ณด์ ๋น๋ฐ์ ๋ฒ์ 2cloud-audit-logging-service-account-creds
๋ณด์ ๋น๋ฐ์ ๋ฒ์ 2
์ ๋ณด์ ๋น๋ฐ์ ๋ง๋ญ๋๋ค.
gkectl prepare secrets --kubeconfig ADMIN_CLUSTER_KUBECONFIG --secret-config secrets-2.yaml
๊ด๋ฆฌ์ ํด๋ฌ์คํฐ์ ์ค๋น๋ ๋ณด์ ๋น๋ฐ์ ๋์ดํฉ๋๋ค.
gkectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG list secrets
์ถ๋ ฅ ์์:
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
์ ์ถ๋ ฅ์์๋ stackdriver-service-account-creds
๋ณด์ ๋น๋ฐ์ 2๊ฐ ๋ฒ์ ๊ณผ cloud-audit-logging-service-account-creds
๋ณด์ ๋น๋ฐ์ 2๊ฐ ๋ฒ์ ์ด ์๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ฌ์ฉ์ ํด๋ฌ์คํฐ์ ๋ํ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ์ํ
์ด ์น์ ์์๋ ๊ธฐ์กด ์ฌ์ฉ์ ํด๋ฌ์คํฐ์ ๋ํด ์ ํํ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ํํ๊ธฐ ์ ์ ํด๋ฌ์คํฐ์ ์ฌ์ฉ๋ ํ์ฌ ๋ณด์ ๋น๋ฐ ๋ฒ์ ์ ํ์ธํฉ๋๋ค.
gkectl list secrets cluster --cluster-name USER_CLUSTER_NAME kubeconfig ADMIN_CLUSTER_KUBECONFIG
์ถ๋ ฅ ์์:
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
์ฌ์ฉ์ ํด๋ฌ์คํฐ ๊ตฌ์ฑ ํ์ผ์ user-cluster-update.yaml
์ด๋ผ๋ ํ์ผ์ ๋ณต์ฌํฉ๋๋ค.
user-cluster-update.yaml
์์ serviceAccountKey
์น์
์ ์ถ๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์ ์์์๋ stackdriver
๋ฐ cloudAuditLogging
์๋์ serviceAccountKey
์น์
์ด ์์ต๋๋ค.
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"
์ ์์๋ ์ฌ์ฉ์ ํด๋ฌ์คํฐ๊ฐ ์ ๋ฐ์ดํธ๋ ๋ ๋ค์์ ์ฌ์ฉํ๋๋ก ์ง์ ํฉ๋๋ค.
stackdriver-service-account-creds
๋ณด์ ๋น๋ฐ์ ๋ฒ์ 2cloud-audit-logging-service-account-creds
๋ณด์ ๋น๋ฐ์ ์ต์ ๋ฒ์ . ์ด ์์์์๋ ๋ฒ์ 2์ ๋๋ค.
์ฌ์ฉ์ ํด๋ฌ์คํฐ์ ๋ํด ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
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
์ด์ ์ฌ์ฉ์ ํด๋ฌ์คํฐ์ ๋ค์๊ณผ ๊ฐ์ ์ค๋น๋ ๋ณด์ ๋น๋ฐ์ด ์ฌ์ฉ๋ฉ๋๋ค.
vsphere-creds
์ ๋ฒ์ 1component-access-sa-creds
์ ๋ฒ์ 1register-service-account-creds
์ ๋ฒ์ 1stackdriver-service-account-creds
์ ๋ฒ์ 2cloud-audit-logging-service-account-creds
์ ๋ฒ์ 2
์ถ๊ฐ ๋ณด์ ๋น๋ฐ ๋ฐ ์ฌ์ฉ์ ํด๋ฌ์คํฐ ๋ง๋ค๊ธฐ
์ถ๊ฐ ์ฌ์ฉ์ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค๋ ค๋ฉด ์ค๋น๋ ๋ณด์ ๋น๋ฐ์ ๊ตฌ์ฑํ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๊ฐ ์ฌ์ฉ์ ํด๋ฌ์คํฐ์ ๋ํด ๊ด๋ฆฌ์ ํด๋ฌ์คํฐ์ ๊ฐ๋ณ ๋ค์์คํ์ด์ค๋ฅผ ๋ง๋ค์ด์ผ ํ ์ ์์ต๋๋ค. ๋๋ ์ฌ๋ฌ ๋๋ ๋ชจ๋ ์ฌ์ฉ์ ํด๋ฌ์คํฐ์ ๋ํด ๋์ผํ ์ค๋น๋ ๋ณด์ ๋น๋ฐ ๋ค์์คํ์ด์ค๋ฅผ ๊ณต์ ํด์ผ ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด Alice, Bob, Carol์๊ฒ ๊ฐ๊ฐ ํ๋์ ์ฌ์ฉ์ ํด๋ฌ์คํฐ๊ฐ ํฌํจ๋๋ค๊ณ ๊ฐ์ ํด๋ณด์ธ์. ์ด ์์์ ํ์๋ ๊ฒ์ฒ๋ผ 3๊ฐ์ ๋ณด์ ๋น๋ฐ ๊ทธ๋ฃน์ ๋ง๋ค ์ ์์ต๋๋ค.
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"
์๊ฐ์ด ๊ฒฝ๊ณผ๋๋ฉด ๊ฐ ๋ณด์ ๋น๋ฐ ๊ทธ๋ฃน์์ ๋ณด์ ๋น๋ฐ์ ์ถ๊ฐ ๋ฒ์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
์ฌ์ฉ์ ํด๋ฌ์คํฐ ๊ตฌ์ฑ ํ์ผ์์ serviceAccountKey.secretRef.version
์ ๋ํ ๊ฐ์ ์ ๊ณตํ์ฌ ์ฌ์ฉํ๋ ค๋ ๋ณด์ ๋น๋ฐ์ ๋ฒ์ ์ ์ง์ ํฉ๋๋ค. ๊ฐ์ "latest"
, ๋น ๋ฌธ์์ด, ์ ์ ๋ฌธ์์ด๋ก ์ค์ ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ชจ๋ ๋ณด์ ๋น๋ฐ์ ๋ฒ์ 1, 2, 3์ด ์๋ค๊ณ ๊ฐ์ ํด๋ณด์ธ์. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด 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: ""
์ ์์์์๋ ๋ค์์ ํ์ธํ ์ ์์ต๋๋ค.
vCenter์ ๋ํด
secretRef
๊ฐ ์ง์ ๋์ง ์์์ผ๋ฏ๋ก ํด๋ฌ์คํฐ๊ฐvsphere-creds
๋ณด์ ๋น๋ฐ์ ์ต์ ๋ฒ์ ์gke-onprem-secrets-alice
๋ค์์คํ์ด์ค์ ์ฌ์ฉํฉ๋๋ค.ํด๋ฌ์คํฐ๊ฐ
gke-onprem-secrets-alice
๋ค์์คํ์ด์ค์์register-service-account-creds
๋ณด์ ๋น๋ฐ์ ๋ฒ์ 2๋ฅผ ์ฌ์ฉํฉ๋๋ค.ํด๋ฌ์คํฐ๊ฐ
gke-onprem-secrets-alice
๋ค์์คํ์ด์ค์์stackdriver-service-account-creds
๋ณด์ ๋น๋ฐ์ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ์ด ์์์์๋ ๋ฒ์ 3์ ๋๋ค.cloudAuditLogging
์ ๋ฒ์ ์ด ๋น ๋ฌธ์์ด์ด๋ฏ๋ก ํด๋ฌ์คํฐ๊ฐgke-onprem-secrets-alice
๋ค์์คํ์ด์ค์์cloud-audit-logging-service-account-creds
๋ณด์ ๋น๋ฐ์ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ์ด ์์์์๋ ๋ฒ์ 3์ ๋๋ค.๊ตฌ์ฑ์์ ์ก์ธ์ค ์๋น์ค ๊ณ์ ์
secretRef.version
์ด ์ง์ ๋์ง ์์์ผ๋ฏ๋ก ํด๋ฌ์คํฐ๊ฐ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค.
์ค๋น๋ ๋ณด์ ๋น๋ฐ ์ญ์
์ค๋น๋ ๋ชจ๋ ๋ณด์ ๋น๋ฐ๊ณผ ๋ค์์คํ์ด์ค๋ฅผ ๋์ดํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
gkectl list secrets --kubeconfig ADMIN_CLUSTER_KUBECONFIG
์ค๋น๋ ๋ณด์ ๋น๋ฐ ๋ค์์คํ์ด์ค๊ฐ ์ฌ์ฉ์ ํด๋ฌ์คํฐ์์ ์ฌ์ฉ๋์ง ์๋ ๊ฒฝ์ฐ ๋ค์์คํ์ด์ค๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค.
์ค๋น๋ ๋ณด์ ๋น๋ฐ ๋ค์์คํ์ด์ค์ ๊ทธ ์์ ๋ชจ๋ ๋ณด์ ๋น๋ฐ์ ์ญ์ ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
gkectl delete secret โnamespace PREPARED_SECRET_NAMESPACE \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
์ค๋น๋ ๊ฐ๋ณ ๋ณด์ ๋น๋ฐ์ด ์ฌ์ฉ์ ํด๋ฌ์คํฐ์์ ์ฌ์ฉ๋์ง ์๋ ๊ฒฝ์ฐ ๋ณด์ ๋น๋ฐ์ ์ญ์ ํ ์ ์์ต๋๋ค.
์ค๋น๋ ๊ฐ๋ณ ๋ณด์ ๋น๋ฐ์ ์ญ์ ํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
gkectl delete secret โnamespace PREPARED_SECRET_NAMESPACE \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --secret-name SECRET
๊ด๋ จ ๋ฌธ์
- ๋ณด์ ๋น๋ฐ ๊ตฌ์ฑ ํ์ผ
- ์ฌ์ฉ์ ํด๋ฌ์คํฐ ๊ตฌ์ฑ ํ์ผ
- ์ฌ์ฉ์ ํด๋ฌ์คํฐ ๋ง๋ค๊ธฐ
- ์๋น์ค ๊ณ์ ๋ง๋ค๊ธฐ