一个 Secret 可以包含 Pod 访问数据库所需的用户凭证。 例如,由用户名和密码组成的数据库连接字符串
kubectl 管理 Secret
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| echo -n 'admin' > ./username.txt echo -n '1f2d1e2e67df' > ./password.txt
kubectl create secret generic db-user-pass \ --from-file=./username.txt \ --from-file=./password.txt
kubectl create secret generic db-user-pass \ --from-literal=username=devuser \ --from-literal=password='S!B\*d$zDsb='
kubectl describe secrets db-user-pass kubectl get secret db-user-pass -o jsonpath='{.data}'
kubectl get secret db-user-pass -o jsonpath='{.data.password}' | base64 --decode
kubectl delete secret db-user-pass
|
配置文件管理secret
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| apiVersion: v1 kind: Secret metadata: name: mysecret type: Opaque data: username: YWRtaW4= password: MWYyZDFlMmU2N2Rm
apiVersion: v1 kind: Secret metadata: name: mysecret type: Opaque stringData: config.yaml: | apiUrl: "https://my.api.com/api/v1" username: admin password: password
kubectl apply -f ./secret.yaml
|
Kustomize 管理 Secret
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
secretGenerator: - name: db-user-pass files: - uname=username.txt - pass=password.txt
secretGenerator: - name: db-user-pass literals: - username=admin - password=1f2d1e2e67df
secretGenerator: - name: db-user-pass envs: - .env.secret
kubectl apply -k .
|
管理secrets: https://kubernetes.io/zh/docs/tasks/configmap-secret/