学习 Kubernetes(十五):Secret
source link: https://www.tuicool.com/articles/y6FRveI
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Secret 是 Kubernetes 用于保存敏感配置的资源。如密码、密钥、证书等。
创建 Secret
命令行
从文件创建 Secret:
kubectl create secret generic my-secret --from-file=secret-file
以字面量创建 Secret:
echo -n 'secret' | base64
获取字符 Base64 编码。:point_up_2:的:chestnut:中,字符 'secret'
经过 Base64 编码,值为 c2VjcmV0
。
注意: echo
命令需要 -n
参数来去掉字符末尾的换行符。
kubectl create secret generic my-secret --from-literal=secret=c2VjcmV0
YAML 文件
使用 YAML/JSON 配置文件,data 键值对中的值同样需要经过 Base64 编码。
定义 Secret 配置文件:
apiVersion: v1 kink: Secret metadata: name: my-secret data: secret: c2VjcmV0 secret-file: | dGhpcyBpcyBhIHNlY3JldC4=
使用 kubectl create 创建 Secret:
kubectl create -f my-secret.yml
使用 Secret
在 Pod 中,可以以环境变量和 Volumn 两种方式使用 Secret。
apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-pod image: my-image env: - name: SECRET valueFrom: secretKeyRef: name: my-secret key: secret volumeMounts: - mountPath: /app/secret name: my-secret volumes: - name: my-secret secret: secretName: my-secret items: - key: secret-file path: secret-file
上面的:chestnut:中,环境变量 SECRET 来自 Secret 的 secret,Secret 文件 secret-file 装载到目录 /app/secret 下。
参考
- 《Kubernetes in Action》
- Secrets - Kubernetes
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK