python 模擬Spring Cloud+k8s發佈

一、概述

在上一篇文章,鏈接如下:

https://www.cnblogs.com/xiao987334176/p/12260474.html

在一臺服務器上面,使用6個django項目,演示了一下Spring Cloud

下面將詳細介紹,如何使用k8s發佈。

 

二、項目演示2.0

環境說明

 

 

MySQL

繼續使用1.0版本中的mysql

 

url轉發

 

 

說明

以svc-gateway.default.svc.cluster.local爲例:

svc-gateway 表示service名

default 表示命名空間

svc.cluster.local 表示service的cluster ip

 

項目下載地址:

https://github.com/py3study/django-spring-cloud

 

封裝鏡像

django基礎鏡像

cd django-spring-cloud/2.0/django_base
docker build -t django:2.2.4 .

 

eureka

cd django-spring-cloud/2.0/eureka
docker build -t eureka:v1 .

 

config

cd django-spring-cloud/2.0/config
docker build -t config:v1 .

 

auth

cd django-spring-cloud/2.0/auth
docker build -t auth:v1 .

 

user

cd django-spring-cloud/2.0/user
docker build -t user:v1 .

 

gateway

cd django-spring-cloud/2.0/gateway
docker build -t gateway:v1 .

 

前端

cd django-spring-cloud/2.0/demo_login
docker build -t demo_login:v1 .

 

推送鏡像

docker login 192.168.31.37 -u admin -p Harbor12345

docker tag eureka:v1 192.168.31.37/library/eureka:v1
docker push 192.168.31.37/library/eureka:v1

docker tag config:v1 192.168.31.37/library/config:v1
docker push 192.168.31.37/library/config:v1

docker tag auth:v1 192.168.31.37/library/auth:v1
docker push 192.168.31.37/library/auth:v1

docker tag user:v1 192.168.31.37/library/user:v1
docker push 192.168.31.37/library/user:v1

docker tag gateway:v1 192.168.31.37/library/gateway:v1
docker push 192.168.31.37/library/gateway:v1

docker tag demo_login:v1 192.168.31.37/library/demo_login:v1
docker push 192.168.31.37/library/demo_login:v1

 

k8s發佈應用

安裝ingress

kubectl apply -f https://kuboard.cn/install-script/v1.17.x/nginx-ingress.yaml

 

eureka

cd django-spring-cloud/2.0/eureka/
kubectl apply -f eureka.yaml
kubectl apply -f eureka-ingress.yaml 

注意:請修改yaml文件中的倉庫地址,改爲實際環境中的harbor

 

config

cd django-spring-cloud/2.0/config/
kubectl apply -f config.yaml

注意:請修改yaml文件中的倉庫地址,改爲實際環境中的harbor

 

auth

cd django-spring-cloud/2.0/auth/
kubectl apply -f auth.yaml
kubectl apply -f auth-ingress.yaml 

注意:請修改yaml文件中的倉庫地址,改爲實際環境中的harbor

 

user

cd django-spring-cloud/2.0/user/
kubectl apply -f user.yaml
kubectl apply -f user-ingress.yaml 

注意:請修改yaml文件中的倉庫地址,改爲實際環境中的harbor

 

gateway

cd django-spring-cloud/2.0/gateway/
kubectl apply -f gateway.yaml
kubectl apply -f gateway-ingress.yaml 

注意:請修改yaml文件中的倉庫地址,改爲實際環境中的harbor

 

前端

cd django-spring-cloud/2.0/demo_login
kubectl apply -f login.yaml
kubectl apply -f login-ingress.yaml

注意:請修改yaml文件中的倉庫地址,改爲實際環境中的harbor

 

查看pods

# kubectl get pods -o wide
NAME                           READY   STATUS    RESTARTS   AGE   IP              NODE         NOMINATED NODE   READINESS GATES
svc-auth-69b784b446-qvz27      1/1     Running   0          48m   10.244.85.205   k8s-node01   <none>           <none>
svc-config-9cbd44858-m5z7p     1/1     Running   0          53m   10.244.85.204   k8s-node01   <none>           <none>
svc-eureka-55d485749-mpqhw     1/1     Running   0          41m   10.244.85.207   k8s-node01   <none>           <none>
svc-gateway-645755cb8d-nkfp7   1/1     Running   0          68m   10.244.85.203   k8s-node01   <none>           <none>
svc-login-66c8d579b5-xg6l6     1/1     Running   0          23m   10.244.85.210   k8s-node01   <none>           <none>
svc-user-5c8799c845-jxlr4      1/1     Running   0          25m   10.244.85.209   k8s-node01   <none>           <none>

確保處於Running 狀態

 

查看ingress

# kubectl get ingresses.extensions
NAME          HOSTS              ADDRESS   PORTS   AGE
svc-auth      auth.baidu.com               80      31m
svc-eureka    eureka.baidu.com             80      22m
svc-gateway   api.baidu.com                80      100m
svc-login     h5.baidu.com                 80      96m
svc-user      user.baidu.com               80      28m

 

訪問頁面

在1.0中,使用了nginx轉發。在2.0就無需nginx轉發了,直接使用ingress轉發。

域名解析

將域名解析到任意node節點的ip即可。

192.168.31.178 h5.baidu.com
192.168.31.178 api.baidu.com
192.168.31.178 auth.baidu.com
192.168.31.178 user.baidu.com
192.168.31.178 eureka.baidu.com

 

http://h5.baidu.com

 

 

登錄信息

用戶名:xiao
密碼:1234

 

登錄成功之後,效果如下:

 

 

 點擊auth

 

 

 

查看api-docs

http://auth.baidu.com/api-docs/

如果谷歌瀏覽器安裝了 JSON Formatter插件,效果就是下面的樣子:

 

 如果沒有安裝插件,就是一行展示

訪問eureka註冊中心

http://eureka.baidu.com/

效果如下:

 

  確保狀態都是UP,前端頁面會每隔1秒,檢測一次後端服務。不正常時,顯示爲DOWN

 

發佈了287 篇原創文章 · 獲贊 10 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章