主题
简介
markdown
- Kustomize 给 Kubernetes 的用户提供一种可以重复使用配置的声明式应用管理,从而在配置工作中用户只需要管理和维护 Kubernetes 的原生 API 对象,而不需要使用复杂的模版。同时,使用 kustomzie 可以仅通过 Kubernetes 声明式 API 资源文件管理任何数量的 kubernetes 定制配置,可以通过 fork/modify/rebase 这样的工作流来管理海量的应用描述文件结构
markdown
- kyaml:低级 YAML 处理库,提供解析、操作和输出 YAML 文档的基础能力
- api:核心业务逻辑,负责资源转换与生成
- cmd/config:基于 kyaml 的资源配置管理 CLI
- kustomize:主命令行工具,整合所有功能安装
bash
# 目前kustomize已集成到kubectl中,最新版本可以在github中找到
# kubectl version
Client Version: v1.33.1
Kustomize Version: v5.6.0
Server Version: v1.33.1使用
https://kubernetes.io/zh-cn/docs/tasks/manage-kubernetes-objects/kustomization/
验证
markdown
> 目前有homepage的包含Namespace ServiceAccount Secret ClusterRole ClusterRoleBinding Service ConfigMap Deployment HTTPRoute
现针对目前的资源进行拆分, 并将configmap中的bookmarks.yaml custom.css custom.js docker.yaml kubernetes.yaml services.yaml settings.yaml widgets.yaml 提取出来,将之前的配置删除
# root@master:/data/k8s/4-homepage/homepage# tree -L 3 base
base
├── configs
│ ├── assets
│ │ ├── custom.css
│ │ └── custom.js
│ └── content
│ ├── bookmarks.yaml
│ ├── docker.yaml
│ ├── kubernetes.yaml
│ ├── services.yaml
│ ├── settings.yaml
│ └── widgets.yaml
├── deployment.yaml
├── httproute.yaml
├── kustomization.yaml
├── namespace.yaml
├── rbac.yaml
└── service.yaml
# root@master:/data/k8s/4-homepage/homepage/base# cat kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: homepage
resources:
- namespace.yaml
- rbac.yaml
- service.yaml
- deployment.yaml
- httproute.yaml
configMapGenerator:
- name: homepage
files:
- configs/content/kubernetes.yaml
- configs/content/settings.yaml
- configs/content/services.yaml
- configs/content/widgets.yaml
- configs/content/bookmarks.yaml
- configs/content/docker.yaml
- configs/assets/custom.css
- configs/assets/custom.js