Secret管理

最近更新时间:2021-04-27 20:18:25

查看PDF

密码、令牌、密钥等敏感信息,可以使用Secret来管理和配置。Secret 是key-value 类型的键值对,可以通过控制台创建对应的Secret对象,也可以通过挂载数据卷、环境变量或在容器的运行命令中使用 Secret。

容器服务控制台操作说明

创建Secret

  1. 登录容器服务控制台
  2. 在左侧导航栏中,选择集群,进入集群管理页面。
  3. 选择需要创建Secret的集群ID,进入该集群操作页面。
  4. 选择配置管理 > Secret,进入Secret列表页。
  5. 单击新建,在创建Secret页面,根据以下提示进行Secret配置:
    • 名称:输入要创建Secret的名称。
    • 命名空间:请根据实际需求进行选择。
    • 密钥类型:有Opaquekubernetes.io/dockerconfigjson两种类型,请根据实际需求进行选择。
    • 当密钥类型选择Opaque时:
      • 内容:请根据实际需求定义变量名和变量值。
    • 当密钥类型选择kubernetes.io/dockerconfigjson时:
      • 镜像仓库地址:请根据实际需求输入镜像仓库名或 ip。
      • 用户名:请根据实际需求输入镜像仓库登录用户名。
      • 密码:请根据实际需求输入镜像仓库登录密码。
  6. 单击创建,完成Secret创建。

使用Secret

方式一:通过挂载Secret类型数据卷
  1. 登录容器服务控制台
  2. 在左侧导航栏中,选择集群,进入集群管理页面。
  3. 选择需要使用Secret的集群ID,进入该集群操作页面。
  4. 单击工作负载,选择任意类型,进入相应列表页。例如选择工作负载 > Deployment,进入Deployment列表页。
  5. 单击新建,进入创建Deployment页面,在存储卷配置中,选择使用Secret类型,输入存储卷名称,如下图所示:

存储卷.jpg

  1. 点击选择Secret,在出现的弹窗中,根据以下提示进行Secret配置:
    • 选择Secret:请根据实际需求进行选择。
    • 挂载选项:有全部挂载以及指定key挂载两种方式,请根据实际需求进行选择。

注:当选择指定key挂载时,可以通过Items向特定路径挂载,如挂载路径是 /etc/config,子路径是dev,最终会存储在/etc/config/dev下。

  1. 点击创建,完成创建。

方式二:通过定义容器环境变量

  1. 登录容器服务控制台
  2. 在左侧导航栏中,选择集群,进入集群管理页面。
  3. 选择需要使用Secret的集群ID,进入该集群操作页面。
  4. 单击工作负载,选择任意类型,进入相应列表页。例如选择工作负载 > Deployment,进入Deployment列表页。
  5. 单击新建,进入创建Deployment页面,进行容器配置时,在环境变量项单击添加环境变量,如下图所示:

容器配置.jpg

  1. 在环境变量配置中,选择引用Secret方式添加,输入变量名以及选择变量值/变量引用,如下图所示:

环境变量.jpg

  1. 点击创建,完成创建。

更新Secret

  1. 登录容器服务控制台
  2. 在左侧导航栏中,选择集群,进入集群管理页面。
  3. 选择需要更新Secret的集群ID,进入该集群操作页面。
  4. 选择配置管理 > Secret,进入Secret列表页。
  5. 单击编辑YAML,在更新Secret页面,根据实际需求进行配置,单击更新完成更新。

删除Secret

  1. 登录容器服务控制台
  2. 在左侧导航栏中,选择集群,进入集群管理页面。
  3. 选择需要删除Secret的集群ID,进入该集群操作页面。
  4. 选择配置管理 > Secret,进入Secret列表页。
  5. 单击删除,在出现的弹窗中,点击确认即可删除Secret。

Kubectl 命令操作说明

创建Secret

方式一:通过YAML文件创建Secret

首先将Secret的data进行Base64转码

# echo -n 'admin' | base64 
YWRtaW4= 
# echo -n '12345' | base64 
MTIzNDU=

secret-test.yaml示例:

apiVersion: v1
kind: Secret
metadata:
   name: secret-test
type: Opaque
data:
   username: YWRtaW4=
   password: MTIzNDU=

创建secret-test.yaml

# kubectl apply -f secret-test.yaml
方式二:通过kubectl create secret命令直接创建Secret

将用户名和密码保存在本地的./username.txt和./password.txt 文件里。

# echo -n 'admin' > ./username.txt
# echo -n '12345' > ./password.txt

创建secret

# kubectl create secret generic secret-test --from-file=./username.txt --from-file=./password.txt

使用Secret

方式一:通过挂载Secret类型数据卷

secret-volume.yaml示例:

apiVersion: v1
kind: Pod
metadata:
   name: pod1-test
spec:
   containers:
     - name: container-test
       image: ksyun/nginx:latest
       volumeMounts:                             #数据卷的挂载点
         - name: secret-volume
           mountPath: /etc/config
   volumes:                                      #在pod级别设置卷,然后将其挂载到pod内的容器中
     - name: secret-volume
       secret:
         secretName: secret-test                       #挂载的Secret名称
   restartPolicy: Never
方式二:通过定义容器环境变量

secret-env.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod2-test
spec:
  containers:
    - name: container-test
      image: ksyun/nainx:latest
      env:
        - name: SECRET_USERNAME
          valueFrom:
            secretKeyRef:
              name: secret-test
              key: username
        - name: SECRET_PASSWORD
          valueFrom:
            secretKeyRef:
              name: secret-test
              key: password
  restartPolicy: Never

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

  • 内容不全,不深入
  • 内容更新不及时
  • 描述不清晰,比较混乱
  • 系统或功能太复杂,缺乏足够的引导
  • 内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