前言:上一篇介绍基于k3s环境,使用kubectl部署springboot简单项目应用,本篇介绍基于rancher2.x部署应用程序
1、上篇已部署一个springboot应用,我们可以通过rancher查看工作负载状态
-
说明:我们没有通过rancher添加主机管理部署K8s集群,所以我们这里直接用rancher在k3s上操作
-
登录rancher,查看集群工作负载
-
点击负载名称,查看负载信息
-
可以看到springboot部署在了ubuntunode2节点上,ip地址192.168.231.132,所以我们可以通过http://192.168.231.132:30000/hello访问应用
-
重启k3s服务器,3个节点,只启动其中2个,且不启动昨天做的springbootapp所部署的那台server,ubuntunode2
-
输入命令,查看pod:springbootapp的状态
sudo kubectl describe pod/springbootapp -n default
说明: -n default 命名空间 default
-
pod处于terminating状态,我们可以输入命令强制删除pod,重新部署
格式:
sudo kubectl delete pod 【podname】 --force --grace-period=0 -n 【命名空间】
命令:
sudo kubectl delete pod spingbootapp --force --grace-period=0 -n default
2、通过rancher2.x部署应用
-
进入rancher工作负载界面
-
点击部署应用,填写参数信息,名称,镜像,命名空间,负载类型选择2个pod
-
点击启动
-
等待一段时间后,工作负载创建完成
3、创建负载均衡ingress,提供对外访问springbootapp的pod
-
进入负载均衡界面,点击-添加规则
-
填写相关参数,域名springbootapp.com,命名空间,选择对应的服务/工作负载
-
保存后,启动一个负载均衡器
4、通过域名:springbootapp.com,访问springbootapp应用的pod,由于没有DNS服务器,我们这里通过修改hosts文件,添加域名ip映射进行访问
-
修改hosts文件,添加域名映射,ip地址可以是springbootapp部署的任一节点的ip地址
-
保存hosts文件,通过域名访问springbootapp服务
5、模拟pod挂掉,重新部署应用
-
强制删除一个节点,rancher会重新启动一个pod,保证2个副本工作
-
系统会很快帮我们重新构建一个pod
-
如果一台机器挂掉,pod处于Terminating状态,我们可以重新部署应用,rancher会中心创建2个pod提供服务
-
点击重新部署,会出现多个pod
-
这样不会使springbootapp服务中断,待新pod创建完成之后,会剔除老的pod
6、服务扩容、缩容
-
扩容
在工作负载springbootapp中,点击增加pod节点
我们发现新增了一个pod节点提供服务
-
缩容
在工作负载springbootapp中,点击减少pod节点
我们发现rancher帮我们减少了一个pod节点提供服务,释放了资源