【问题标题】:Kubernetes - Best way to create configMap and secretKubernetes - 创建 configMap 和 secret 的最佳方式
【发布时间】:2018-07-25 05:10:50
【问题描述】:

我的服务至少有 4 个配置文件。

比如,application.properties,日志配置文件,查询文件,...

我将 4 个配置文件存储到 kubernetes ConfigMaps 中,它们用于不同的目的。目前,我正在为这 4 个文件创建 4 个 configMaps,并且在部署文件中配置它们变得更加工作。

我们基本上将所有这些文件保存在 GIT 中,并将推动 GIT 的变化。因此,如果我们需要修改 configMap 中的某些内容,我们将首先在 GIT 中更新我们的文件,然后重新创建一个 configMap。

还有其他更好的方法来更新一些更改吗?

将所有这 4 个文件保存在一个 configMap 中是否有意义。

请给点建议。

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    这是我目前所学的个人意见,可能有不同的、更简单的甚至更好的方法,所以请谨慎回答。

    考虑到您有多个服务或项目等。每个项目都有自己的配置文件或环境变量,服务需要这些文件或环境变量才能按预期运行。

    我会做的是:

    1. 确定哪些配置选项是机密,哪些是普通环境变量。
    2. 为这些命名的文件创建两个文件可能 ..secret-config.yml 和 env-config.yml
    3. 确保为每个文档设置适当的种类。这是一个示例配置文件,可以存储类似的秘密文件。

      apiVersion: v1
      data:
        ENV_1: test
        ENV_1: test2
        ENV_1: test3
      kind: ConfigMap
      metadata:
        annotations:
          field.cattle.io/creatorId: user-8rtg2
        name: my-service-configs
        namespace: my-namespace
      
    4. 现在假设您有一个 CI-CD 环境设置,在您的管道或部署配置中,在服务部署步骤后添加几个步骤以使用更新值更新这些机密/配置映射。

      sh deploy_to_kubernets
      sh update_config_maps
      sh update_secrets
      

    现在解释一下自己:

    • 为什么我们将配置 kubernetes YML 存储在 repo 中?

      因为我们要确保所有相关配置都可以访问并存储在相关的位置。这很有意义,因为我们将在 CI 过程中使用它。

    • 如何从 CI 创建或更新配置和机密?

      现在对我来说,由于我在 kubernetes 之上使用 Rancher API,我可以使用 API 来访问我的集群并创建或更新资源。我相信您可以找到类似的东西来在您的集群上执行此操作。

    因此,总结一下,只需将您的配置存储在您的服务中,因为它是服务的一部分,并且是代码工作所必需的(找出一种方法来编码或隐藏秘密值以防止在代码中暴露)。确保根据您使用的变量类型创建机密和配置映射。 有了这个,您将能够自动创建配置映射,并且这些配置映射中的每一个都将在适当的上下文中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 2022-07-19
      • 1970-01-01
      • 2021-08-04
      • 2023-03-14
      • 1970-01-01
      相关资源
      最近更新 更多