美文网首页
k8s 进阶: 动态更新镜像标签

k8s 进阶: 动态更新镜像标签

作者: 米小帮帮 | 来源:发表于2018-07-28 08:11 被阅读0次

    kustomize 是 sig-cli 的一个子项目,它的设计目的是给 k8s 的用户提供一种可以重复使用配置的声明式应用管理,
    从而在配置工作中用户只需要管理和维护 kubernetes 的原生API对象,而不需要使用复杂的模版。kustomize 的基本使用可以参见之前的一系列文章。
    初体验
    名称前缀
    标注和注释

    在 kubernetes 使用中,容器镜像的标签是需要经常更新的一个部分,而能够简单快速地更改容器镜像的标签也成了众多 Kustomize 用户迫切需要的一个功能。在 kustomize v1.0.5 中,这个功能终于实现了。在这篇文章中,我们通过一个>简单的 Pod 例子来学习使用这个 kustomize 的新功能。首先创建一个 kustomization,它包含了一个名为 pod.yaml 的资源。

    DEMO_HOME=$(mktemp -d)
    
    cat <<EOF >$DEMO_HOME/kustomization.yaml
    resources:
    - pod.yaml
    EOF
    

    该 pod.yaml 包含如下内容

    cat <<EOF >$DEMO_HOME/pod.yaml
    apiVersion: v1
    kind: Pod
    metadata:
      name: myapp-pod
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp-container
        image: busybox:1.29.0
        command: ['sh', '-c', 'echo The app is running! && sleep 3600']
      initContainers:
      - name: init-mydb
        image: busybox:1.29.0
        command: ['sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;']
    EOF
    

    可以看到,该 pod.yaml 定义了一个名字 myapp-pod 的 Pod,这个 Pod 会运行两个容器,一个是 initContainers 当中的 init-mydb, 一个是 containers 当中的 myapp-container,这两个容器中运行的都是同一个镜像 busybox:1.29.0,不同之处在于运行时的参数。假如现在需要更新 busybox 的版本到 1.29.1,怎样改动当前的 kusomization 才>能实现这个更新呢?除了手动更改 pod.yaml 当中的标签之外,kustomize v1.0.5 还提供了一种快速更改镜像标签的方法。
    通过如下命令

    cd $DEMO_HOME
    kustomize edit set imagetag busybox:1.29.1
    

    kustomization.yaml 文件添加 imageTags:

    imageTags:
    - name: busybox
      newTag: 1.29.1
    

    运行 kustomize build $DEMO_HOME, 确认容器镜像的标签都改为了 1.29.1.

    test 2 == \
      $(kustomize build $DEMO_HOME | grep busybox:1.29.1 | wc -l); \
      echo $?
    

    参考资料

    [introducing-kustomize-template-free-configuration-customization-for-kubernetes](Introducing kustomize; Template-free Configuration Customization for Kubernetes - Kubernetes)
    kustomize demo: change image tags

    相关文章

      网友评论

          本文标题:k8s 进阶: 动态更新镜像标签

          本文链接:https://www.haomeiwen.com/subject/okwnmftx.html