跳到主要内容

Secret管理

简介

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

Secret 控制台操作指引

创建 Secret

  1. 登录 TKE 控制台

  2. 进入集群管理页面:在左侧导航栏中,单击【集群】。

  3. 选择集群:单击需要创建 Secret 的集群【ID/名称】,进入待创建 Secret 的集群管理页面。

  4. 选择 Secret:选择【配置管理】 > 【Secret】,进入“Secret”信息页面。

    Secret 信息页面

  5. 新建 Secret:单击【新建】,进入“新建 Secret”页面。

  6. 设置参数:根据实际需求,设置 Secret 参数。关键参数信息如下:

    • 名称:自定义。
    • 命名空间:根据实际需求进行选择命名空间类型。
    • 内容:根据实际需求,设置变量名和变量值。
  7. 完成创建:单击【创建 Secret】,完成创建。

使用 Secret

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

  1. 登录 TKE 控制台

  2. 进入集群管理页面:在左侧导航栏中,单击【集群】。

  3. 选择集群:单击需要部署 Workload 的集群【ID/名称】,进入待部署 Workload 的集群管理页面。

  4. 选择 Workload 类型:在 “工作负载” 下,任意选择 Workload 类型,进入对应的信息页面。例如,选择【工作负载】 > 【DaemonSet】,进入“DaemonSet”信息页面。

    选择 Workload 类型

  5. 新建 Workload:单击【新建】,进入“新建 Workload”页面。

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

    添加数据卷

  7. 使用 Secret:选择 “使用 Secret” 方式,填写名称,单击【选择 Secret】。

    选择 Secret

  8. 配置挂载点:在弹出的 “设置 Secret” 窗口中,配置挂载点,单击【确认】。

  9. 完成创建:单击【创建 Workload】,完成创建。

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

  1. 登录 TKE 控制台
  2. 进入集群管理页面:在左侧导航栏中,单击【集群】。
  3. 选择集群:单击需要部署 Workload 的集群【ID/名称】,进入待部署 Workload 的集群管理页面。
  4. 选择 Workload 类型:在 “工作负载” 下,任意选择 Workload 类型,进入对应的信息页面。例如,选择【工作负载】 > 【DaemonSet】,进入“DaemonSet”信息页面。
  5. 新建 Workload:单击【新建】,进入“新建 Workload”页面。
  6. 设置环境变量:根据页面信息,设置工作负载名、命名空间等信息。并在 “实例内容器” 的 “环境变量” 中,单击【引用 ConfigMap/Secret】。
  7. 选择 Secret:选择 Secret 环境变量方式,并根据实际需求选择资源。
  8. 完成创建:单击【创建 Workload】,完成创建。

更新 Secret

  1. 登录 TKE 控制台
  2. 进入集群管理页面:在左侧导航栏中,单击【集群】。
  3. 选择集群:单击需要更新 YAML 的集群【ID/名称】,进入待更新 YAML 的集群管理页面。
  4. 选择 Secret:选择【配置管理】 > 【Secret】,进入“Secret”信息页面。
  5. 编辑 YAML:在需要更新 YAML 的 Secret 行中,单击【编辑 YAML】,进入更新 Secret 页面。
  6. 完成更新:在“更新 Secret”页面,编辑 YAML,单击【完成】,即可更新 YAML。

说明:如需修改 key-values,编辑 YAML 中 data 的参数值,单击【完成】,即可完成更新。

更新 Secret 配置

  1. 登录 TKE 控制台
  2. 进入集群管理页面:在左侧导航栏中,单击【集群】。
  3. 选择集群:单击需要更新配置的集群【ID/名称】,进入待更新的集群管理页面。
  4. 选择 Secret:选择【配置管理】 > 【Secret】,进入“Secret”信息页面。
  5. 更新配置:在需要更新配置的 Secret 行中,单击【更新配置】,进入更新页面。
  6. 完成更新:在更新页面,编辑配置项,单击【完成】,即可更新。

Kubectl 操作 Secret 指引

创建 Secret

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

  1. 准备文件:执行以下命令,获取 Pod 的用户名和密码。

    echo -n 'username' > ./username.txt
    echo -n 'password' > ./password.txt
  2. 创建 Secret:执行 Kubectl 命令,创建 Secret。

    kubectl create secret generic test-secret --from-file=./username.txt --from-file=./password.txt
  3. 查看 Secret 详情:执行以下命令,查看 Secret 详情。

    kubectl describe secrets/test-secret

方式二:YAML 文件手动创建

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

apiVersion: v1
kind: Secret
metadata:
name: test-secret
type: Opaque
data:
username: dXNlcm5hbWU= ## 由 echo -n 'username' | base64 生成
password: cGFzc3dvcmQ= ## 由 echo -n 'password' | base64 生成

使用 Secret

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

YAML 示例:

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

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

YAML 示例:

apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:latest
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: test-secret ## 设置来源 Secret 文件名
key: username ## 设置该环境变量的 Value 来源项
restartPolicy: Never