k8s资源对象的升级、回滚、扩容、缩容
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,一、资源创建的方式之一,命令的方式创建资源,理解命令运行之后的动作,通过查看资源的方式,总结Pod名称的由来。当我们执行创建资源的命令后,deployment这个控制器会通过replicaset控制器
千家信息网最后更新 2026年11月02日k8s资源对象的升级、回滚、扩容、缩容
一、资源创建的方式之一,命令的方式创建资源,理解命令运行之后的动作,通过查看资源的方式,总结Pod名称的由来。
当我们执行创建资源的命令后,deployment这个控制器会通过replicaset控制器去管理pod,下面通过一个实例来分析,当我们执行创建资源的命令后,k8s都做了些什么(通过其NAME即可发现规律)?
运行一个deployment
[root@master ~]# kubectl run test01 --image=nginx:latest --replicas=2#运行一个nginx容器,指定副本数量为2个[root@master ~]# kubectl get deployments. #查看deployment控制器NAME READY UP-TO-DATE AVAILABLE AGEtest01 2/2 2 2 48s#可以看到deployment的name是我们指定的test01[root@master ~]# kubectl get replicasets. #然后查看replicasets这个控制器#注:replicasets可以简写为"rs"NAME DESIRED CURRENT READY AGEtest01-799bb6cd4d 2 2 2 119s#可以看到replicasets的NAME就是在deployment的NAME后面追加了一串ID号[root@master ~]# kubectl get pod #查看pod的nameNAME READY STATUS RESTARTS AGEtest01-799bb6cd4d-d88wd 1/1 Running 0 3m18stest01-799bb6cd4d-x8wpm 1/1 Running 0 3m18s#可以看到该pod的NAME就是在上面replicasets的后面又追加了一段ID同时,可以查看每一个资源对象的详细信息,来验证上面的说法,如下:
[root@master ~]# kubectl describe deployments test01 #查看test01的详细信息返回的信息如下,可以看到其生成了一个新的replicasets控制器,如下:
那么,现在查看其replicasets详细信息,如下:
二、如果想要client访问部署的服务,需要怎么做?关键点在哪里?
如果需要client来访问k8s部署的服务,那么需要创建一个service资源对象,并且其类型必须是NodePort,客户端通过访问service这个资源对象映射的端口,与k8s集群中的proxy进行联系,以便访问到部署的服务。
实现过程如下:
[root@master ~]# kubectl run test02 --image=nginx:latest --port=80 --replicas=2#基于nginx镜像创建deployment资源对象,映射容器的80端口到宿主机[root@master ~]# kubectl expose deployment test02 --name=web01 --port=80 --type=NodePort#创建一个service,将部署的test02的80端口映射出来[root@master ~]# kubectl get svc web01 #查看创建的web01这个service的信息NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEweb01 NodePort 10.103.223.105 80:30230/TCP 86s#可以看到将部署的服务端口映射到了宿主机的30230, 客户端访问k8s群集中的任意一个节点的30230端口,都可以访问到服务的首页,如下:
三、搭建registry仓库,。基于nginx自定义镜像,将默认访问界面更改为:hello k8s。此为1.10版本。并基于此镜像运行一个Deployment资源对象,replicas数量为4个。
#搭建registry仓库,并在群集中的节点指定到私有仓库[root@master ~]# docker run -tid --name registry -p 5000:5000 --restart always registry:latest [root@master ~]# vim /usr/lib/systemd/system/docker.service #编辑配置文件ExecStart=/usr/bin/dockerd -H unix:// --insecure-registry 192.168.20.6:5000#将修改后的配置文件发送到k8s群集中的其他节点[root@master ~]# scp /usr/lib/systemd/system/docker.service root@node01:/usr/lib/systemd/system/[root@master ~]# scp /usr/lib/systemd/system/docker.service root@node02:/usr/lib/systemd/system/#所有更改了docker配置文件的节点都需要进行以下操作,以便更改生效[root@master ~]# systemctl daemon-reload [root@master ~]# systemctl restart docker#制作自定义镜像[root@master ~]# vim DockerfileFROM nginx:latestADD index.html /usr/share/nginx/html/[root@master ~]# echo "hello k8s" > index.html[root@master ~]# docker build -t 192.168.20.6:5000/nginx:1.10 .[root@master ~]# docker push 192.168.20.6:5000/nginx:1.10 #上传至私有仓库#基于自定义镜像运行一个Deployment资源对象,replicas数量为4个。[root@master ~]# kubectl run test03 --image=192.168.20.6:5000/nginx:1.10 --port=80 --replicas=4[root@master ~]# kubectl get pod -o wide | grep test03 | awk '{print $6}' #查看四个副本的IP地址10.244.2.2010.244.1.1810.244.1.1910.244.2.21#接下来在k8s群集内部访问该上述四个任意IP,即可看到其提供的服务,如下:#访问测试[root@master ~]# curl 10.244.2.21 hello k8s[root@master ~]# curl 10.244.2.20hello k8s四、将上述Deployment资源对象,进行更新、扩容操作,replicas数量更新为6个.镜像仍为自定义镜像,且默认访问界面更改为:Hello update.
#更新镜像并上传至私有仓库[root@master ~]# echo "Hello update" > index.html [root@master ~]# docker build -t 192.168.20.6:5000/nginx:2.20 .[root@master ~]# docker push 192.168.20.6:5000/nginx:2.20 #更新资源对象,进行扩容[root@master ~]# kubectl set image deployment test03 test03=192.168.20.6:5000/nginx:2.20 && kubectl scale deployment test03 --replicas=6#查看pod的IP地址[root@master ~]# kubectl get pod -o wide | grep test03 | awk '{print $6}'10.244.2.2410.244.2.2210.244.1.2110.244.2.2310.244.1.2210.244.1.20#访问测试[root@master ~]# curl 10.244.1.20Hello update[root@master ~]# curl 10.244.1.22Hello update五、对此Deployment资源对象进行回滚操作,查看验证最后版本的访问界面内容和replicas数量。
[root@master ~]# kubectl rollout undo deployment test03 #执行回滚操作[root@master ~]# kubectl get pod -o wide | grep test03 | wc -l#查看replicas的数量还是6个6#访问测试[root@master ~]# kubectl get pod -o wide | grep test03 | awk '{print $6}'10.244.1.2310.244.2.2710.244.1.2410.244.1.2510.244.2.2610.244.2.25[root@master ~]# curl 10.244.2.25hello k8s[root@master ~]# curl 10.244.2.26hello k8s-------- 本文至此结束,感谢阅读 --------
资源
对象
镜像
数量
服务
仓库
信息
控制器
端口
控制
运行
命令
节点
更新
文件
方式
界面
测试
私有
配置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网扶贫科技
互联网科技上市公司
互联网 视角下的科技创新
长亮科技互联网金融
互联网科技博客
互联网科技英文翻译
中盈科技互联网信息有限公司
互联网教育科技公司vipkid
彤创互联网科技有限公司
晓花互联网科技有限公司网址
互联网媒体平台算高科技产业
米聚互联网科技南京有限公司排面
互联网科技和信息
互联网数据科技专业
互联网科技如何创业
互联网科技实习生岗位
上海同邻互联网科技有限公司规模
上海万顺科技互联网有限公司招聘
第三届互联网大会安防黑科技
中国主要互联网科技公司
精品咖啡豆
广州淘业互联网络科技
互联网未来科技
杭州互联网科技公司
恒生科技互联网指数分析
互联网科技中介
互联网科技公司实习生
中国航天科技大学国际工业互联网
互联网科技企业商标注意事项
每日互联网科技新闻