在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SpringCloud微服務遷移到Kubernetes容器化完整流程

jf_ro2CN3Fa ? 來源:CSDN ? 2023-10-29 16:32 ? 次閱讀

熟悉Spring Cloud微服務項目

  • 源代碼編譯構建
  • 構建項目鏡像并推送到鏡像倉庫
    • 制作鏡像
    • 將鏡像推送到harbor倉庫
  • K8s服務編排
  • 部署基礎環境
  • 部署微服務程序
  • 部署微服務前端
  • 微服務對外發布
    • NorePort方式暴露
    • Ingress方式暴露

k8s容器部署流程

b79ec68a-7633-11ee-939d-92fbcf53809c.png

具體步驟:

  • 第一步:熟悉Spring Cloud微服務項目
  • 第二步:源代碼編譯構建
  • 第三步:構建項目鏡像并推送到鏡像倉庫
  • 第四步:K8s服務編排
  • 第五步:部署服務所需的基礎環境
  • 第六步:部署微服務程序
  • 第七步:部署微服務前端
  • 第八步:微服務對外發布

熟悉Spring Cloud微服務項目

微服務架構圖

b7b275fe-7633-11ee-939d-92fbcf53809c.png

基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

  • 項目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 視頻教程:https://doc.iocoder.cn/video/

源代碼編譯構建

拉取倉庫代碼

gitclonehttp://192.168.0.126/saas-wms/linkinsense-wms-public.git
b7c581a8-7633-11ee-939d-92fbcf53809c.png

編譯代碼

mvncleanpackage-Dmaven.test.skip=true-Pdev
b7c97fa6-7633-11ee-939d-92fbcf53809c.png

這兒構建時間久是因為第一次構建,需要下載maven依賴,之后構建就會很快了。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

  • 項目地址:https://github.com/YunaiV/yudao-cloud
  • 視頻教程:https://doc.iocoder.cn/video/

構建項目鏡像并推送到鏡像倉庫

  • 基礎鏡像:centos,ubuntu
  • 中間件鏡像:jdk,nginx
  • 項目鏡像:基礎鏡像+中間件鏡像+項目代碼

制作鏡像

https://blog.csdn.net/qq_40722827/article/details/126337904

編寫gateway服務的DockerFile,制作鏡像

viDockerfile
FROMopenjdk:8-jre

RUNln-sf/usr/share/zoneinfo/Asia/Shanghai/etc/localtime
RUNecho'Asia/Shanghai'>/etc/timezone

WORKDIR/wms-center/wms-gateway

ADD./target/wms-gateway-1.0.0.jar./

EXPOSE8901

CMDjava-jarwms-gateway-1.0.0.jar

編寫完成的DockerFile放置的文件位置

b7da2b58-7633-11ee-939d-92fbcf53809c.png

通過DockerFile構建鏡像

dockerbuild-twms-gateway:v1-fwms-gateway/Dockerfile./wms-gateway/
b7ea94a2-7633-11ee-939d-92fbcf53809c.png

查看構建好的鏡像

dockerimages
b8023cf6-7633-11ee-939d-92fbcf53809c.png

將鏡像推送到harbor倉庫

之前本地部署的鏡像倉庫Harbor: http://192.168.0.127:8084/,如果沒有可拿docker-hub注冊一個賬號。

登錄倉庫

dockerlogin192.168.0.127:8084
b81c565e-7633-11ee-939d-92fbcf53809c.png

推送鏡像到鏡像倉庫需要滿足鏡像倉庫的鏡像名稱,因此需要給構建好的鏡像打個tag。

給構建的鏡像打tag

dockertagwms-gateway:v1192.168.0.127:8084/onlee/gateway:v1
b8326656-7633-11ee-939d-92fbcf53809c.png

推送鏡像倉庫

dockerpush192.168.0.127:8084/onlee/gateway:v1
b84695b8-7633-11ee-939d-92fbcf53809c.pngb85fe0ae-7633-11ee-939d-92fbcf53809c.png

