zoukankan      html  css  js  c++  java
  • 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,所以我们可以通过http://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
  • 相关阅读:
    【Spring】的【bean】管理(XML配置文件)【Bean实例化的三种方式】
    【Spring】---【IOC入门案例】
    【Spring】---【IOC】
    DOM4J解析文件
    Hibernate API的使用(Query、Criteria、SQLQuery对象)
    Hibernate一级缓冲
    搭建Hibernate环境
    Python之路【第十六篇】:Django【基础篇】
    Python之路【第十五篇】:Web框架
    Python之路【第十四篇】:AngularJS --暂无内容-待更新
  • 原文地址:https://www.cnblogs.com/kunwn/p/15414191.html
Copyright © 2011-2022 走看看