使用Secret
Secret是Kubernetes中一种加密存储的资源对象,您可以将认证信息、证书、私钥等保存在密钥中,在容器启动时以环境变量加载到容器中,或以文件方式挂载到容器中。
建议用户对上传的Secret进行加密处理。
创建Secret
您可以通过以下方式进行创建。
- 登录云容器实例 CCI 2.0控制台。
- 单击左侧导航栏的“配置中心”,进入配置中心页面。
- 选择“密钥(Secret)”。
- 单击“创建密钥”。
- 填写参数。
表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个字符之内。
- 登录云容器实例 CCI 2.0控制台。
- 单击左侧导航栏的“配置中心”,进入配置中心页面。
- 选择“密钥(Secret)”,在配置中心页面中选择命名空间。
- 在左上角单击“YAML创建”,输入Secret的YAML定义内容,YAML定义可以参考yaml格式。
云容器实例支持JSON或YAML格式,且文件大小不得超过1MiB。
- 单击“确定”即可。
Secret列表中会出现新创建的Secret。
Secret的使用
Secret创建完后,可以在创建容器组的过程中以存储卷的形式挂载到容器中。如下图所示,将名为aksk-secret的密钥挂载到容器中,存储卷名称为volume2。
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 | 单击操作列的“更新”或“YAML编辑”。 |
| 查看Secret数据详情 | 单击操作列的“查看密钥数据”。 |
| 删除Secret | 单击操作列的“删除”。批量删除请勾选配置项,然后单击左上方的“批量删除”。根据界面提示删除。 |
| 导出Secret数据到本地 | 单击左上方的“导出”。根据实际情况进行选中导出或者全部导出。 |