真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

樹莓派k8s集群如何部署springcloud微服務(wù)項目

這篇文章給大家分享的是有關(guān)樹莓派k8s集群如何部署spring cloud微服務(wù)項目的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元黃山區(qū)做網(wǎng)站,已為上家服務(wù),為黃山區(qū)各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792

spring cloud簡介

spring cloud是當(dāng)前的主流微服務(wù)框架之一,雖然目前官方已經(jīng)推出了spring-cloud-kubernetes開源項目,用于將Spring Cloud應(yīng)用更方便地運行在kubernetes環(huán)境,但考慮到目前有些spring cloud項目還是基于非k8s環(huán)境運行,一旦遷移至k8s環(huán)境需要盡可能保留原有的架構(gòu),因此本項目仍然采用eureka作為服務(wù)注冊發(fā)現(xiàn)組件、spring-cloud-config作為配置中心。

安裝準(zhǔn)備

  • 樹莓派k8s集群

root@pi4-master01:~# kubectl get nodes -o wide
NAME           STATUS   ROLES    AGE     VERSION    INTERNAL-IP    EXTERNAL-IP   OS-IMAGE           KERNEL-VERSION     CONTAINER-RUNTIME
pi4-master01   Ready    master   4d18h   v1.15.10   192.168.5.18           Ubuntu 20.04 LTS   5.4.0-1011-raspi   docker://18.9.9
pi4-node01     Ready    node     4d17h   v1.15.10   192.168.5.19           Ubuntu 20.04 LTS   5.4.0-1011-raspi   docker://18.9.9
pi4-node02     Ready    node     4d17h   v1.15.10   192.168.5.20           Ubuntu 20.04 LTS   5.4.0-1011-raspi   docker://18.9.9
  • 樹莓派k8s集群已安裝helm

