kustomize configmap 命令:它有什么作用?

kustomize configmap command: what does it do?

我是 kubernetes 的新手,我正在学习一些教程。我正在努力理解不同的组件和工具,其中之一是 kustomize。我看到了 kustomize 用法的不同示例,但我不理解其中一个(即使在网上搜索之后)。那么你能向我解释以下kustomize命令的功能吗:

kustomize edit add configmap mnist-map-training --from-literal=trainSteps=200

Kubernetes 基本上是一种编排 docker 容器的工具。我们使用 yaml 创建部署、服务和入口,这些构成了集群的组件。但是,假设一个团队已经为开发环境提供了 kubernetes 集群配置 yaml 文件。例如,集成环境,yaml 文件略有不同。它有所不同,对于生产环境来说更是如此。因此,显而易见且简单的解决方案是维护 yaml 文件的三个副本。但是在很长的 运行 中它可能不会奏效。应用于一个环境的更改可能需要应用于其他环境。缺少更改可能会导致问题。

Kustomize 是解决此问题的工具。您创建 kubernetes yaml 配置文件的 base 副本(根据我们的示例,假设其开发环境)以及 kustomization 文件。通常,kustomization 文件描述了要创建的资源(yaml 文件)、configmaps、秘密。然后在集成和生产环境中创建 kubernetes 集群配置的差异被创建为 overlays。你也可以使用这个link for complete reference, though it is not latest, it might help. In addition there is documentation in github

现在关于这个命令,

kustomize edit add configmap mnist-map-training --from-literal=trainSteps=200

此命令编辑当前目录中的 kustomize 文件,以创建如下代码片段:

configMapGenerator:
- name: mnist-map-training
  literals:
  - trainSteps=200

kustomize build 命令是 运行 时,这会创建一个配置映射 yaml,如下所示:

apiVersion: v1
kind: ConfigMap
metadata:
  name: mnist-map-training
data:
  trainSteps: "200"