
# 使用Secret
Secret是Kubernetes中一种加密存储的资源对象，您可以将认证信息、证书、私钥等保存在密钥中，在容器启动时以环境变量加载到容器中，或以文件方式挂载到容器中。
![](https://support.huaweicloud.com/usermanual-cci2/public_sys-resources/note_3.0-zh-cn.png)
建议用户对上传的Secret进行加密处理。
- [创建Secret]
  
  1. 登录[云容器实例 CCI2.0](https://console.huaweicloud.com/cci2.0/?#/cci/cluster/list)控制台。
  
  2. 单击左侧导航栏的"配置中心"，进入配置中心页面。
  
  3. 选择"密钥（Secret）"，在配置中心页面中选择命名空间。
  
  4. 在左上角单击"YAML创建"，输入Secret的YAML定义内容，YAML定义可以参考[yaml格式]。
     
     ![](https://support.huaweicloud.com/usermanual-cci2/public_sys-resources/note_3.0-zh-cn.png)
     云容器实例支持JSON或YAML格式，且文件大小不得超过1MiB。
     
     
  
  5. 单击"确定"即可。 
     Secret列表中会出现新创建的Secret。
     
     
   
#### Secret的使用
Secret创建完后，可以在创建容器组的过程中以存储卷的形式挂载到容器中。如下图所示，将名为aksk-secret的密钥挂载到容器中，存储卷名称为volume2。
图1使用Secret   
![](https://support.huaweicloud.com/usermanual-cci2/zh-cn_image_0000001866600250.png "点击放大")
#### 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"
  }
  ```
  
 
 #### 如何进行Base64编码
对字符串进行Base64加密，可以直接使用"echo -n 要编码的内容 \| base64"命令即可，示例如下：
```
root@ubuntu:~# echo -n "3306" | base64
MzMwNg==
```
