我是 kubernetes 的新手,我正在到处学习一些教程。我正在努力理解不同的组件和工具,其中之一就是 kustomize。我看到了不同的 kustomize 用法示例,但我不理解其中的一个(即使在网上搜索后也是如此)。那么您能向我解释一下以下kustomize
命令的功能吗:
kustomize edit add configmap mnist-map-training --from-literal=trainSteps=200
我是 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 配置文件的基本副本(根据我们的示例,假设它的开发环境)以及 kustomization 文件。一般来说,kustomization 文件描述了要创建的资源(yaml 文件)、configmaps、secrets。然后在集成和生产环境中创建 kubernetes 集群配置的差异被创建为覆盖。您可以使用此链接作为完整参考,虽然它不是最新的,但它可能会有所帮助。此外,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"