如何重新应用kubectl部署



我想更新我的pod,因为有一个带有latest标签的新图像上传到docker注册表。

我目前正在做这个:

kubectl delete -f deployment.yaml
kubectl apply -f deployment.yaml

如果我这样做:

kubectl apply -f deployment.yaml

上面说我的部署没有改变。

但是,我想让我的服务活一秒钟。难道没有办法让我做以下事情吗

kubectl re-apply -f deployment.yaml

您只需删除POD一次,然后重新启动POD,这样它就会更改图像并从docker注册表中提取新版本。

但是,请确保deployment.yaml中的imagePullPolicy始终设置为

否则,您需要将一个次要字段更新到deployment.yaml中,并将imagePullPolicy始终保持为在这种情况下,应用将更改部署。

示例

spec:
containers:
- name: test
image: image:latest
ports:
- containerPort: 80
imagePullPolicy: Always
imagePullSecrets:
- name: docker-secret

选项2

kubectl rollout restart deployment/<deployment-name>

阅读更多:如何强制Kubernetes重新绘制图像?

下面的命令将滚动重新启动您的部署,即使整个yaml是相同的,并且它说没有变化。

kubectl rollout restart -f deploy.yaml --selector=component=deploy

这里的技巧是,我们需要将component: deploy的附加标签添加到部署类型的元数据中,以便它选择性地仅重新启动部署。这将添加为额外的配置更新以及一个命令,但将完成必要的操作。

相关内容

  • 没有找到相关文章

最新更新