本文介绍使用和维护 Kustomize 的方法步骤。
定制配置
在这个工作流方式中,所有的配置文件( YAML 资源)都是用户所有,存在于私有 repo 中。其他人是无法使用的。
-
使用
git
创建一个目录创建一个名为 ldap 的 kubernetes 集群应用,希望将这个应用的配置保存在自己的 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
等。。staging
目录可能会使用一个patch
,用于在configmap
增加一个实验配置。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
用户可以定期更新源base
以保证及时更新
cd ~/ldap/base
git fetch upstream
git rebase upstream/master