docer swarm集群部署springboot項目

1.準備兩臺服務器,安裝好docker、docker-compose
因為用到了docker倉庫,安裝harbor,可以從github下載離線安裝包
2. 我這邊用到了gitlab-ci,整體流程也都差不多
1)打包mvn clean install
2)打鏡像 docker-compose -f docker-compose.yaml build
3) 登陸harbor
docker login -u admin -p *** 192.168.178
// 版本號可通過${CI_COMMIT_SHA:0:8}設置為每次提交的hash值,我這邊方便就寫laster了
4) 打tag docker tag 192.168.1.78/test/test-server:laster 192.168.1.78/test/test-server:laster
5) 上傳到harbor docker push 192.168.1.78/test/test-server:laster
docker-compose.yaml例子

version: '3.7'
services:test-server:build:context: ./server #context指明dockerfile路徑environment:- JAVA_OPS=${JVMOPS}- DB_OPS=${DBOPS}container_name: test-server  #容器名hostname: test-serverimage: ${IMAGE_TAG}    #鏡像名healthcheck: #健康檢查test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health"]interval: 10s #間隔時間timeout: 10sretries: 3 #重試次數start_period: 60s #開始時間deploy:mode: replicated #用戶可以指定集群中容器的數量(默認),global:每個節點一個replicas: 2 #replicated時指定共幾個容器# 更新配置restart_policy:condition: on-failure #非0退出容器后才重啟max_attempts: 1 #重啟1次update_config:# 每次更新數量parallelism: 1# 每次更新時間(更新完這個,就更新第二個)delay: 60sorder: start-first #首先啟動新任務, 并且正在運行的任務暫時重疊failure_action: continuenetworks:- default
networks:default:driver: overlayipam:config:- subnet: 10.0.2.0/24 #設置2網段,騰訊內網ip默認1網段,沖突了

6)拉鏡像 docker pull 192.168.1.78/test/test-server:laster
7) 運行 docker stack deploy -c docker-compose.yaml --with-registry-auth test

遇到的問題

  1. docker容器為10.0.1.0/24網絡段,和騰訊的內網ip沖突,所以在docker-compose.yaml中設置網絡段為2網段
  2. 更新時,流量還是會分發至重啟的節點,就肯定是訪問不到接口報錯了,后來百度說用健康檢查,所以在docker-compose.yaml中增加了 healthchek模塊,start_period試自己項目啟動時間設置
  3. 上一點雖說加了健康檢查 ,但是發現,啟動的容器,剛開始時strarting ,看日志已經啟動成功,但是過了一會就unhealth,就自動stop了,百度說是健康檢查失敗,但是docker logs看日志也沒錯,后來百度說看 docker inspect 容器名,有個state,Health的log,看到是找不到curl的命令,于是就在dockerfile中,增加了RUN apt update && apt install -y curl
  4. springboot的健康檢查,需依賴actuator組建,具體可以百度,本地運行時,可直接訪問提示{“status”:“UP”}
  5. order: start-first 后面測試發現,通過健康檢查后,舊的才會stop掉

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896952.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896952.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896952.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python測試框架Pytest的參數化

上篇博文介紹過,Pytest是目前比較成熟功能齊全的測試框架,使用率肯定也不斷攀升。 在實際工作中,許多測試用例都是類似的重復,一個個寫最后代碼會顯得很冗余。這里,我們來了解一下pytest.mark.parametrize裝飾器&…

開發博客系統

前言 準備工作 數據庫表分為實體表和關系表 第一,建數據庫表 然后導入前端頁面 創建公共模塊 就是統一返回值,異常那些東西 自己造一個自定義異常 普通類 mapper 獲取全部博客 我們只需要返回id,title,content,us…

【Spring Boot 應用開發】-05 命令行參數

Spring Boot 常用命令行參數 Spring Boot 支持多種命令行參數,這些參數可以在啟動應用時通過命令行直接傳遞。以下是一些常用的命令行參數及其詳細說明: 1. 基本配置參數 --server.port端口號 指定應用程序運行的HTTP端口,默認為8080。 jav…

20250304學習記錄

第一部分,先來了解一下各種論文期刊吧,畢竟也是這把歲數了,還什么都不懂呢 國際期刊: EI收集的主要有兩種, JA:EI源刊 CA:EI會議 CPCI也叫 ISTP 常說的SCI分區是指,JCR的一區、…

2024 年 MySQL 8.0.40 安裝配置、Workbench漢化教程最簡易(保姆級)

首先到官網上下載安裝包:http://www.mysql.com 點擊下載,拉到最下面,點擊社區版下載 windows用戶點擊下面適用于windows的安裝程序 點擊下載,網絡條件好可以點第一個,怕下著下著斷了點第二個離線下載 雙擊下載好的安裝…

網絡安全檢查漏洞內容回復 網絡安全的漏洞

網絡安全的核心目標是保障業務系統的可持續性和數據的安全性,而這兩點的主要威脅來自于蠕蟲的暴發、黑客的攻擊、拒絕服務攻擊、木馬。蠕蟲、黑客攻擊問題都和漏洞緊密聯系在一起,一旦有重大安全漏洞出現,整個互聯網就會面臨一次重大挑戰。雖…

