前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 模拟Spring Cloud+k8s发布

python 模拟Spring Cloud+k8s发布

作者头像
py3study
发布2020-03-27 15:35:36
5520
发布2020-03-27 15:35:36
举报
文章被收录于专栏:python3python3

项目演示2.0

环境说明

1.png
1.png

MySQL

继续使用1.0版本中的mysql

url转发

1.png
1.png

说明

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

svc-gateway 表示service名

default 表示命名空间

svc.cluster.local 表示service的cluster ip

项目下载地址:

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

封装镜像

django基础镜像

代码语言:javascript
复制
cd django-spring-cloud/2.0/django_base
docker build -t django:2.2.4 .

eureka

代码语言:javascript
复制
cd django-spring-cloud/2.0/eureka
docker build -t eureka:v1 .

config

代码语言:javascript
复制
cd django-spring-cloud/2.0/config
docker build -t config:v1 .

auth

代码语言:javascript
复制
cd django-spring-cloud/2.0/auth
docker build -t auth:v1 .

user

代码语言:javascript
复制
cd django-spring-cloud/2.0/user
docker build -t user:v1 .

gateway

代码语言:javascript
复制
cd django-spring-cloud/2.0/gateway
docker build -t gateway:v1 .

前端

代码语言:javascript
复制
cd django-spring-cloud/2.0/demo_login
docker build -t demo_login:v1 .

推送镜像

代码语言:javascript
复制
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

代码语言:javascript
复制
kubectl apply -f https://kuboard.cn/install-script/v1.17.x/nginx-ingress.yaml

eureka

代码语言:javascript
复制
cd django-spring-cloud/2.0/eureka/
kubectl apply -f eureka.yaml
kubectl apply -f eureka-ingress.yaml

注意:请修改yaml文件中的仓库地址,改为实际环境中的harbor

config

代码语言:javascript
复制
cd django-spring-cloud/2.0/config/
kubectl apply -f config.yaml

注意:请修改yaml文件中的仓库地址,改为实际环境中的harbor

auth

代码语言:javascript
复制
cd django-spring-cloud/2.0/auth/
kubectl apply -f auth.yaml
kubectl apply -f auth-ingress.yaml

注意:请修改yaml文件中的仓库地址,改为实际环境中的harbor

user

代码语言:javascript
复制
cd django-spring-cloud/2.0/user/
kubectl apply -f user.yaml
kubectl apply -f user-ingress.yaml

注意:请修改yaml文件中的仓库地址,改为实际环境中的harbor

gateway

代码语言:javascript
复制
cd django-spring-cloud/2.0/gateway/
kubectl apply -f gateway.yaml
kubectl apply -f gateway-ingress.yaml

注意:请修改yaml文件中的仓库地址,改为实际环境中的harbor

前端

代码语言:javascript
复制
cd django-spring-cloud/2.0/demo_login
kubectl apply -f login.yaml
kubectl apply -f login-ingress.yaml

注意:请修改yaml文件中的仓库地址,改为实际环境中的harbor

查看pods

复制代码
复制代码
代码语言:javascript
复制
# 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

代码语言:javascript
复制
# 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即可。

代码语言:javascript
复制
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
代码语言:javascript
复制
http://h5.baidu.com
1.png
1.png

登录信息

代码语言:javascript
复制
用户名:xiao
密码:1234

登录成功之后,效果如下:

1.png
1.png

 点击auth

1.png
1.png

查看api-docs

代码语言:javascript
复制
http://auth.baidu.com/api-docs/

如果谷歌浏览器安装了 JSON Formatter插件,效果就是下面的样子:

1.png
1.png

 如果没有安装插件,就是一行展示

1.png
1.png

访问eureka注册中心

代码语言:javascript
复制
http://eureka.baidu.com/

效果如下:

1.png
1.png

  确保状态都是UP,前端页面会每隔1秒,检测一次后端服务。不正常时,显示为DOWN

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目演示2.0
    • 环境说明
      • MySQL
        • url转发
          • 说明
        • 封装镜像
          • django基础镜像
          • eureka
          • config
          • auth
          • user
          • gateway
          • 前端
          • 推送镜像
        • k8s发布应用
          • 安装ingress
          • eureka
          • config
          • auth
          • user
          • gateway
          • 前端
        • 查看pods
          • 查看ingress
            • 访问页面
              • 域名解析
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档