[root@woker-cn-hangzhou-172-18-0-106 ]
kubectl set image deployment/flight-hotel-v3 flight-hotel-v3=registry-vpc.cn-hangzhou.aliyuncs.com/flyby-test/flight-hotel-v3:v10059 --namespace=h5 --record
kubectl set image和kubectl apply都可以用于更新Kubernetes中的服务。其中,kubectl set image的作用是直接修改Deployment、ReplicationController等管理器中的镜像版本号,而kubectl apply则是将指定的YAML文件应用到Kubernetes集群中进行部署。
这两种方式各有优缺点。kubectl set image的优点是简单、快速,可以自动升级应用程序的镜像标签版本。当需要及时修补漏洞或紧急变更镜像标签时,使用该方法比较方便。不过由于直接修改了资源配置,会导致其与版本控制不一致,因此需要记录更改历史以备回溯,如添加 --record 参数。
而kubectl apply的优点在于可以比较灵活地对YAML文件进行编辑和管理,包括查看最新的状态、回滚到上一个版本、对已经存在的资源进行增加/删减/修改等操作,对于结构比较复杂或者需要动态进行调整的应用程序来说比较有优势。
从可用性角度来看,kubectl apply更加安全可靠。它能够确保新创建的Pod与旧的Pod之间进行排队替换而不影响整个服务的可用性;而kubectl set image在更新容器镜像后,会立即重启旧的Pod并创建新的Pod,可能会影响应用程序的可用性直至所有Pod都完成更新。因此,如果服务的可用性对业务非常关键,建议使用kubectl apply等较为谨慎的方式进行更新。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具