请教一下OpenKruise~为什么k8s pod spec原生只支持修改image,init image,activeDeadlineSeconds和tolerations呀?
比如container env和image相比,为什么能改image 却不能改env呀?而且这个规定似乎也没有人质疑,也没有搜到官方解释为啥这么限制
:Kubernetes 设计时强调配置的确定性,确保Pod的行为在启动后不会因外部因素而改变。镜像是一旦设置就不会改变的静态配置,而环境变量(env)是动态设置的,可能会在Pod的生命周期内改变。因此,为了保持配置的确定性,只允许修改不会改变的配置项,如镜像。
社区的理念是严格的immutable infrastracture , 所以基本都不让改的, 而且从实现上来看, 现在pod statusli只有镜像有相关状态, 没有一个容器spec的hash类似的值,所以其实如果只改了容器环境变量, 也没法判断到底容器实际运行的版本,没法实现原地升级 ,此回答整理自钉群“OpenKruise 社区交流群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。