本文介绍使用和维护 Kustomize 的方法及步骤。
定制配置
在这个工作流方式中,所有的配置文件( YAML 资源)都为用户所有,存在于私有 repo 中。其他人是无法使用的。
创建一个目录用于版本控制
我们希望将一个名为 ldap 的 Kubernetes 集群应用的配置保存在自己的 repo 中。 这里使用
git
进行版本控制。git init ~/ldap
创建一个
base
mkdir -p ~/ldap/base
在这个目录中创建并提交
kustomization.yaml
文件和一组资源,例如deployment.yaml
service.yaml
等。创建
overlays
mkdir -p ~/ldap/overlays/staging mkdir -p ~/ldap/overlays/production
每个目录都需要一个
kustomization.yaml
文件以及一个或多个patch
,例如healthcheck_patch.yaml
memorylimit_patch.yaml
等。。production
目录则可能会在
deployment``` 中增加在副本数。生成
variants
运行
kustomize
,将生成的配置用于 kubernetes 应用部署kustomize build ~/ldap/overlays/staging | kubectl apply -f - kustomize build ~/ldap/overlays/production | kubectl apply -f -
在 kubernetes 1.14 版本,
kustomize
已经集成到kubectl
命令中,成为了其一个子命令,可使用kubectl
来进行部署kubectl apply -k ~/ldap/overlays/staging kubectl apply -k ~/ldap/overlays/production
使用现成的配置
在这个工作流方式中,可从别人的 repo 中 fork kustomize 配置,并根据自己的需求来配置。
通过 fork/modify/rebase 等方式获得配置
将其克隆为你自己的
base
在这个
bash
目录维护在一个 repo 中,在这个例子使用ladp
的 repomkdir ~/ldap git clone https://github.com/$USER/ldap ~/ldap/base cd ~/ldap/base git remote add upstream git@github.com:$USER/ldap
创建
overlays
如上面的案例一样,创建并完善
overlays
目录中的内容mkdir -p ~/ldap/overlays/staging mkdir -p ~/ldap/overlays/production
用户可以将
overlays
维护在不同的 repo 中生成
variants
kustomize build ~/ldap/overlays/staging | kubectl apply -f - kustomize build ~/ldap/overlays/production | kubectl apply -f -
在 kubernetes 1.14 版本,
kustomize
已经集成到kubectl
命令中,成为了其一个子命令,可使用kubectl
来进行部署kubectl apply -k ~/ldap/overlays/staging kubectl apply -k ~/ldap/overlays/production
(可选)更新
base
用户可以定期从上游 repo 中rebase
他们的base
以保证及时更新cd ~/ldap/base git fetch upstream git rebase upstream/master