root@pi4-master01:~/k8s/cluster-monitoring-0.37.0# helm version
Client: &version.Version{SemVer:"v2.15.0", GitCommit:"c2440264ca6c078a06e088a838b0476d2fc14750", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.15.0+unreleased", GitCommit:"9668ad4d90c5e95bd520e58e7387607be6b63bb6", GitTreeState:"dirty"}

對了,如果你還沒有樹莓派k8s集群,這里有一篇樹莓派 k8s 集群入坑指南可以參考,歡迎入坑。

spring cloud示例項目鏡像

以下是本實踐用到的鏡像,其源碼和Dockerfile在https://gitee.com/pi4k8s/springcloud-simple.git ,具體代碼就不介紹了,有興趣的同學(xué)可以自行調(diào)整。

  • 調(diào)用鏈查看系統(tǒng)(zipkin-server):pi4k8s/spring-cloud-zipkin:0.0.1

  • 服務(wù)發(fā)現(xiàn)注冊中心(eureka):pi4k8s/spring-cloud-eureka:0.0.1

  • 配置中心(config-server):pi4k8s/spring-cloud-config-server:0.0.1

  • 聚合斷路器面板(hystrix-dashboard):pi4k8s/spring-cloud-hystrix-dashboard:0.0.1

  • 服務(wù)提供示例組件(provider):pi4k8s/spring-cloud-provider:0.0.1

  • 服務(wù)消費示例組件(consumer):pi4k8s/spring-cloud-consumer:0.0.1

  • 服務(wù)器網(wǎng)關(guān)(gateway):pi4k8s/spring-cloud-gateway:0.0.1

spring cloud示例項目chart

  • 調(diào)用鏈查看系統(tǒng)(zipkin-server):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/zipkin-server

  • 服務(wù)發(fā)現(xiàn)注冊中心(eureka):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/eureka

  • 配置中心(config-server):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/config-server

  • 服務(wù)提供示例組件(provider):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/provider

  • 服務(wù)消費示例組件(consumer):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/consumer

  • 聚合斷路器面板(hystrix-dashboard):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/hystrix-dashboard

  • 服務(wù)器網(wǎng)關(guān)(gateway):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/gateway

helm部署spring cloud示例項目

之前我們的實例文章里基本都是介紹如何使用現(xiàn)成的chart去安裝一個應(yīng)用,比如msyql、redis、kafka和consul,今天我們選擇從頭編寫chart并用該chart安裝spring cloud示例項目。

helm官方首頁展現(xiàn)了helm的定義“the package manager for kubernetes”和進(jìn)一步說明“Helm is the best way to find, share, and use software built for Kubernetes.”,翻譯成中文就是“kubernetes的應(yīng)用管理器”以及“Helm是發(fā)現(xiàn)、分享和使用為kubernetes構(gòu)建的應(yīng)用最好的方式”,極其精辟。一般來講,為kubernetes構(gòu)建的應(yīng)用基本上就可以看做云原生應(yīng)用,因為它至少符合了CNCF2015年對云原生最早的三個定義:容器化、面向微服務(wù)架構(gòu)且支持容器的編排調(diào)度,由此我們看到helm在云原生領(lǐng)域展現(xiàn)的信心和實力,這點毋庸置疑,因為我們已經(jīng)可以能夠基于各類chart倉庫很容易安裝好我們需要的很多應(yīng)用。但如果你真得沒有找到現(xiàn)成的,那也沒有關(guān)系,可以用helm的語法自己來定義和安裝,一旦你確實這么做了,你會發(fā)現(xiàn)用helm來組織和定義應(yīng)用是如此的簡單和自然,面向容器化環(huán)境的基礎(chǔ)設(shè)施去構(gòu)架,可以讓你不再糾結(jié)于服務(wù)器配置、網(wǎng)絡(luò)配置和具體軟件安裝細(xì)節(jié),只需要關(guān)注應(yīng)用模塊如何劃分,模塊之間關(guān)系如何交互即可?;趆elm chart表述的軟件架構(gòu)視圖可以充分覆蓋傳統(tǒng)軟件架構(gòu)的物理視圖,表現(xiàn)內(nèi)容甚至比它們還要豐富,且更具有擴(kuò)展性。

我們自己編寫spring cloud示例項目chart在這里:https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/

helm部署調(diào)用鏈查看系統(tǒng)(zipkin-server)
  • 使用helm部署zipkin-server命令如下

root@pi4-master01:/home/charts# git clone https://github.com/pi4k8s/pi4charts.git
root@pi4-master01:/home/charts# cd pi4charts/springcloud-example/charts
root@pi4-master01:/home/charts/pi4charts/springcloud-example/charts# helm install -n zipkin-server ./zipkin-server --set ingress.enabled=true

通過上述命令,將在Kubernetes中部署配置中心zipkin-server。該命令將會安裝部署1個zipkin-server節(jié)點,且開放了ingress訪問。。

  • 查看創(chuàng)建的pod

root@pi4-master01:~# kubectl get po|grep zipkin-server
zipkin-server-0                                  1/1     Running   0          82s
  • 查看創(chuàng)建的svc

root@pi4-master01:~# kubectl get svc|grep zipkin-server
zipkin-server                   ClusterIP   10.99.240.173            9411/TCP                     92s
  • 查看創(chuàng)建的ingress

root@pi4-master01:~# kubectl get ingress|grep zipkin-server
zipkin-server   zipkin-server.pi4k8s.com             80      104s
  • 訪問zipkin-server界面
    用瀏覽器訪問http://zipkin-server.pi4k8s.com/,顯示如下
    樹莓派k8s集群如何部署spring cloud微服務(wù)項目

不過現(xiàn)在系統(tǒng)里還沒有任何請求數(shù)據(jù)。

注意:用瀏覽器訪問zipkin-server界面之前要參考如下ip域名映射處理進(jìn)行客戶端設(shè)置。

ip域名映射處理
在通過瀏覽器訪問本實踐所涉及系統(tǒng)之前,我們需要在使用客戶端訪問電腦建立ip和相關(guān)域名的映射關(guān)系,類似如下,后續(xù)eureka、gateway和hystrix-dashboard均需要設(shè)置,參考本段設(shè)置即可,不再贅述:
192.168.5.18 zipkin-server.pi4k8s.com
提示:win10或win7電腦中維護(hù)ip和相關(guān)域名的文件位置在 C:\Windows\System32\drivers\etc\hosts。

helm部署服務(wù)發(fā)現(xiàn)注冊中心(eureka)
  • 使用helm部署eureka集群命令如下

root@pi4-master01:/home/charts# git clone https://github.com/pi4k8s/pi4charts.git
root@pi4-master01:/home/charts# cd pi4charts/springcloud-example/charts
root@pi4-master01:/home/charts/pi4charts/springcloud-example/charts# helm install -n eureka ./eureka --set ingress.enabled=true

通過上述命令,將在Kubernetes中部署eureka集群。該命令將會安裝部署3個eureka節(jié)點,且開放了ingress訪問。

  • 查看創(chuàng)建的pod

root@pi4-master01:~# kubectl get po |grep eureka
eureka-0                                         0/1     Running   0          31s
eureka-1                                         0/1     Running   0          31s
eureka-2                                         0/1     Running   0          31s
  • 查看創(chuàng)建的svc

root@pi4-master01:~# kubectl get svc |grep eureka
eureka                          ClusterIP   None                     8080/TCP                     79s
  • 查看創(chuàng)建的ingress

root@pi4-master01:~# kubectl get ingress |grep eureka
eureka   eureka.pi4k8s.com             80      89s
  • 訪問eureka管理界面

    訪問http://eureka.pi4k8s.com/ ,頁面顯示如下
    樹莓派k8s集群如何部署spring cloud微服務(wù)項目

helm部署配置中心(config-server)
  • 使用helm部署config-server命令如下

root@pi4-master01:/home/charts# git clone https://github.com/pi4k8s/pi4charts.git
root@pi4-master01:/home/charts# cd pi4charts/springcloud-example/charts
root@pi4-master01:/home/charts/pi4charts/springcloud-example/charts# helm install -n config-server ./config-server \
--set service.type=NodePort \
--set service.nodePort=8001

通過上述命令,將在Kubernetes中部署配置中心config-server。默認(rèn)情況下service.type為ClusterIP類型,只支持k8s集群內(nèi)部訪問,示例命令將servcie.type修改為NodePort,且指定開放端口為8001,這樣方便我們從客戶端通過瀏覽器直接訪問查看效果了。

  • 查看創(chuàng)建的pod

root@pi4-master01:~# kubectl get po|grep config-server
config-server-5896754dfc-t5sfl                   1/1     Running   0          6m4s
  • 查看創(chuàng)建的svc

root@pi4-master01:~# kubectl get svc|grep config-server
config-server                   NodePort    10.104.0.119             8001:8001/TCP                6m27s
  • 訪問eureka管理界面

    訪問http://eureka.pi4k8s.com/ 我們可以注意到配置中心已經(jīng)注冊到eureka如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

  • 使用nodeport方式訪問配置中心的配置信息

訪問http://192.168.5.18:8001/config/dev,顯示如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

helm部署服務(wù)提供示例組件(provider)
  • 使用helm部署provider命令如下

root@pi4-master01:/home/charts# git clone https://github.com/pi4k8s/pi4charts.git
root@pi4-master01:/home/charts# cd pi4charts/springcloud-example/charts
root@pi4-master01:/home/charts/pi4charts/springcloud-example/charts# helm install -n provider ./provider \
--set service.type=NodePort \
--set service.nodePort=8007

通過上述命令,將在kubernetes中部署服務(wù)提供示例組件provider。默認(rèn)情況下service.type為ClusterIP類型,只支持k8s集群內(nèi)部訪問,示例命令將servcie.type修改為NodePort,且指定開放端口為8007,這樣方便我們從客戶端通過瀏覽器直接訪問查看效果了。

  • 查看創(chuàng)建的pod

root@pi4-master01:~#  kubectl get po|grep provider
provider-6f7ddcdf98-c9hxd                        1/1     Running   0          33s
  • 查看創(chuàng)建的svc

root@pi4-master01:~# kubectl get svc|grep provider
provider                        NodePort    10.96.156.37              8007:8007/TCP                4m30s
  • 訪問eureka管理界面

    訪問http://eureka.pi4k8s.com/ 我們可以注意到provider已經(jīng)注冊到eureka如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

  • 使用nodeport方式訪問provider的示例接口

provider組件只提供了兩個接口,其中from接口調(diào)用了配置中心的數(shù)據(jù)。

訪問http://192.168.5.18:8007/hello,顯示如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

訪問http://192.168.5.18:8007/from,顯示如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

  • 訪問zipkin-server界面
    provider不僅接入了配置中心,也接入了調(diào)用鏈系統(tǒng),訪問http://zipkin-server.pi4k8s.com/,可以查到相關(guān)調(diào)用鏈訪問情況如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

helm部署服務(wù)消費示例組件(consumer)
  • 使用helm部署consumer命令如下

root@pi4-master01:/home/charts# git clone https://github.com/pi4k8s/pi4charts.git
root@pi4-master01:/home/charts# cd pi4charts/springcloud-example/charts
root@pi4-master01:/home/charts/pi4charts/springcloud-example/charts# helm install -n consumer ./consumer \
--set service.type=NodePort \
--set service.nodePort=9000

通過上述命令,將在Kubernetes中部署服務(wù)消費示例組件consumer。默認(rèn)情況下service.type為ClusterIP類型,只支持k8s集群內(nèi)部訪問,示例命令將servcie.type修改為NodePort,且指定開放端口為9000,這樣方便我們從客戶端通過瀏覽器直接訪問查看效果了。

  • 查看創(chuàng)建的pod

root@pi4-master01:~#  kubectl get po|grep consumer
consumer-797656455-x2cgv                        0/1     Running   2          19m
  • 查看創(chuàng)建的svc

root@pi4-master01:~# kubectl get svc|grep consumer
consumer                        NodePort    10.96.219.125            9000:9000/TCP                20m
  • 訪問eureka管理界面

    訪問http://eureka.pi4k8s.com/ 我們可以注意到consumer已經(jīng)注冊到eureka如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

  • 使用nodeport方式訪問consumer的示例接口

訪問http://192.168.5.18:9000/hello,顯示如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

  • 訪問zipkin-server界面

consumer接入了調(diào)用鏈系統(tǒng),訪問http://zipkin-server.pi4k8s.com/,可以查到相關(guān)調(diào)用鏈訪問情況如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

  • 訪問hystrix-dashboard界面

consumer配置了斷路器面板可以獨立展示,訪問http://192.168.5.18:9000/hystrix,顯示如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目
該界面文本框內(nèi)輸入http://192.168.5.18:9000/actuator/hystrix.stream ,然后點擊“Monitor Stream”按鈕,顯示如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

helm部署聚合斷路器面板(hystrix-dashboard)
  • 使用helm部署hystrix-dashboard命令如下

root@pi4-master01:/home/charts# git clone https://github.com/pi4k8s/pi4charts.git
root@pi4-master01:/home/charts# cd pi4charts/springcloud-example/charts
root@pi4-master01:/home/charts/pi4charts/springcloud-example/charts# helm install -n hystrix-dashboard ./hystrix-dashboard --set ingress.enabled=true

通過上述命令,將在Kubernetes中部署斷路器面板hystrix-dashboard。該命令將會安裝部署1個hystrix-dashboard節(jié)點,且開放了ingress訪問,該斷路器目前只聚合了consumer集群斷路器面板。

  • 查看創(chuàng)建的pod

root@pi4-master01:~# kubectl get po|grep hystrix-dashboard
hystrix-dashboard-6fd9b87589-65g89              0/1     Running   1          2m50s
  • 查看創(chuàng)建的svc

root@pi4-master01:~# kubectl get svc|grep hystrix-dashboard
hystrix-dashboard               ClusterIP   10.106.100.154            9902/TCP                     18m
  • 查看創(chuàng)建的ingress

root@pi4-master01:~# kubectl get ingress|grep hystrix-dashboard
hystrix-dashboard   hystrix-dashboard.pi4k8s.com             80      18m
  • 訪問eureka管理界面
    訪問http://eureka.pi4k8s.com/ 我們可以注意到hystrix-dashboard已經(jīng)注冊到eureka如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

  • 訪問hystrix-dashboard界面

訪問http://hystrix-dashboard.pi4k8s.com/hystrix,顯示如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

該界面文本框內(nèi)輸入http://hystrix-dashboard:9902/turbine.stream ,然后點擊“Monitor Stream”按鈕,進(jìn)入聚合監(jiān)控頁面,顯示如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

consumer伸縮為3個后再看效果

root@pi4-master01:~# kubectl scale --replicas=3 deployment/consumer
deployment.extensions/consumer scaled

確認(rèn)consumer啟動3個節(jié)點成功

root@pi4-master01:~# kubectl get po|grep consumer
consumer-797656455-hsssp                         1/1     Running   0          11m
consumer-797656455-wq67x                         1/1     Running   0          86s
consumer-797656455-x2cgv                         1/1     Running   0          28m

訪問http://eureka.pi4k8s.com/ 我們可以注意到consumer在eureka注冊了3個節(jié)點如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

刷新聚合監(jiān)控頁面,顯示如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

可以看到Hosts變?yōu)?。

