微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

K8S Kustomize

1.概述

官网:https://kustomize.io/
参考文档:https://kubectl.docs.kubernetes.io/guides/
Kustomize是一个开源的Kubernetes配置管理工具。
在Kubernetes上运行一个项目,可能存在多套运行环境:开发环境、测试环境、生产环境,多套环境可能需要编写多个存在微小差异的YAML配置文件,而这多套YAML文件只存在微小的配置差异(比如镜像、标签等),Kustomize允许将这些公共部分写入到基础配置文件(Base/xxx.yaml)中,将差异部分写入到对应不同运行环境需要覆盖的配置文件(Overlay/<项目目录>/xxx.yaml)中,以简化管理和编写配置文件
Kustomize已内置Kubernetes中,可以使用"kubectl apply -k"命令指定配置目录。

1.1.Kustomize的组成和目录结构

~/someApp
├── base
│   ├── deployment.yaml
│   ├── kustomization.yaml
│   └── service.yaml
└── overlays
    ├── development
    │   ├── cpu_count.yaml
    │   ├── kustomization.yaml
    │   └── replica_count.yaml
    └── production
        ├── cpu_count.yaml
        ├── kustomization.yaml
        └── replica_count.yaml

Kustomize主要由Base、Overlay两个部分组成,分别对应Base、Overlay目录。

1.2.kustomization.yaml

在每个目录下都应存在一个kustomization.yaml,它是Kustomize的配置文件,用于描述和说明Base、Overlays目录下Kuernetes资源配置文件间的关系,或者定义声明公共的资源配置部分。
kustomization.yaml有自己的语法,最基础的声明如下:
Base/kustomization.yaml:

commonLabels:
  app: hello
resources:
- deployment.yaml
- service.yaml

Overlays/development/kustomization.yaml:

bases:
- ../../base
patchesstrategicmerge:
- cpu_count.yaml
- replica_count.yaml

2.kustomization常用指令

Base/kustomization.yaml:

namePrefix: my-
resources:
- deployment.yaml
- service.yaml

commonLabels:
  kustomize: dome-Nginx
commonAnnotations:
  kustomize/description: "This is an application managed by kustomize"

Overlays/production/kustomization.yaml:

bases:
- ../../base
patchesstrategicmerge:
- deployment.yaml

resources([])

指定要关联的资源配置文件列表。

bases([])

指定基础资源配置文件存放目录路径

patchesstrategicmerge([])

指定要更新合并的资源配置文件列表。

namePrefix(string)

名称前缀,在每个资源对象的名称前面添加一个前缀。

commonLabels([])

标签,在每个资源对象上面增加一个标签

commonAnnotations([])

注解,在每个资源对象上面增加一个注解。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