前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前后端分离架构+k8s+ingress

前后端分离架构+k8s+ingress

作者头像
py3study
发布2020-03-25 17:16:15
1.8K0
发布2020-03-25 17:16:15
举报
文章被收录于专栏:python3python3

一、概述

在前面几篇文章中,已经讲到了前后端分离架构和ingress,链接如下:

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

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

接下来使用k8s进行发布应用

二、演示3.0

环境说明

k8s集群

系统

docker

ip

主机名

配置

centos 7.6

19.03.5

192.168.31.150

k8s-master

2核4G

centos 7.6

19.03.5

192.168.31.178

k8s-node01

2核4G

centos 7.6

19.03.5

192.168.31.164

k8s-node02

2核4G

harbor

系统

docker

docker-compose

harbor

ip

主机名

配置

centos 7.6

19.03.5

1.24.1

1.8.0

192.168.31.37

harbor

2核4G

关于k8s搭建,请参考链接:

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

关于harbor搭建,请参考链接:

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

推送镜像到harbor

在前面2.0的环境中,已经打包好了login和api镜像,直接推送到harbor仓库即可。

修改docker配置文件,增加harbor地址

代码语言:javascript
复制
vi /etc/docker/daemon.json

内容如下:

代码语言:javascript
复制
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"],
  "insecure-registries": ["192.168.31.37"]
}

重启docker

代码语言:javascript
复制
systemctl restart docker

docker登录harbor,直接使用管理员账号登录

代码语言:javascript
复制
docker login 192.168.31.37 -u admin -p Harbor12345

打tag并推送

代码语言:javascript
复制
docker tag demo_api:v1 192.168.31.37/library/demo_api:v1
docker push 192.168.31.37/library/demo_api: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集群登录harbor

登录到k8s集群中的master节点以及node节点。

修改docker配置文件,增加harbor地址

代码语言:javascript
复制
vi /etc/docker/daemon.json

内容如下:

代码语言:javascript
复制
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"],
  "insecure-registries": ["192.168.31.37"]
}

重启docker

代码语言:javascript
复制
systemctl restart docker

k8s发布应用

代码语言:javascript
复制
yum install -y git
git clone https://github.com/py3study/django-login-example.git

前端

login.yaml是使用kuboard生成的,login-ingress.yaml是否手写的。因为kuboard生成的ingress有bug,外部无法访问。

代码语言:javascript
复制
cd django-login-example/3.0
kubectl apply -f login.yaml
kubectl apply -f login-ingress.yaml

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

api

代码语言:javascript
复制
cd django-login-example/3.0
kubectl apply -f api.yaml
kubectl apply -f api-ingress.yaml

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

查看pods

复制代码
复制代码
代码语言:javascript
复制
# kubectl get pods -o wide
NAME                          READY   STATUS    RESTARTS   AGE     IP              NODE         NOMINATED NODE   READINESS GATES
svc-api-6559bb7cb8-58fvj      1/1     Running   0          2m24s   10.244.58.197   k8s-node02   <none>           <none>svc-login-66c8d579b5-94x6t    1/1     Running   0          2m30s   10.244.85.198   k8s-node01   <none>           <none>
复制代码
复制代码

确保处于`Running`状态,如果出现imagesoff,请确保node能下载镜像,镜像地址是否正确,是否登录了harbor

查看ingress

代码语言:javascript
复制
# kubectl get ingresses.extensions
NAME           HOSTS                ADDRESS   PORTS   AGE
svc-api        api.baidu.com                  80      4m37s
svc-login      h5.baidu.com                   80      4m43s

访问页面

在1.0和2.0中,都使用了nginx转发。在3.0就无需nginx转发了,直接使用ingress转发。

将域名解析到任意node节点的ip即可。如果没有dns,windows 10添加2条hosts记录

代码语言:javascript
复制
192.168.31.178 h5.baidu.com
192.168.31.178 api.baidu.com

访问登录页面

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

效果如下:

1.png
1.png

登录成功后,效果如下:

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

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

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

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

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