容器服务 Secret

Secret 可用于存储密码、令牌、密钥等敏感信息,降低直接对外暴露的风险。Secret 是 key-value 类型的键值对,可以以通过控制台的 Kubectl 工具创建对应的 Secret 对象,也可以通过挂载数据卷、环境变量或在容器的运行命令中使用 Secret。

相关产品
容器服务 产品页,含版本规格、价格与购买入口。

一、创建 Secret

1. 登录容器服务控制台,选择左侧导航栏中的 集群。

2. 选择目标集群 ID,进入集群基本信息页。

3. 选择左侧导航栏中的配置管理,在 Secret 页面单击新建。

4. 在新建配置管理页面,根据实际需求,进行如下参数设置。如下:

·名称:请输入自定义名称。

·Secret 类型:提供 Opaque、Dockercfg 和 TLS 证书类型,请根据实际需求进行选择。

·Opaque:适用于保存密钥证书和配置文件,Value 将以 base64 格式编码。

·Dockercfg:适用于保存私有 Docker Registry 的认证信息。

·TLS 证书:适用于保存 TLS 证书和私钥。

·生效范围:提供以下两种范围,请根据实际需求进行选择。

·存量所有命名空间:不包括 kube-system、kube-public 和后续增量命名空间。

·指定命名空间:支持选择当前集群下一个或多个可用命名空间。

·内容:根据不同的 Secret 类型,进行配置。

·当 Secret 类型为 Opaque 时:根据实际需求,设置变量名和变量值。

·当 Secret 类型为 Dockercfg 时:

·仓库域名:请根据实际需求输入域名或 IP。

·用户名:请根据实际需求输入第三方仓库的用户名。

·密码:请根据实际需求设置第三方仓库的登录密码。

注意:说明:

注意:如果本次为首次登录系统,则会新建用户,相关信息写入 ~/.dockercfg 文件中。

·当 Secret 类型为 TLS 证书 时:添加证书和私钥。

5. 单击创建 Secret,即可完成创建。

二、方式一:数据卷使用 Secret 类型

1. 登录容器服务控制台,选择左侧导航栏中的 集群。

2. 选择目标集群 ID,进入集群基本信息页面。

3. 选择左侧导航栏中的工作负载,任意选择 Workload 类型,进入对应的信息页面。例如,选择 DaemonSet 页签。

4. 在 DaemonSet 页面,单击新建。

5. 在新建工作负载页面,根据页面信息,设置工作负载名、命名空间等信息。并在 “数据卷” 中,单击添加数据卷。如下:


6. 选择使用 Secret 方式,填写名称,并选择 Secret。如下:

·选择 Secret:根据实际需求进行。

·选项:提供全部和指定部分 Key 两种选择。

·Items:当选择指定部分 Key 选项时,可以通过添加 Item 向特定路径挂载,如挂载点是 /data/config,子路径是 dev,最终会存储在 /data/config/dev 下。

7. 单击创建 DaemonSet,完成创建。

三、方式二:环境变量中使用 Secret 类型

1. 登录容器服务控制台,选择左侧导航栏中的 集群。

2. 选择目标集群 ID,进入集群基本信息页面。

3. 选择左侧导航栏中的工作负载,任意选择 Workload 类型,进入对应的信息页面。例如,选择 DaemonSet 页签。

4. 在 DaemonSet 页面,单击新建。

5. 在新建工作负载页面,根据页面信息,设置工作负载名、命名空间等信息。

6. 在实例内容器的环境变量中,选择 Secret 环境变量方式,并根据实际需求选择资源。如下:

7. 单击创建 DaemonSet,完成创建。

四、方法三:使用第三方镜像仓库时引用

1. 登录容器服务控制台,选择左侧导航栏中的 集群。

2. 选择目标集群 ID,进入集群基本信息页面。

3. 选择左侧导航栏中的工作负载,任意选择 Workload 类型,进入对应的信息页面。例如,选择 DaemonSet 页签。

4. 在 DaemonSet 页面,单击新建。

5. 在新建工作负载页面,根据页面信息,设置工作负载名、命名空间等信息。并请根据实际情况选择镜像访问凭证。

6. 单击创建 DaemonSet,完成创建。

五、更新 Secret

1. 登录容器服务控制台,选择左侧导航栏中的 集群。

2. 选择目标集群 ID,进入集群基本信息页。

3. 选择左侧导航栏中的配置管理,在 Secret 页面找到目标 Secret,单击右侧的编辑 YAML。

4. 在编辑 YAML 页面,编辑 YAML,并单击完成。

注意:说明:

注意:如需修改 key-values,则编辑 YAML 中 data 的参数值,并单击完成即可完成更新。

六、方式一:通过指定文件创建 Secret

1. 依次执行以下命令,获取 Pod 的用户名和密码。

echo -n 'username' > ./username.txtecho -n 'password' > ./password.txt

2. 执行 Kubectl 命令,创建 Secret。

kubectl create secret generic test-secret –from-file=./username.txt –from-file=./password.txt

3. 执行以下命令,查看 Secret 详情。

kubectl describe secrets/test-secret

七、方式二:YAML 文件手动创建

注意:说明:

注意:通过 YAML 手动创建 Secret,需提前将 Secret 的 data 进行 Base64 编码。

1. 登录 容器服务控制台,选择目标集群。

2. 单击右上角的 YAML 创建。YAML 示例如下:

apiVersion: v1kind: Secretmetadata: name: test-secrettype: Opaquedata: username: dXNlcm5hbWU= ## 由echo -n 'username' | base64生成 password: cGFzc3dvcmQ= ## 由echo -n 'password' | base64生成

八、方式一: 数据卷使用 Secret 类型

YAML 示例如下:

apiVersion: v1kind: Podmetadata: name: nginxspec: containers: – name: nginx image: nginx:latest volumeMounts: – name: secret-volume mountPath: /etc/config volumes: – name: secret-volume secret: secretName: test-secret ## 设置 secret 来源 items: ## 设置指定 secret 的 Key 挂载 – key: username ## 选择指定 Key path: group/user ## 挂载到指定的子路径 mode: 256 ## 设置文件权限 restartPolicy: Never

九、方式二: 环境变量中使用 Secret 类型

YAML 示例如下:

apiVersion: v1kind: Podmetadata: name: nginxspec: containers: – name: nginx image: nginx:latest env: – name: SECRET_USERNAME valueFrom: secretKeyRef: name: test-secret ## 设置来源 Secret 文件名 key: username ## 设置该环境变量的 Value 来源项 restartPolicy: Never

十、方法三:使用第三方镜像仓库时引用

YAML 示例如下:

apiVersion: v1kind: Podmetadata: name: nginxspec: containers: – name: nginx image: nginx:latest imagePullSecrets: – name: test-secret ## 设置来源 Secret 文件名 restartPolicy: Never

赞 (0)
上一篇 4天前
下一篇 4天前