helm部署服務(wù)器網(wǎng)關(guān)(gateway)
  • 使用helm部署gateway命令如下

root@pi4-master01:/home/charts# git clone https://github.com/pi4k8s/pi4charts.git
root@pi4-master01:/home/charts# cd pi4charts/springcloud-example/charts
root@pi4-master01:/home/charts/pi4charts/springcloud-example/charts# helm install -n gateway ./gateway --set ingress.enabled=true

通過上述命令,將在kubernetes中部署服務(wù)器網(wǎng)關(guān)gateway。該命令將會安裝部署1個gateway節(jié)點,且開放了ingress訪問。

  • 查看創(chuàng)建的pod

root@pi4-master01:~# kubectl get po|grep gateway
gateway-69b9d7fb87-9zgz9                         1/1     Running   0          86s
  • 查看創(chuàng)建的svc

root@pi4-master01:~# kubectl get svc|grep gateway
gateway                         ClusterIP   10.103.12.68             8220/TCP                     3m57s
  • 查看創(chuàng)建的ingress

root@pi4-master01:~# kubectl get ingress|grep gateway
gateway             gateway.pi4k8s.com                       80      4m3s
  • 訪問eureka管理界面

    訪問http://eureka.pi4k8s.com/ 我們可以注意到gateway已經(jīng)注冊到eureka如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

  • 基于網(wǎng)關(guān)訪問provider和consumer的接口

這里的網(wǎng)關(guān)配置非常簡單,通過它可以對所有注冊到同一個eureka集群的服務(wù)進(jìn)行代理,我們基于網(wǎng)關(guān)訪問provider的2個接口和consumer的1個接口,看下效果。

訪問http://gateway.pi4k8s.com/provider/hello,顯示如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

訪問http://gateway.pi4k8s.com/provider/from,顯示如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

訪問http://gateway.pi4k8s.com/consumer/hello,顯示如下

樹莓派k8s集群如何部署spring cloud微服務(wù)項目

感謝各位的閱讀!關(guān)于“樹莓派k8s集群如何部署spring cloud微服務(wù)項目”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


本文名稱:樹莓派k8s集群如何部署springcloud微服務(wù)項目
文章位置:http://weahome.cn/article/gecdep.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部