其他模塊構建和推送參考gateway模塊

K8s服務編排

制作gateway的k8s yaml文件(gateway.yaml)

---
apiVersion:apps/v1
kind:Deployment
metadata:
name:gateway
namespace:wms-dev
spec:
replicas:1
selector:
matchLabels:
project:wms-dev
app:gateway
template:
metadata:
labels:
project:wms-dev
app:gateway
spec:
imagePullSecrets:
-name:registry-harbor
containers:
-name:gateway
image:192.168.0.127:8084/onlee/gateway:v1
imagePullPolicy:Always
ports:
-protocol:TCP
containerPort:8901
env:
-name:JAVA_OPTS
value:"-Xmx1g"
resources:
requests:
cpu:0.5
memory:256Mi
limits:
cpu:1
memory:1Gi
readinessProbe:
tcpSocket:
port:8901
initialDelaySeconds:60
periodSeconds:10
livenessProbe:
tcpSocket:
port:8901
initialDelaySeconds:60
periodSeconds:10

其他模塊編寫k8s yaml文件參考gateway模塊

部署基礎環境

這一步暫時省略,后續補充…

  • 在K8s中部署Nacos集群(注冊和配置中心
  • 在k8s中部署Seata分布式事務
  • linux部署mysql,redis,rabbitmq,minio,xxl-job

部署微服務程序

準備namespace

kubectlcreatenamespacewms-dev
b873035a-7633-11ee-939d-92fbcf53809c.png

部署服務

kubectlapply-fgateway.yaml
b88437f6-7633-11ee-939d-92fbcf53809c.png

其他模塊部署服務參考gateway模塊

部署微服務前端

編寫DockerFile文件

FROMnginx

COPYdist/usr/share/nginx/html/

EXPOSE80

構建鏡像

dockerbuild-twms-web:v1-fDockerfile.

鏡像打tag

dockertagwms-web:v1192.168.0.127:8084/onlee/wms-web:v1

推送到鏡像倉庫

dockerpush192.168.0.127:8084/onlee/wms-web:v1

服務編排(web.yaml)

apiVersion:apps/v1
kind:Deployment
metadata:
labels:
app:wms-web
name:wms-web
namespace:wms-dev
spec:
progressDeadlineSeconds:600
replicas:1
selector:
matchLabels:
app:wms-web
strategy:
rollingUpdate:
maxSurge:50%
maxUnavailable:50%
type:RollingUpdate
template:
metadata:
labels:
app:wms-web
spec:
imagePullSecrets:
-name:registry-harbor
containers:
-image:192.168.0.127:8084/onlee/wms-web:v1
imagePullPolicy:Always
name:app
ports:
-containerPort:80
protocol:TCP
resources:
limits:
cpu:300m
memory:600Mi
terminationMessagePath:/dev/termination-log
terminationMessagePolicy:File
dnsPolicy:ClusterFirst
restartPolicy:Always
terminationGracePeriodSeconds:30

部署服務

kubectlapply-fweb.yaml

微服務對外發布

通過整個微服務架構可知,只有gateway和前端需要暴露服務。

b8a5f4a4-7633-11ee-939d-92fbcf53809c.png

NorePort方式暴露

gateway對外暴露

gateway-nortport.yaml

---
apiVersion:v1
kind:Service
metadata:
name:gateway
namespace:wms-dev
spec:
ports:
-port:8901
name:gateway
protocol:TCP
targetPort:8901
nodePort:32074
selector:
project:wms
app:gateway
type:NodePort

前端對外暴露

web-noreport.yaml

---
apiVersion:v1
kind:Service
metadata:
labels:
app:wms-web
name:wms-web
namespace:wms-dev
spec:
ports:
-name:http
port:80
protocol:TCP
targetPort:80
nodePort:32248
selector:
app:wms-web
sessionAffinity:None
type:NodePort

Ingress方式暴露

https://blog.csdn.net/qq_40722827/article/details/127929141

b8bee36a-7633-11ee-939d-92fbcf53809c.png

gateway對外暴露

---
apiVersion:networking.k8s.io/v1
kind:Ingress
metadata:
name:gateway
namespace:wms-dev
annotations:
kubernetes.io/ingress.class:"nginx"
nginx.ingress.kubernetes.io/backend-protocol:"HTTP"
spec:
rules:
-host:gateway.wms.com
http:
paths:
-path:/
pathType:Prefix
backend:
service:
name:gateway
port:
number:8901
---
apiVersion:v1
kind:Service
metadata:
name:gateway
namespace:wms-dev
spec:
ports:
-port:8901
name:gateway
selector:
project:wms-dev
app:gateway

前端對外暴露

---
apiVersion:networking.k8s.io/v1
kind:Ingress
metadata:
name:wms-web
namespace:wms-dev
annotations:
kubernetes.io/ingress.class:"nginx"
nginx.ingress.kubernetes.io/backend-protocol:"HTTP"
spec:
rules:
-host:dev.wms.com
http:
paths:
-path:/
pathType:Prefix
backend:
service:
name:wms-web
port:
number:80
---
apiVersion:v1
kind:Service
metadata:
labels:
app:wms-web
name:wms-web
namespace:wms-dev
spec:
ports:
-name:http
protocol:TCP
port:80
targetPort:80
type:ClusterIP
selector:
app:wms-web
sessionAffinity:None

至此,所有微服務已經遷移到Kubernetes容器上了。

b8ce2df2-7633-11ee-939d-92fbcf53809c.png

把我們上面手動做的這些,通過Jenkins等組件搭建成一個自動化部署的過程,就涉及到DevOps相關的知識了。接下來就會編寫這一塊的內容。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 自動化
    +關注

    關注

    29

    文章

    5726

    瀏覽量

    81305
  • 容器
    +關注

    關注

    0

    文章

    504

    瀏覽量

    22332
  • 微服務
    +關注

    關注

    0

    文章

    145

    瀏覽量

    7646

原文標題:SpringCloud 微服務遷移到 Kubernetes 容器化完整流程

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    使用Helm 在容器服務k8s集群一鍵部署wordpress

    摘要: Helm 是啥? 微服務容器給復雜應用部署與管理帶來了極大的挑戰。Helm是目前Kubernetes服務編排領域的唯一開源子項目
    發表于 03-29 13:38

    容器開啟數據服務之旅系列(一):Kubernetes如何解自建PostgreSQL運維之痛

    摘要: 通過阿里云Kubernetes容器服務,開啟你的數據服務之旅 (一)云上運維自建數據庫之痛,使用容器
    發表于 04-17 13:31

    容器開啟數據服務之旅系列(二):Kubernetes如何助力Spark大數據分析

    摘要: 容器開啟數據服務之旅系列(二):Kubernetes如何助力Spark大數據分析 (二):Kubernetes如何助力Spark大數據分析 概述 本文為大家介紹一種
    發表于 04-17 15:10

    微服務容器之間的有何關系?

    現在一提到微服務,有很多人會想到容器技術(這里說到的容器技術是指docker)。那么微服務容器之間到底有什么關系呢,我來簡要和大家探討下。
    的頭像 發表于 02-01 01:58 ?6271次閱讀

    通過微服務原理、領域驅動設計概念等來成功實現微服務

    組織通過微服務基本準則、領域驅動的設計概念和編碼優秀實踐成功地使用微服務,可以充分利用Kubernetes/容器原生的優勢。
    的頭像 發表于 08-14 10:02 ?2028次閱讀

    分析探討微服務遷移如何影響數據庫管理和分解數據庫的步驟

    在從單體式架構遷移到微服務架構時,數據庫通常是事后想法。有些人認為遷移僅涉及應用邏輯的重組,而底層數據保持不變。但是,這種做法可能會導致單體式服務
    的頭像 發表于 10-12 14:43 ?2252次閱讀

    KUBERNETES的工作原理是什么

    Kubernetes 提供了一個框架,用于部署、管理、擴展和切換分布式容器,這些容器是隨依賴項和配置打包的微服務
    的頭像 發表于 06-10 13:19 ?1878次閱讀

    Kubernetes集群內服務通信機制介紹

    現在在 Kubernetes 集群中,我們擁有構成集群管理組件和一組工作機器(稱為節點)的控制平面。這些節點托管 Pod,這些 Pod 將后端微服務作為容器
    發表于 10-04 10:13 ?639次閱讀

    springcloud微服務架構

    Spring Cloud是一個開源的微服務架構框架,它提供了一系列工具和組件,用于構建和管理分布式系統中的微服務。它基于Spring框架,旨在通過簡化開發過程和降低系統復雜性來幫助開發人員構建彈性
    的頭像 發表于 11-23 09:24 ?1806次閱讀

    docker微服務架構實戰

    隨著云計算和容器技術的快速發展,微服務架構在軟件開發領域中變得越來越流行。微服務架構將一個大型的軟件應用拆分成多個小型的、獨立部署的服務
    的頭像 發表于 11-23 09:26 ?785次閱讀

    入門級攻略:如何容器部署微服務

    第一步理解容器基礎,第二步創建Dockerfile,第三步構建推送鏡像,第四步部署微服務,第五步管理微服務、第六步優化更新。容器
    的頭像 發表于 10-09 10:08 ?298次閱讀

    微服務架構與容器云的關系與區別

    微服務架構與容器云密切相關又有所區別。微服務將大型應用拆分為小型、獨立的服務,而容器云基于容器
    的頭像 發表于 10-21 17:28 ?454次閱讀

    寶藏級微服務架構工具合集

    構建,Eclipse Vert.X提供多語言支持且資源高效;Kubernetes是強大的容器編排工具,Tyk是開源API管理平臺;RabbitMQ幫助微服務間通信,Apache Kafka則適用于處理
    的頭像 發表于 12-21 16:33 ?496次閱讀

    容器能替代微服務嗎?兩者有何區別

    容器不能替代微服務,但它是微服務的解決方案之一。微服務架構的核心在于將大型應用程序拆分為一系列小型、獨立的
    的頭像 發表于 01-13 10:40 ?290次閱讀

    微服務容器部署好處多嗎?

    微服務容器部署好處有很多,包括環境一致性、資源高效利用、快速部署與啟動、隔離性與安全性、版本控制與回滾以及持續集成與持續部署。這些優勢助力應用可靠穩定運行,提升開發運維效率,是現代軟件架構的優質選擇。UU云小編認為
    的頭像 發表于 01-17 10:22 ?241次閱讀
    主站蜘蛛池模板: 2021国产精品自在拍在线播放 | 一区二区三区四区在线不卡高清 | 台湾佬自偷自拍情侣在线 | 色费女人18女人毛片免费视频 | 丁香六月欧美 | 视频一区二区不卡 | 综合色久七七综合七七蜜芽 | 色日本视频 | a级精品九九九大片免费看 a级毛毛片看久久 | 久久久午夜视频 | 成人激情在线 | 色网址在线观看 | 女bbbbxxxx毛片视频 | 伊人网在线视频观看 | 美女操网站 | 99草精品视频 | 国产嫩草影院在线观看 | 6969精品视频在线观看 | 日韩精品无码一区二区三区 | 成年视频在线观看 | 国产在线观看黄色 | www.日本黄色 | 手机看片久久 | 天天摸天天摸天天躁 | 一级做a爱片就在线看 | 黄色视屏免费在线观看 | 国内免费视频成人精品 | 国产一区二区三区美女图片 | vip影视免费观看 | 国产激烈床戏无遮挡在线观看 | 激情综合在线观看 | 午夜精品区 | 天天视频国产精品 | 成年黄网站免费大全毛片 | 深夜福利一区 | 成人欧美精品大91在线 | 欧美xxx69| 日韩一级在线 | 免费精品美女久久久久久久久久 | 他也色在线视频 | 色骚综合 |