汽車智能鑰匙中PKE低頻天線的作用

PKE(Passive Keyless Entry)即被動式無鑰匙進入系統,汽車智能鑰匙中PKE低頻天線在現代汽車的智能功能和安全保障方面發揮著關鍵作用,以下是其具體作用: 信號交互與身份認證 低頻信號接收:當車主靠近車輛時…

uiautomatorviewer定位元素報Unexpected ... UI hierarchy

發現問題 借鑒博客 Unexpected error while obtaining UI hierarchy android app UI自動化-元素定位輔助工具 Unexpected error while obtaining UI hierarchy:使用uiautomatorviewer定位元素報錯 最近在做安卓自動化,安卓自動化主要工作之一就是獲取UI樹 app端獲…

通俗的方式解釋“零錢兌換”問題

“零錢兌換”是一道經典的算法題目,其主要問題是:給定不同面額的硬幣和一個總金額,求出湊成總金額所需的最少硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回-1。 解題思路 動態規劃:使用動態規劃是解決零錢兌…

GBT32960 協議編解碼器的設計與實現

GBT32960 協議編解碼器的設計與實現 引言 在車聯網領域,GBT32960 是一個重要的國家標準協議,用于新能源汽車與監控平臺之間的數據交互。本文將詳細介紹如何使用 Rust 實現一個高效可靠的 GBT32960 協議編解碼器。 整體架構 編解碼器的核心由三個主要組…

Halcon 車牌識別-超精細教程

車牌示例 流程: 讀取圖片轉灰度圖閾值分割,找車牌內容將車牌位置設置變換區域形狀找到中心點和弧度利用仿射變換,斜切車牌旋轉轉正,把車牌摳出來利用形態學操作拼接車牌號數字訓練ocr開始識別中文車牌 本文章用到的算子(解析) Halcon 算子-承接車牌識別-CSDN博客 rgb1_to_gray…

UDP透傳程序

UDP透傳程序 本腳本用于在 設備 A 和 設備 B 之間建立 UDP 數據轉發橋梁,適用于 A 和 B 設備無法直接通信的情況。 流程: A --> 電腦 (中繼) --> B B --> 電腦 (中繼) --> A 需要修改參數: B_IP “192.168.1.123” # 設備 B 的…

Holtek HT82V42A深度解析:CCD/CIS信號處理的集成化解決方案

——簡化圖像采集系統設計的終極利器 一、HT82V42A核心參數與外設資源 HT82V42A是Holtek專為圖像傳感器信號處理設計的模擬前端芯片,集成CCD/CIS信號處理與LED驅動功能,關鍵參數如下: 參數類別規格說明信號處理通道單通道CCD/CIS模擬信號輸…

詳細分析KeepAlive的基本知識 并緩存路由(附Demo)

目錄 前言1. 基本知識2. Demo2.1 基本2.2 拓展2.3 終極 3. 實戰 前言 🤟 找工作,來萬碼優才:👉 #小程序://萬碼優才/r6rqmzDaXpYkJZF 基本知識推薦閱讀:KeepAlive知識點 從實戰中學習,源自實戰中vue路由的…

記一次誤禁用USB導致鍵盤鼠標失靈的修復過程

背景說明 在電腦上插入了一個USB hub,然后彈窗提示:“集線器端口上出現電涌”,點開讓選擇“重置”或者“關閉”,不小心點了關閉,結果這個usb口就被關了,再插任何東西都沒反應,找了很多辦法都恢…

小米手機如何錄制屏幕?手機、電腦屏幕錄制方法分享

大家最近有沒有遇到想記錄手機屏幕操作的情況? 比如精彩的游戲瞬間、有趣的視頻教程,或者需要錄制屏幕來制作演示材料。小米手機在這方面可是個好幫手,今天就來給你好好嘮嘮,小米手機如何錄制屏幕,以及后續如何處理這…

如何將JAR交由Systemctl管理?

AI越來越火了,我們想要不被淘汰就得主動擁抱。推薦一個人工智能學習網站,通俗易懂,風趣幽默,最重要的屌圖甚多,忍不住分享一下給大家。點擊跳轉到網站 廢話不多說,進入正題。下面開始說如何使用 systemctl…

chrome Vue.js devtools 提示不支持該擴展組件,移除

可能是版本不兼容,可以重新安裝,推薦網址極簡插件官網_Chrome插件下載_Chrome瀏覽器應用商店 直接搜索vue,下載舊版,vue2、vue3都支持,上面那個最新版本試了下,vue2的肯定是不能用

【RabbitMQ】RabbitMQ的核心概念與七大工作模式

🔥個人主頁: 中草藥 🔥專欄:【中間件】企業級中間件剖析 在現代分布式系統和微服務架構中,消息隊列(Message Queue) 是解決服務間通信、系統解耦和流量削峰的關鍵技術之一。而 RabbitMQ 作為一…

SQLAlchemy系列教程:理解SQLAlchemy元數據

SQLAlchemy是Python開發人員的強大ORM工具。SQLAlchemy中的元數據是對象-關系映射配置的集合,允許開發人員無縫地定義和使用數據庫模式。 使用元數據 SQLAlchemy中的元數據充當各種數據庫描述符(如表、列和索引)的容器。這使開發人員能夠通…