更新时间:2019-12-10 20:18
当您在Virtual-Node
节点部署一个bare pod
应用,在程序迭代过程解决一些bug或者增加一些特性后,制作新镜像,需要更新bare pod
镜像,同时需要保证Pod的IP不变。您可以参考此文档。
kubectl
命令,同时保证kubectl
可以与您的kubernetes集群交互。可以参考通过 kubectl 连接 Kubernetes 集群。准备一个简单的Pod:
apiVersion: v1
kind: Pod
metadata:
name: nginx
namespace: default
spec:
nodeName: virtual-kubelet
containers:
- image: nginx:1.7.9
imagePullPolicy: Always
name: nginx
执行命令创建Pod:
kubectl create -f nginx.yaml
$ kubectl get pod/nginx -n default -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 1/1 Running 0 7m34s 192.168.0.29 virtual-kubelet <none> <none>
通过kubectl
修改bare pod
的镜像或者镜像tag可以采用一下几种方式:
演示将Pod的镜像nginx:1.7.9
修改为nginx:1.9.6
修改容器镜像tag
apiVersion: v1
kind: Pod
metadata:
name: nginx
namespace: default
spec:
nodeName: virtual-kubelet
containers:
- image: nginx:1.9.6
imagePullPolicy: Always
name: nginx
执行kubectl apply:
kubectl apply -f nginx.yaml
执行kubectl验证镜像和IP:
$ kubectl get pod/nginx -n default -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 1/1 Running 0 8m27s 192.168.0.29 virtual-kubelet <none> <none>
执行edit命令进入交互模式,修改Pod镜像:
kubectl edit pod/nginx -o yaml
执行kubectl验证镜像和IP:
$ kubectl get pod/nginx -n default -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 1/1 Running 0 9m11s 192.168.0.29 virtual-kubelet <none> <none>
执行patch命令修改Pod内容器镜像:
kubectl patch pod nginx -p '{"spec":{"containers":[{"name": "nginx","image": "nginx:1.9.6"}]}}'
执行kubectl验证镜像和IP:
$ kubectl get pod -n default -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx 1/1 Running 0 9m43s 192.168.0.29 virtual-kubelet <none> <none>
Pod执行完镜像更新操作后,可以去ECI控制台查看ContainerGroup
详情,确认镜像是否修改成功。
在文档使用中是否遇到以下问题
更多建议
匿名提交