如何kubectl重新应用部署

Joh*_*ohn 9 kubernetes kubectl

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

我目前正在这样做:

kubectl delete -f deployment.yaml
kubectl apply -f deployment.yaml
Run Code Online (Sandbox Code Playgroud)

如果我做:

kubectl apply -f deployment.yaml
Run Code Online (Sandbox Code Playgroud)

它说我的部署没有改变。

然而,我想让我的服务活跃起来,哪怕是一秒钟。难道我就没有办法做类似下面的事情吗?

kubectl re-apply -f deployment.yaml
Run Code Online (Sandbox Code Playgroud)

Har*_*var 12

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

但是,请确保imagePullPolicydeployment.yaml

否则,您需要更新一个次要字段deployment.yaml始终imagePullPolicy保持不变,否则应用将更改部署。

例子

spec:
  containers:
  - name: test
    image: image:latest
    ports:
    - containerPort: 80
    imagePullPolicy: Always
  imagePullSecrets:
    - name: docker-secret
Run Code Online (Sandbox Code Playgroud)

选项2

kubectl rollout restart deployment/<deployment-name>
Run Code Online (Sandbox Code Playgroud)

阅读更多内容:如何强制 Kubernetes 重新拉取镜像?