开发者社区 > 云原生 > 容器服务 > 正文

咨询个技术问题,我部署了一组pod,副本数为3,在更新容器镜像的之后,需要触发一条shell命令,如果写在启动后执行命令里面,会3个副本都执行,但只需执行一次,这样的话要如何做呢,有没有哪位大神给个思路

咨询个技术问题,我部署了一组pod,副本数为3,在更新容器镜像的之后,需要触发一条shell命令,如果写在启动后执行命令里面,会3个副本都执行,但只需执行一次,这样的话要如何做呢,有没有哪位大神给个思路

展开
收起
k8s小能手 2019-05-23 17:43:43 5431 0
2 条回答
写回答
取消 提交回答
  • kubernetes member

    可用configmap里面的数据做个标志位,相当于一把锁,这样谁拿到锁,谁就更新。

    2020-03-12 11:19:25
    赞同 展开评论 打赏
  • 云原生技术栈:公共号:cncfstack,博客:www.zhaowenyu.com

    阿里云的kubernetes方案基于开源的k8s,那该方案也是试用阿里云k8s的

    https://help.aliyun.com/document_detail/86420.html?source=5176.11533457&userCode=anf0cabp&type=copy

    可以部署成statefulset模式,在启动时通过envFrom获取sts的pod名称,比如 nginx-0 。那么在启动命令的时候就可以添加判断 if [$PODNAME = 'ningx-0'];then 执行你的shell + 启动命令;else 只执行启动命令 ;fi

    2019-07-17 23:35:58
    赞同 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关产品

  • 容器镜像服务
  • 相关电子书

    更多
    使用CNFS搭建弹性Web服务 立即下载
    阿里云文件存储 NAS 在容器场景的最佳实践 立即下载
    Shell 脚本速查手册 立即下载