亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-11-20 10:31:43 來源:億速云 閱讀:228 作者:小新 欄目:大數據

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

spring cloud簡介

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

安裝準備

  • 樹莓派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   <none>        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   <none>        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   <none>        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 ,具體代碼就不介紹了,有興趣的同學可以自行調整。

  • 調用鏈查看系統(zipkin-server):pi4k8s/spring-cloud-zipkin:0.0.1

  • 服務發現注冊中心(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

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

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

  • 服務器網關(gateway):pi4k8s/spring-cloud-gateway:0.0.1

spring cloud示例項目chart

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

  • 服務發現注冊中心(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

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

  • 服務消費示例組件(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

  • 服務器網關(gateway):https://github.com/pi4k8s/pi4charts/tree/master/springcloud-example/charts/gateway

helm部署spring cloud示例項目

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

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

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

helm部署調用鏈查看系統(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節點,且開放了ingress訪問。。

  • 查看創建的pod

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

root@pi4-master01:~# kubectl get svc|grep zipkin-server
zipkin-server                   ClusterIP   10.99.240.173   <none>         9411/TCP                     92s
  • 查看創建的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微服務項目

不過現在系統里還沒有任何請求數據。

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

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

helm部署服務發現注冊中心(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節點,且開放了ingress訪問。

  • 查看創建的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
  • 查看創建的svc

root@pi4-master01:~# kubectl get svc |grep eureka
eureka                          ClusterIP   None            <none>         8080/TCP                     79s
  • 查看創建的ingress

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

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

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。默認情況下service.type為ClusterIP類型,只支持k8s集群內部訪問,示例命令將servcie.type修改為NodePort,且指定開放端口為8001,這樣方便我們從客戶端通過瀏覽器直接訪問查看效果了。

  • 查看創建的pod

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

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

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

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

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

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

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

helm部署服務提供示例組件(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中部署服務提供示例組件provider。默認情況下service.type為ClusterIP類型,只支持k8s集群內部訪問,示例命令將servcie.type修改為NodePort,且指定開放端口為8007,這樣方便我們從客戶端通過瀏覽器直接訪問查看效果了。

  • 查看創建的pod

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

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

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

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

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

provider組件只提供了兩個接口,其中from接口調用了配置中心的數據。

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

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

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

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

  • 訪問zipkin-server界面
    provider不僅接入了配置中心,也接入了調用鏈系統,訪問http://zipkin-server.pi4k8s.com/,可以查到相關調用鏈訪問情況如下

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

helm部署服務消費示例組件(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中部署服務消費示例組件consumer。默認情況下service.type為ClusterIP類型,只支持k8s集群內部訪問,示例命令將servcie.type修改為NodePort,且指定開放端口為9000,這樣方便我們從客戶端通過瀏覽器直接訪問查看效果了。

  • 查看創建的pod

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

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

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

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

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

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

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

  • 訪問zipkin-server界面

consumer接入了調用鏈系統,訪問http://zipkin-server.pi4k8s.com/,可以查到相關調用鏈訪問情況如下

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

  • 訪問hystrix-dashboard界面

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

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

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

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節點,且開放了ingress訪問,該斷路器目前只聚合了consumer集群斷路器面板。

  • 查看創建的pod

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

root@pi4-master01:~# kubectl get svc|grep hystrix-dashboard
hystrix-dashboard               ClusterIP   10.106.100.154   <none>         9902/TCP                     18m
  • 查看創建的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已經注冊到eureka如下

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

  • 訪問hystrix-dashboard界面

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

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

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

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

consumer伸縮為3個后再看效果

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

確認consumer啟動3個節點成功

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個節點如下

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

刷新聚合監控頁面,顯示如下

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

可以看到Hosts變為3。

helm部署服務器網關(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中部署服務器網關gateway。該命令將會安裝部署1個gateway節點,且開放了ingress訪問。

  • 查看創建的pod

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

root@pi4-master01:~# kubectl get svc|grep gateway
gateway                         ClusterIP   10.103.12.68    <none>         8220/TCP                     3m57s
  • 查看創建的ingress

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

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

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

  • 基于網關訪問provider和consumer的接口

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

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

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

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

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

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

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青川县| 修武县| 遂宁市| 大姚县| 克什克腾旗| 长兴县| 和田市| 东乡| 高要市| 乐清市| 手机| 友谊县| 天门市| 崇礼县| 白沙| 老河口市| 青浦区| 含山县| 湘西| 吕梁市| 兖州市| 苗栗县| 房山区| 鄄城县| 黎平县| 巴中市| 宜昌市| 嘉荫县| 桃园县| 习水县| 绍兴市| 台南市| 广州市| 安义县| 洛川县| 西畴县| 扎兰屯市| 白银市| 莒南县| 南投市| 九台市|