更新时间:2024-04-15 GMT+08:00

创建密钥

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

创建密钥

  1. 登录集群控制台,单击左侧导航栏的配置与密钥 > 密钥。您还可以直接创建密钥或基于YAML来创建,若希望通过YAML创建,请跳转至4
  2. 选择需要创建密钥的命名空间。
  3. 单击“创建密钥”。

    参照表1设置基本信息。
    表1 基本信息说明

    参数

    参数说明

    名称

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

    命名空间

    新建密钥所在的命名空间,默认为当前查看的命名空间。

    描述

    新建密钥的描述。

    密钥类型

    新建的密钥类型。

    • Opaque:一般密钥类型。在高敏感场景下,建议先通过数据加密服务加密敏感数据后,再存入Secret中。
    • kubernetes.io/dockerconfigjson:存放拉取私有仓库镜像所需的认证信息。如选择此类型的密钥,需要额外输入镜像仓库地址。
    • IngressTLS:存放7层负载均衡服务所需的证书。如选择此类型的密钥,需要上传证书文件及私钥文件。
    • 其他:若需要创建其他类型的密钥,请手动输入密钥类型。

    密钥数据

    工作负载密钥的数据可以在容器中使用。

    • 当密钥为Opaque类型时:输入键、值。其中“值”必须使用Base64编码,勾选“自动Base64编码”即可自动将输入的值转换为Base64编码。手动进行Base64编码的方法请参见如何进行Base64编码
    • 当密钥为dockerconfigjson类型时:输入私有镜像仓库的用户名和密码。

    密钥标签

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

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

    1. 输入键、值。
    2. 单击“确认添加”

  4. 基于YAML文件创建密钥。在创建配置项页面右侧单击“YAML创建”

    若需要通过上传文件的方式创建资源,请确保资源描述文件已创建。支持json或yaml格式,详细请参见Secret资源文件配置说明

    您可以导入或直接编写文件内容,格式为YAML或JSON。
    • 方式一:导入编排文件。

      单击“导入”,导入格式为YAML或JSON的文件。编排内容中可直接展示YAML或JSON文件的内容。

    • 方式二:直接编排内容。

      在编排内容区域框中,输入YAML或JSON文件内容。

  5. 配置完成后,单击“确定”。

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

Secret资源文件配置说明

本章节主要介绍Secret类型的资源描述文件的配置示例。

例如现在有一个工作负载需要获取账号密码,可以通过Secret来实现:

  • yaml文件格式

    定义的Secret文件secret.yaml内容如下。其中Value需要用Base64,Base64编码方法请参见如何进行Base64编码

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

    定义的Secret文件secret.json内容如下。

    {
      "apiVersion": "v1",
      "kind": "Secret",
      "metadata": {
        "name": "mysecret",
        "namespace": "default"
      },
      "data": {
        "username": "bXktdXNlcm5hbWUK",
        "password": "******"
      },
      "type": "Opaque"
    }

相关操作

密钥创建完成后,您还可以执行表2中的操作。

kube-system命名空间下的密钥资源不能通过控制台更新,也不能删除,只能查看。

表2 其他操作

操作

说明

编辑YAML

单击密钥名称后的“编辑YAML”,可编辑当前密钥的YAML文件。

更新密钥

  1. 选择需要更新的密钥名称,单击“更新”。
  2. 根据表1更改信息。
  3. 单击“确定”。

删除密钥

选择要删除的密钥,单击“删除”。

根据系统提示删除密钥。

批量删除密钥

  1. 勾选需要删除的密钥名称。
  2. 单击页面左上角的“批量删除”,删除勾选的密钥。
  3. 根据系统提示删除密钥。

如何进行Base64编码

对字符串进行Base64加密,可以直接使用“echo -n 要编码的内容 | base64”命令即可,示例如下:

root@ubuntu:~# echo -n "待编码内容" | base64
******