跳转到内容

简介

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

基于 MIT 许可发布