IDC

修改Pod镜像保持IP不变 - 弹性容器实例

作者:admin 2021-09-17 我要评论

当您在 Virtual-Node 节点部署一个 bare pod 应用,在程序迭代过程解决一些bug或者增加一些特性后,制作新镜像,需要更新 bare pod 镜像,同时需要保证Pod的IP不...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

当您在Virtual-Node节点部署一个bare pod应用,在程序迭代过程解决一些bug或者增加一些特性后,制作新镜像,需要更新bare pod镜像,同时需要保证Pod的IP不变。您可以参考本文。

前提条件

  • 您需要开通弹性容器实例ECI服务、访问控制(RAM)服务。并完成对弹性容器实例ECI服务的RAM角色授权。

通过命令创建Pod

准备一个简单的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

通过命令查询Pod信息

输入以下命令:

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>

通过ECI控制台查询Pod信息

eci_detail_1

通过命令修改Pod镜像

通过kubectl修改bare pod的镜像或者镜像tag可以采用以下几种方式:

  • kubectl patch

  • kubectl edit

  • kubectl apply

演示将Pod的镜像nginx:1.7.9修改为nginx:1.9.6

kubectl apply方式

修改容器镜像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>         

kubectl edit方式

执行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>                

kubectl patch方式

执行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>        

通过ECI控制台验证

可以去ECI控制台查看ContainerGroup详情,确认镜像是否修改成功。

eci_image_2

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 修改Pod镜像保持IP不变 - 弹性容器实例

    修改Pod镜像保持IP不变 - 弹性容器实例

  • 容器服务 使用 TKE NPDPlus 插件增强节

    容器服务 使用 TKE NPDPlus 插件增强节

  • 应用场景_虚拟私有云 VPC_产品介绍

    应用场景_虚拟私有云 VPC_产品介绍

  • IPv6 使用 - 弹性容器实例

    IPv6 使用 - 弹性容器实例

腾讯云代理商
精彩导读
海外云服务器
热门资讯
腾讯云代理商