k8s资源对象的升级、回滚、扩容、缩容
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,一、资源创建的方式之一,命令的方式创建资源,理解命令运行之后的动作,通过查看资源的方式,总结Pod名称的由来。当我们执行创建资源的命令后,deployment这个控制器会通过replicaset控制器
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
厦门有哪些软件开发公司吗
x86网关软件开发
数据库管理师视频
慕课网络技术与应用
自学编程的软件开发
中国互联网巨头冲刺高科技
vb2010 数据库
网络技术三级考试题库
收购小软件开发工作室价格
网络安全月漫画图片
网络安全与未来发展趋势
如何观察数据库的情况
中控考勤数据库脚本
软件开发违约2个月以上
成都比较好的软件开发公司
潮汕正规软件开发公司
达梦数据库设置登录端口
网络安全如何打击不良网站
UML属于软件开发的那一层
软件开发 逻辑图
光明区网络技术进出口服务费
网络安全软件漏洞
生死狙击服务器被黑客攻击
青少年网络安全必要性
奇亚管理多台服务器
查看数据库所创建的用户
数据库窗体复选框怎么设置
浙江手机软件开发价钱
网络技术培训报告计算机
ECE认证网络安全