33

学习 Kubernetes(十五):Secret

 5 years ago
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.
neoserver,ios ssh client

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 下。

参考


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK