314

Kustomize 的使用方法

 5 years ago
source link: http://blog.maoxianplay.com/posts/kustomize-2/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

定制配置

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

yA3uYbb.jpg!web

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

mIN36nq.jpg!web

  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 [email protected]:$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
  5. (可选)更新 base 用户可以定期更新源 base 以保证及时更新

    cd ~/ldap/base
    git fetch upstream
    git rebase upstream/master

参考


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK