容器服务ACK有什么好的方式使用 ack servless 可以 通过云效发布多环境吗?我使用ack servless部署多环境,现在想通过命名空间隔离环境,使用云效来编译-推送镜像-更新无状态节点,
现在遇到个问题:
1.云效使用的k8s升级是通过镜像升级的方式来处理的,这边打包的镜像tag没有变,放的是环境名称,而相同tag镜像云效不支持更新,必须变动tag才行
2.如果我使用tag+时间戳确实可以用,但是镜像仓库个人版本里面就会一直存新的镜像,而且不支持自动删除
对于镜像标签的问题,你可以考虑使用环境变量或者配置文件来区分不同的环境。这样,你可以在构建镜像的时候,根据环境变量或配置文件的值来生成不同的镜像标签。例如,你可以使用${ENVIRONMENT_NAME}
这样的语法来替换掉环境名称。
对于镜像仓库的问题,你可以考虑使用CI/CD系统的镜像清理功能。大多数CI/CD系统都提供了镜像清理的功能,可以自动删除旧的镜像。例如,在Jenkins中,你可以使用docker.image.cleanup
插件来自动清理旧的镜像。
对于命名空间的问题,你可以考虑使用Kubernetes的Namespace来隔离不同的环境。每个Namespace都有自己的一套服务和Pod,这样就可以保证不同环境的资源互不影响。
对于云效的问题,你可以考虑使用云效的镜像版本管理功能。大多数云效平台都提供了镜像版本管理功能,可以自动创建新的镜像版本,并自动删除旧的镜像版本。例如,在阿里云的云效中,你可以使用version
命令来管理镜像版本。
在 yaml 的 annotation 里放一个随机生成的值,或者把 git 提交的 hash 传进来放到 annotation 里\。镜像升级不支持后续增加 annotation,所以得提前在yaml里写一个随机生成函数,每次部署都是随机的值。参考https://helm.sh/docs/howto/charts_tips_and_tricks/ 此回答整理自钉群“容器服务ACK 用户交流-1群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。