mac*_*ael 6 kubernetes bazel minikube
我有一个本地部署系统,它镜像我们的生产系统。两者都是通过调用 kubectl apply -f deployments-and-services.yaml 进行部署
我使用当前的 git 哈希标记所有构建,这意味着对于到 GKE 的干净部署,所有服务都有一个新的 docker 镜像标签,这意味着 apply 将重新启动它们,但在本地 minikube 上,标签通常不会更改,这意味着新代码未运行。在我通过调用 kubectl delete 然后调用 kubectl create 来部署到 minikube 来解决这个问题之前,但随着我部署的服务数量的增加,这开始将开发周期拉得太长。
理想情况下,我想要一种更好的方法来告诉 kubectl apply 重新启动部署,而不是仅仅依赖于标签?
我很好奇人们是如何解决这个问题的。
此外,我正在使用 bazel 构建所有内容,这意味着我必须非常明确地设置构建命令。我想也许我应该切换到仅删除/创建我正在处理的一项服务,并让其他服务继续运行。
但在这种情况下,也许我应该只考虑远程呈现并在 minikube 之外一起运行我正在开发的服务?这里的最佳实践是什么?
我不完全确定我理解你的问题,但这很可能是我的阅读理解:)无论如何,在阅读本文时会出现一些想法(再次不确定你想要完成什么)
选项 1:也许您正在寻找的是缩小和备份,即将您的部署扩展到 0 然后备份,假设您正在使用 configmap 并且也许您只想更新它,命令将kubectl scale --replicas=0 -f foo.yaml
是然后回到任何事情
选项 2:例如,如果您想应用部署而不杀死任何 pod,则可以使用cascade=false
(google it)
选项 3:查找rollout
管理部署的选项,但不确定它是否适用于服务
最后,这只是我的发言,请分享一些更多细节,例如您使用的是哪个版本的 k8s?也许提供一个实际的用例示例来更好地描述问题。
归档时间: |
|
查看次数: |
6618 次 |
最近记录: |