使用 Kustomize 帮你管理 kubernetes 应用(二): Kustomize 的使用方法

本文介绍使用和维护 Kustomize 的方法步骤。

定制配置

在这个工作流方式中,所有的配置文件( YAML 资源)都是用户所有,存在于私有 repo 中。其他人是无法使用的。

使用 Kustomize 帮你管理 kubernetes 应用(二): Kustomize 的使用方法

  1. 使用 git 创建一个目录

    创建一个名为 ldap 的 kubernetes 集群应用,希望将这个应用的配置保存在自己的 git 仓库中

    git init ~/ldap
  2. 创建一个 base

    mkdir -p ~/ldap/base

    在这个目录中创建并提交 kustomization.yaml 文件和一组资源,例如 deployment.yaml service.yaml 等。

  3. 创建 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 中增加在副本数。

  4. 生成 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 配置,并根据自己的需求来配置。

使用 Kustomize 帮你管理 kubernetes 应用(二): Kustomize 的使用方法

  1. 通过 fork/modify/rebase 等方式获得配置
  2. 将其克隆为你自己的 base

    在这个 bash 目录维护在一个 repo 中,在这个例子使用 ladp 的 repo

    mkdir ~/ldap
    git clone https://github.com/$USER/ldap ~/ldap/base
    cd ~/ldap/base
    git remote add upstream git@github.com:$USER/ldap
  3. 创建 overlays

    如上面的案例一样,创建并完善 overlays 目录中的内容

    mkdir -p ~/ldap/overlays/staging
    mkdir -p ~/ldap/overlays/production

    可以将 overlays 维护在不同的 repo 中

  4. 生成 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
  1. (可选)更新 base
    用户可以定期更新源 base 以保证及时更新
cd ~/ldap/base
git fetch upstream
git rebase upstream/master

参考

上一篇:Spring Cloud Kubernetes之实战服务注册与发现


下一篇:使用 Kustomize 帮你管理 kubernetes 应用(四):简述核心配置 kustomization.yaml