Kubernetes 中 Secret 的作用及使用指南

阅读时长 6 分钟读完

什么是 Kubernetes 中的 Secret

在 Kubernetes 中,Secret 是一种用于存储敏感数据的对象,比如密码、密钥、证书等。Secret 可以被容器和 Pod 中的应用程序使用,以便在不暴露敏感信息的情况下完成需要验证的操作。Secret 在 Kubernetes 中被用作一种配置管理的方式,可以被动态地载入到 Pod 中,使得容器中的应用程序能够正确地处理需要保护的数据。

如何创建 Secret

Kubernetes 支持多种方式创建 Secret,包括使用 YAML 文件创建、使用命令行创建、使用 ConfigMap 创建等,下面我们将以 YAML 文件创建为例,介绍如何创建一个 Secret 对象。

创建一个 Secret 对象

在这个 YAML 文件中,我们定义了一个名为 mysecret 的 Secret 对象,它包含了一个用户名和一个密码。数据被编码为 base64 字符串,并将其存储在 data 属性中。

然后,我们可以通过以下命令在 Kubernetes 中创建此 Secret 对象:

创建一个使用 Secret 的 Pod

创建了一个 Secret 对象之后,我们可以通过以下方法将其作为环境变量或卷挂载到 Pod 中:

作为环境变量使用

-- -------------------- ---- -------
----------- --
----- ---
---------
  ----- -----
-----
  -----------
  - ----- -----------
    ------ -------
    ----
    - ----- -----------
      ----------
        -------------
          ----- --------
          ---- --------
    - ----- -----------
      ----------
        -------------
          ----- --------
          ---- --------

在这个 YAML 文件中,我们定义了一个名为 mypod 的 Pod 对象,它包含了一个使用了 Secret 对象的容器。Secret 对象中的用户名和密码被分别作为环境变量 DB_USERNAMEDB_PASSWORD 传递给容器。

作为卷挂载使用

-- -------------------- ---- -------
----------- --
----- ---
---------
  ----- -----
-----
  -----------
  - ----- -----------
    ------ -------
    -------------
    - ----- ----------
      ---------- ------------------
      --------- ----
  --------
  - ----- ----------
    -------
      ----------- --------

在这个 YAML 文件中,我们定义了一个名为 mypod 的 Pod 对象,它包含了一个使用了 Secret 对象的容器。Secret 对象中的数据被以卷的形式挂载到了容器的 /etc/secret-volume 目录。

Secret 的使用指南

Secret 的类型

Kubernetes 中的 Secret 主要有两种类型:Opaque 和 kubernetes.io/tls。其中,Opaque 类型是默认的 Secret 类型,存储任意的键值对数据,而 kubernetes.io/tls 类型,用于存储与 TLS 相关的证书和秘钥数据。

Secret 的命名约定

在命名 Secret 对象时,建议使用 team-name-app-name-secret-name 的格式,以便更好地组织和管理 Secret 对象。

Secret 的更新方式

当 Secret 中的数据需要更新时,有两种常用的方式:

  • 使用 kubectl apply 命令更新 Secret 对象
  • 使用 kubectl edit 命令编辑 Secret 对象

无论使用哪种方式,都需要特别注意更新期间是否会影响到正在运行的应用程序。

示例代码

创建一个 Secret

使用 Secret 作为环境变量

-- -------------------- ---- -------
----------- --
----- ---
---------
  ----- -----
-----
  -----------
  - ----- -----------
    ------ -------
    ----
    - ----- -----------
      ----------
        -------------
          ----- --------
          ---- --------
    - ----- -----------
      ----------
        -------------
          ----- --------
          ---- --------

使用 Secret 作为卷挂载

-- -------------------- ---- -------
----------- --
----- ---
---------
  ----- -----
-----
  -----------
  - ----- -----------
    ------ -------
    -------------
    - ----- ----------
      ---------- ------------------
      --------- ----
  --------
  - ----- ----------
    -------
      ----------- --------

总结

Secret 是 Kubernetes 中一个非常重要的配置管理方式,可以用于存储敏感信息,如密码、证书等。本文介绍了 Secret 的创建方式、使用指南以及示例代码。希望能给使用 Kubernetes 的前端开发者们带来一些启示和帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64d1abd0b5eee0b5258eaf01

纠错
反馈