k8s学习笔记(2)- Rancher2.x部署springboot应用及高可用、扩容

前言:上一篇介绍基于k3s环境,使用kubectl部署springboot简单项目应用,本篇介绍基于rancher2.x部署应用程序

1、上篇已部署一个springboot应用,我们可以通过rancher查看工作负载状态

  • 说明:我们没有通过rancher添加主机管理部署K8s集群,所以我们这里直接用rancher在k3s上操作
  • 登录rancher,查看集群工作负载

    image

  • 点击负载名称,查看负载信息

    image

  • 可以看到springboot部署在了ubuntunode2节点上,ip地址192.168.231.132,所以我们可以通过//192.168.231.132:30000/hello访问应用

    image

  • 重启k3s服务器,3个节点,只启动其中2个,且不启动昨天做的springbootapp所部署的那台server,ubuntunode2

    image

  • 输入命令,查看pod:springbootapp的状态
      sudo kubectl describe pod/springbootapp -n default
    
    说明: -n default 命名空间 default

    image

  • 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工作负载界面

    image

  • 点击部署应用,填写参数信息,名称,镜像,命名空间,负载类型选择2个pod

    image

  • 点击启动

    image

  • 等待一段时间后,工作负载创建完成

    image

3、创建负载均衡ingress,提供对外访问springbootapp的pod

  • 进入负载均衡界面,点击-添加规则

    image

  • 填写相关参数,域名springbootapp.com,命名空间,选择对应的服务/工作负载

    image
    image

  • 保存后,启动一个负载均衡器

    image

4、通过域名:springbootapp.com,访问springbootapp应用的pod,由于没有DNS服务器,我们这里通过修改hosts文件,添加域名ip映射进行访问

  • 修改hosts文件,添加域名映射,ip地址可以是springbootapp部署的任一节点的ip地址

    image

  • 保存hosts文件,通过域名访问springbootapp服务

    image

5、模拟pod挂掉,重新部署应用

  • 强制删除一个节点,rancher会重新启动一个pod,保证2个副本工作

    image

  • 系统会很快帮我们重新构建一个pod

    image

  • 如果一台机器挂掉,pod处于Terminating状态,我们可以重新部署应用,rancher会中心创建2个pod提供服务

    image

  • 点击重新部署,会出现多个pod

    image

  • 这样不会使springbootapp服务中断,待新pod创建完成之后,会剔除老的pod

    image

6、服务扩容、缩容

  • 扩容

    在工作负载springbootapp中,点击增加pod节点
    image
    我们发现新增了一个pod节点提供服务
    image

  • 缩容

    在工作负载springbootapp中,点击减少pod节点
    image
    我们发现rancher帮我们减少了一个pod节点提供服务,释放了资源
    image