zoukankan      html  css  js  c++  java
  • 原创-kustomize详细教程

     kustomize

    摘抄:kustomize能解决以下的痛点:

    1. 有一个统一的模板可以管理一个项目的 Kubernetes 部署结构。
    2. 有某种方式可以管理不同环境之间微小的差异。
    3. 每次更新基本就是修改镜像的标签然后部署,那么有没有什么简单的办法实现之,而不是让我每次都去修改 YAML 文件。
    4. 一般应用都会存在多套部署环境:开发环境、测试环境、生产环境,多套环境意味着存在多套 K8S 应用资源 YAML。而这么多套 YAML 之间只存在微小配置差异,比如镜像版本不同、Label 不同等,而这些不同环境下的YAML 经常会因为人为疏忽导致配置错误。

    简单理解,kustomize识别kustomization.yaml文件,并按照kustomization.yaml中的指示做事,并且kustomization.yaml中可以继续套用kustomization.yaml。

    例如:发布一个busybox程序

    yaml文件目录:同级:base(基础模板) release(线上正式)canary(线上灰度)

    base:

     deploy是deployment,server是configmap,kustomization这样定义:

    意思是引用资源deploy和server,另外disableNameSuffixHash: true指的是在生成的从configmap或serect资源后不加入hash后缀,例如true的话,configmap为busybox,如果为false,configmap为busybox-addf333svaf,这样deployment便查找不到名称为busybox的cinfigmap。

    ---

    release:

     这里线上环境需要加上hpa,kustomization这样定义:

     这里namespace可以修改,replicas可以覆盖base中的deployment数量。

    ---

    canary:

     kustomization这样定义:

     这里nameSuffix可以对canary生成的pod添加后缀-canary,同时加上labels。

    ---

    这样配置,便可以以base为模板,在release版本和canary版本自定义差异配置,release增加hpa,canary则添加canary后缀。直接kubectl apply -f kustomization.yaml即可生效。

    参考文档:

    https://kubectl.docs.kubernetes.io/references/kustomize/

  • 相关阅读:
    [原创]iFPGACable FT2232H JTAG & UART调试器
    [原创]创芯电子实验室iFPGACable JTAG工具实物图
    [原创]FPGA JTAG工具设计(一)
    [方案]基于Zynq WiFi方案构建
    [原创]基于Zynq Linux环境搭建(四)
    [原创]基于Zynq Linux环境搭建(二)
    [原创]基于Zynq Linux环境搭建(三)
    [原创]Zynq AXICDMA测试结果
    [原创]基于Zynq Linux环境搭建(一)
    git使用教程及github远程仓库管理
  • 原文地址:https://www.cnblogs.com/normanlin/p/14337292.html
Copyright © 2011-2022 走看看