更新时间:2024-08-05 GMT+08:00

管理密钥

密钥(Secret)是一种用于存储应用认证信息、应用密钥等敏感信息的资源,内容由用户决定。密钥创建完成后,可在应用中作为文件或者环境变量使用。

本章节指导您创建、删除、查看和更新密钥。

前提条件

  1. 环境已绑定CCE集群,请参考绑定CCE集群
  2. 已创建密钥所在命名空间,请参考创建命名空间

创建密钥

  1. 登录ServiceStage控制台。
  2. “环境管理”页面,单击待操作环境名称。
  3. “资源配置”下左侧列表,选择“计算”资源类型下的资源名称“云容器引擎 CCE”
  4. 选择“密钥”页签,单击“创建密钥”

    ServiceStage支持“可视化”和“YAML”两种方式来创建密钥。
    • 方式一:可视化。参照表1设置参数,其中带“*”标志的参数为必填参数。
      表1 可视化方式创建密钥参数设置说明

      参数

      参数说明

      *密钥名称

      新建密钥的名称,同一个命名空间内命名必须唯一。

      *所属集群

      使用新建密钥的集群。

      单击“创建集群”,可以新建集群。

      *命名空间

      新建密钥所在的命名空间,默认为default。

      描述

      密钥的描述信息。

      *密钥类型

      根据业务需要选择新建的密钥类型。

      • Opaque:一般密钥类型。当密钥配置文件中未作显式设定时,默认的密钥类型是Opaque。
      • kubernetes.io/dockerconfigjson:存放拉取私有仓库镜像所需的认证信息。
      • IngressTLS:存放7层负载均衡服务所需的证书。
      • 其他:若需要创建其他类型的密钥,请手动输入密钥类型。

      *镜像仓库地址

      当“密钥类型”选择kubernetes.io/dockerconfigjson时有效。输入镜像仓库的地址。

      *密钥数据

      应用密钥的文件data字段值。

      • 当密钥为Opaque类型时,输入键、值。其中“”必须使用Base64进行编码,Base64编码方法请参考Base64编码

        单击“添加更多配置数据”,可以增加密钥数据。

      • 当密钥为kubernetes.io/dockerconfigjson类型时,输入“用户名”和“密码”。
      • 当密钥为IngressTLS类型时,上传“证书文件”和“私钥文件”。
      • 当密钥为其他类型时,输入对应的“键”、“值”。

      密钥标签

      标签以Key/value键值对的形式附加到各种对象上(如应用、节点、服务等)。

      标签定义了这些对象的可识别属性,用来对它们进行管理和选择。

      1. 单击“添加标签” 。
      2. 输入键、值。
      图1 可视化方式设置密钥参数
    • 方式二:YAML。

      若需要通过上传文件的方式创建密钥,请确保密钥描述文件已创建。ServiceStage支持YAML格式,详情请参考Secret资源文件配置说明

      1. 在“所属集群”下拉框中,选择相应的集群。
      2. (可选)单击“上传文件”,选择已创建的Secret类型资源文件后,单击“打开”,等待文件上传完成。
      3. 在“编排内容”中写作或者修改上传的Secret资源文件。
      图2 YAML方式设置密钥参数

  5. 单击“创建密钥”。

    密钥列表中会出现新创建的密钥。

后续操作

密钥创建完成后,您可参考表2查找、查看、更新和删除密钥。

  • 删除操作无法恢复,请谨慎操作。
  • 密钥列表中包含系统密钥资源,系统密钥资源不可更新,也不能删除,只能查看。
表2 密钥管理操作说明

操作项

操作说明

查找密钥

  1. 在命名空间下拉列表选择密钥所在命名空间。
  2. 在搜索框输入密钥名称。

查看密钥

单击目标密钥“操作”列的“查看YAML”,查看配置项YAML格式文件内容。

更新密钥

  1. 单击目标密钥“操作”列的“更新”。
  2. 根据表1更改信息。
  3. 单击“更新密钥”。

删除单个密钥

  1. 单击目标密钥“操作”列的“删除”。
  2. 在弹出的对话框,单击“确定”

批量删除密钥

  1. 勾选需要删除的密钥。
  2. 单击“删除密钥”。
  3. 在弹出的对话框,单击“确定”

Secret资源文件配置说明

本内容主要介绍Secret类型的资源描述文件的配置示例。例如现在有一个应用需要获取帐号密码,可以通过Secret来实现:

username: my-username

password: my-password

定义的Secret文件内容如下。其中值需要用Base64进行编码,Base64编码方法请参考Base64编码

apiVersion: v1
kind: Secret
metadata:
  name: mysecret           # secret的名称
  namespace: default       #命名空间,默认为default
data:
  username: ******    #需要用Base64编码
  password: ******  #需要用Base64编码
type: Opaque     # type建议不要做修改

Base64编码

对字符串进行Base64加密,可以在本地Linux环境下,直接使用echo -n '编码内容' | base64命令即可。示例如下:

root@ubuntu:~# echo -n '3306' | base64
MzMwNg==

其中:

  • 3306为要编码的内容。
  • MzMwNg==为编码后的内容。