我有一个yaml文件,可用于创建pod。我正在使用仪表板,所以我可以简单地选择yaml文件,它将创建pods。 Pod将启动容器,容器将运行docker镜像。所以现在让我说我已经在docker镜像中做了一些更改,并希望再次部署它。为此,我将删除已经运行的pod并将上传yaml文件。
有没有可用的关键字删除已经运行的pod /部署并重新创建它,而不是再次删除和上传yaml文件。
由于
答案 0 :(得分:2)
如果您正在使用它进行开发,那么您可能会使用
containers:
- image: my/app:dev
imagePullPolicy: Always
有了这个,无论何时重新创建pod,您都将获得新的图像版本。
也就是说,你需要使用像Deployment这样的东西来自动重启pod,然后你可以kubectl delete my-pod-xxxxx-yyy
擦除旧的,然后在几秒内获得新的,当前的。
为了刺激,请不要这样做。只需使用带标记的图像,然后将更改后的图像应用于kubectl apply -f my.yaml
部署,或者最好使用Helm(但对于初学者来说这是一个更复杂的主题)
答案 1 :(得分:0)
我不记得我第一次看到此方法的StackOverflow问题,但这里又是一个问题:
kubectl --namespace thenamespace get pod thepod -o yaml | kubectl replace --save-config -f -
您可以使用所有k8s资源来做到这一点。