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

定制配置

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

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

  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

参考

  • kustomize workflows - github.com

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

  1. 【博客126】( 二 ) 使用libgc库来帮你管理内存

    内容: 上一篇讲述了如何使用libgc帮你检测内存泄露,那么其实还可以使用libgc帮你管理内存,用它的接口分配的内存,当你一直泄露后其实是有被回收的 使用: #include <stdio.h ...

  2. 使用FIT2CLOUD在青云QingCloud快速部署和管理Kubernetes集群

    一.Kubernetes概述 Kubernetes是Google一直在推进的容器调度和管理系统,是Google内部使用的容器管理系统Borg的开源版本.它可以实现对Docker容器的部署,配置,伸缩和 ...

  3. Kubernetes学习二:资源管理及入门实战

    此部分上接kubernetes学习一:https://blog.csdn.net/weixin_43155804/article/details/125831675?spm=1001.2014.300 ...

  4. 关于 Kubernetes 中通过 Kustomize 定制 Yaml资源文件的一些笔记

    写在前面 分享一些 Kustomize 的笔记 博文内容涉及: Kustomize 的简单介绍 Kustomize 安装 Kustomize 生成资源yaml 文件 Demo 理解不足小伙伴帮忙指正 ...

  5. 靠,上班打游戏!不,我只是在Minecraft里管理Kubernetes...

    微软 2015 年收购 Minecraft 之后不久开源了一个项目叫 Dockercraft[1],这个项目当时看起来非常有趣,通过 Dockercraft[2],玩家可以在 Minecraft 中启 ...

  6. 检查集群状态命令_轻松管理Kubernetes集群的7个工具

    Kubernetes正在不断加快在云原生环境的应用,但如何以统一.安全的方式对运行于任何地方的Kubernetes集群进行管理面临着挑战,而有效的管理工具能够大大降低管理的难度. K9s k9s是基于 ...

  7. 第二十九章 管理许可(二)

    文章目录 第二十九章 管理许可(二) 激活许可证密钥 更新许可证密钥 许可证故障排除 Administrator Terminal Session Administrator Session on W ...

  8. 免费QQ群管助手-帮你管理QQ群

    介绍 这是良心工作室维护的机器人QQ群,包括上百个机器人QQ,帮您管理您的QQ群,您可免费使用. 优势 无需维护QQ账号.软件.服务器 可免费使用 云端同步 功能 关键词监控 设置/修改关键词 查看当 ...

  9. 7 款 DevOps 工具管理 Kubernetes

    在本文中,您将了解可用于轻松管理 Kubernetes 集群的不同 Kubernetes 管理工具. 在新兴的云原生环境中,Kubernetes 无处不在.它已成为编排容器的标准.但是,管理多个 Ku ...

最新文章

  1. Oracle安装部署之rhel 5.8下静默安装oracle11gr2
  2. 毛坯房装修需要哪些材料
  3. 分布式文件系统之Hdfs是什么?
  4. python中的namespace
  5. 【渝粤教育】国家开放大学2018年春季 0390-22T古代诗歌散文专题 参考试题
  6. KVM 介绍(1):简介及安装
  7. Axure| .rp的文件怎么转化为.rplib
  8. Python程序设计题库
  9. 什么是GPS,GPS技术主要有哪些特点?
  10. win7计算机怎么找管理员,win7管理员身份运行
  11. 如何解决苹果M1处理器Mac翻车问题
  12. Screen Wonders for Mac (3D动态视频壁纸) v1.9.1
  13. 处理机和CPU的区别
  14. java bluecove教程_Eclipse + Java + BlueCove + WIN/MAC 蓝牙开发
  15. 微信小程序使用 iconfont 彩色图标(mini-program-iconfont-cli)
  16. 服务注册与发现(中)
  17. android 2048的简单实现
  18. 16g电脑内存有什么好处_开车播放车载音乐 选择车载U盘有什么好处?
  19. 识别有关视频文件的编解码器和技术信息
  20. 读完JavaScript开发全威指南

热门文章

  1. iOS build Version 作用
  2. 关于RecyclerView条目复用
  3. jasper 常用知识点总结
  4. Sql Server 语句集合
  5. javascript中构造StringBuffer实例
  6. 介绍struct bus_type非常好的
  7. SQL2008安装出现问题invoke---beginInvoke
  8. 单片机工作笔记001---了解单片机MCS51
  9. SpringCloud工作笔记057---常用免费数据接口
  10. C#程序读取MAC地址的方法