运行helm upgrade命令期间切换k8s context是否会影响升级任务执行?
问题结论与原理说明
1. 运行中切换context不会影响当前helm upgrade操作
你在helm upgrade运行过程中切换k8s context,完全不会对本次正在执行的升级操作产生任何影响。
2. Helm对k8s context的处理逻辑
Helm对kubeconfig配置的加载逻辑是:命令启动时一次性全量加载到进程运行时内存,后续全程复用该配置,不会重新读取本地kubeconfig文件,具体细节如下:
- 启动阶段:Helm进程初始化时会读取当前本地kubeconfig的全部配置,包括当前选中的context、集群接入地址、认证凭证、context绑定的默认命名空间等信息,全部存入内存。
- 运行阶段:整个upgrade过程中所有对k8s APIServer的请求,都会直接使用内存中已存储的配置,不会再重新读取本地的kubeconfig文件。
- 你执行的
kubectl config use-context本质是修改本地kubeconfig文件中的current-context字段,这个修改仅对命令执行后新启动的k8s客户端进程(包括新的kubectl、helm命令)生效,对已经运行中的进程没有作用。
另外你本次执行helm upgrade没有指定-n参数,用的就是启动时context绑定的默认命名空间,这个值也会在启动时就确定,后续修改context的默认命名空间也不会影响本次升级的目标命名空间。
内容的提问来源于stack exchange,提问作者Jan Matějka
相关产品推荐
相关产品推荐

