更新时间:2026-09-30 GMT+08:00
分享

使用Secret

Secret是Kubernetes中一种加密存储的资源对象,您可以将认证信息、证书、私钥等保存在密钥中,在容器启动时以环境变量加载到容器中,或以文件方式挂载到容器中。

建议用户对上传的Secret进行加密处理。

创建Secret

您可以通过以下方式进行创建。

  1. 登录云容器实例 CCI 2.0控制台。
  2. 单击左侧导航栏的“配置中心”,进入配置中心页面。
  3. 选择“密钥(Secret)”。
  4. 单击“创建密钥”。
  5. 填写参数。

    表1 基本信息说明

    参数

    参数说明

    名称

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

    命名空间

    新建密钥所在的命名空间。

    描述(可选)

    密钥的描述信息。

    密钥类型

    新建的密钥类型。

    • Opaque:一般密钥类型。
    • kubernetes.io/dockerconfigjson:存放拉取私有仓库镜像所需的认证信息。
    • kubernetes.io/tls:Kubernetes的TLS密钥类型,用于存放7层负载均衡服务所需的证书。
    • cci/secure-opaque:存放并行文件系统卷访问密钥,系统自动加密,创建后不支持解密。

    密钥数据

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

    • 当密钥为Opaque类型或cci/secure-opaque类型时,单击“添加”,在弹出的窗口中输入键值对,并且可以勾选“自动Base64转码”。

      键需要由数字、字母、点号(.)、中划线(-)、下划线(_)组成,且不能以".."开头,1-63个字符。

    • 当密钥为kubernetes.io/dockerconfigjson类型时,单击“添加”,输入私有镜像仓库的账号和密码。
    • 当密钥为kubernetes.io/tls类型时,上传证书文件和私钥文件。
      说明:
      • 证书是自签名或CA签名过的凭据,用来进行身份认证。
      • 证书请求是对签名的请求,需要使用私钥进行签名。

    标签管理(可选)

    密钥的标签,单击“添加标签”,输入键值对的形式。键值需要以字母或者数字开头和结尾,由字母、数字、连接符(-)、下划线(_)、点号(.)组成且63个字符之内。

  1. 登录云容器实例 CCI 2.0控制台。
  2. 单击左侧导航栏的“配置中心”,进入配置中心页面。
  3. 选择“密钥(Secret)”,在配置中心页面中选择命名空间。
  4. 在左上角单击“YAML创建”,输入Secret的YAML定义内容,YAML定义可以参考yaml格式。

    云容器实例支持JSON或YAML格式,且文件大小不得超过1MiB。

  5. 单击“确定”即可。

    Secret列表中会出现新创建的Secret。

Secret的使用

Secret创建完后,可以在创建容器组的过程中以存储卷的形式挂载到容器中。如下图所示,将名为aksk-secret的密钥挂载到容器中,存储卷名称为volume2。

图1 使用Secret

Secret文件格式说明

  • secret.yaml资源描述文件

    例如现在有一个应用需要获取下面的key-value并加密,可以通过Secret来实现:

    key1: value1

    key2: value2

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

    apiVersion: cci/v2
    kind: Secret
    metadata:
      name: mysecret           # secret的名称
    data:
      key1: dmFsdWUx    #需要用Base64编码
      key2: dmFsdWUy    #需要用Base64编码
    type: Opaque         # 必须为Opaque
  • secret.json资源描述文件
    定义的Secret文件secret.json内容如下。
    {
        "apiVersion": "cci/v2",
        "kind": "Secret",
        "metadata": { 
            "name": "mysecret"
        },
        "data": {
            "key1": "dmFsdWUx",
            "key2": "dmFsdWUy"
        },
        "type": "Opaque"
    }

其他操作

您也可以根据实际需求进行其他相关操作。

如果...

则...

更新已创建的Secret

单击操作列的“更新”或“YAML编辑”。

查看Secret数据详情

单击操作列的“查看密钥数据”。

删除Secret

单击操作列的“删除”。批量删除请勾选配置项,然后单击左上方的“批量删除”。根据界面提示删除。

导出Secret数据到本地

单击左上方的“导出”。根据实际情况进行选中导出或者全部导出。

如何进行Base64编码

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

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

相关文档