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