我正试图找到一个在Kubernetes中重新部署pod的快速命令。
- 目前,我将docker镜像推送到了谷歌云
- 然后我列出我的吊舱
kubectl -n pringadi get pods
NAME READY STATUS RESTARTS AGE
audit-server-757ffd5dd-ztn5s 1/1 Running 0 38m
configs-service-75c98f68c7-q928q 1/1 Running 0 36m
- 我编辑部署配置CCD_ 1
- 更新/更改图像名称
- 保存并退出
Kubernetes立即识别出更改并重新部署audit-server
。
问题:如果我将我的docker映像(一个较新的映像(推送到同名的谷歌云(步骤4(,并且只想基于当前映像重新部署audit-server
,该怎么办。有这样的命令吗?不断编辑部署配置是一项乏味的工作(步骤3(
完全不清楚你想做什么,但可以猜测一下:
kubectl set image deploy audit-server "*=us.gcr.io/whatever/whateverelse:12345"
将在您的部署中提升图像,而无需调用编辑器
或者,使用类似skaffold或其竞争对手的东西来不断地推送和重新加载Pod以开发
您可以简单地使用带有imagePullPolicy: Always
的部署,并在进行更改后杀死您的pod。它将强制您的部署再次下载映像。
来自Kubernetes文档:
imagePullPolicy: Always
:每次启动pod时都会拉取图像。
示例:
kubectl apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx
ports:
- name: http
containerPort: 80
imagePullPolicy: Always
EOF
然后在拉过你的镜像后,删除正在运行的pod,部署会再次下载镜像:
kubectl delete pods -l app=my-app
检查新容器:
kubectl get pods -l app=my-app
我希望这能有所帮助。