我是kubernetes的新手,我在这里和那里都在关注一些教程。我正在努力了解不同的组件和工具,而其中之一就是kustomize。我看到了不同的使用kustomize用法的示例,但我不理解其中之一(即使在网上搜索后)。因此,您可以向我解释以下kustomize
命令的功能吗?
kustomize edit add configmap mnist-map-training --from-literal=trainSteps=200
答案 0 :(得分:2)
Kubernetes基本上是一种编排Docker容器的工具。我们使用yaml创建部署,服务和入口,这些构成集群的组件。但是,可以说一个团队为开发环境提出了kubernetes集群配置yaml文件。例如,在集成环境中,yaml文件略有不同。对于生产环境,它甚至有所不同。因此,显而易见的简单解决方案是维护yaml文件的三个副本。但是从长远来看,它可能不会奏效。应用于一个环境的更改可能需要在其他环境中应用。缺少更改可能会导致问题。
Kustomize是用于解决此问题的工具。您创建kubernetes yaml配置文件和kustomization文件的 base 副本(根据我们的示例,假设其开发环境)。 kustomization文件通常描述要创建的资源(yaml文件),configmap和机密。然后,在集成和生产环境中用于创建kubernetes集群配置的差异将创建为 overlays 。您可以使用此link作为完整参考,尽管它不是最新的,但可能会有所帮助。此外,github中也有文档。
现在有关此命令,
kustomize edit add configmap mnist-map-training --from-literal=trainSteps=200
此命令在当前目录中编辑kustomize文件,以创建如下代码段:
configMapGenerator:
- name: mnist-map-training
literals:
- trainSteps=200
运行kustomize build
命令时,将创建一个configmap yaml,如下所示:
apiVersion: v1
kind: ConfigMap
metadata:
name: mnist-map-training
data:
trainSteps: "200"