一、概述
在上一篇文章,鏈接如下:
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