最终部署
一、第一次部署前置nginx
1、前提
nginx的上游服务器指向网关项目
56.10的nginx的上游服务器指向网关项目,
nginx配置文件
nginx的镜像上传到阿里云镜像仓库
nginx的上游服务器指向网关项目,镜像仓库是公开的
2、把nginx部署到k8s
2.1. 创建秘钥
gulimall,配置中心,秘钥,创建
aliyun-docker
阿里云镜像仓库秘钥
下一步
registry.cn-shanghai.aliyuncs.com
阳光下的你0
6的qq@qq.com
lzl123456
创建
apiVersion: v1
kind: Secret
metadata:
namespace: gulimall
labels:
app: hub-docker
name: hub-docker
type: kubernetes.io/dockerconfigjson
spec:
template:
metadata:
labels:
app: hub-docker
data:
.dockerconfigjson:
username: 阳光下的你0
password: lzl123456
url: 'http://registry.cn-shanghai.aliyuncs.com'
email: 632078823@qq.com
创建失败
换一个阿里云账号,注册阿里云账号,lzl123456,huanhuan0,
阿里云镜像仓库登录密码 lzl123456
阿里云仓库地址:https://cr.console.aliyun.com/cn-hangzhou/instances/repositories
重新创建秘钥,成功
hub-docker,下一步
选择镜像仓库秘钥
https://registry.cn-hangzhou.aliyuncs.com
lzl123456
lzl123456
318284095@qq.com
创建
配置文件如下
apiVersion: v1
kind: Secret
metadata:
namespace: gulimall
labels:
app: hub-docker
name: hub-docker
type: kubernetes.io/dockerconfigjson
spec:
template:
metadata:
labels:
app: hub-docker
data:
.dockerconfigjson:
username: lzl123456
password: lzl123456
url: 'https://registry.cn-hangzhou.aliyuncs.com'
email: 318284095@qq.com
把gulimall-nginx上传到阿里云镜像仓库
登录新的阿里云镜像仓库
docker login -u lzl123456 -p lzl123456 registry.cn-hangzhou.aliyuncs.com
推送nginx镜像到阿里云镜像仓库
docker push registry.cn-hangzhou.aliyuncs.com/lzl123456/gulimall-nginx:v1.0
把镜像仓库设为公开
2.2. 创建nginx服务
无状态服务, 创建
gulimall-nginx
下一步
添加容器,
lzl123456/gulimall-nginx:v1.0
使用默认端口
对号,下一步
下一步
外网访问
创建
查看nginx端口号
对外暴露的80端口号是32187
测试访问nginx,ok
http://192.168.56.100:32187
2.3. 创建ingress-controller
作用:让每个节点都可以访问80和443端口
80是http端口,443是https端口
指定的域名 来到任何节点的服务器,节点会按照域名转发到指定服务。
目前:nginx有了,可以通过ip和端口号访问。访问服务器不方便,怎么办?
给前置,搭建一个ingress-controller,即k8s的网关
k8s配置网关后,会给每台机器开启80和443端口
服务流程:
域名–>网关–>节点–>域名的服务器
怎么操作,见 3.nginx设置前置访问路由
3.nginx设置前置访问路由
使用admin或者project-admin登录,开启网关路由功能
设置网关
gulimall,项目设置,高级设置,设置网关,点击设置网关
创建负载均衡的网关,成功
设置应用路由
gulimall,应用负载,应用路由,点击创建应用路由
gulimall-com
下一步
点击 添加路由规则
gulimall.com
点击对号,下一步
创建
应用路由创建,成功
配置域名
不能是k8s的master节点,可以是其他节点
如:
192.168.56.101 gulimall.com
测试域名访问nginx,ok
gulimall.com
问题:gulimall.com映射到product的首页,失败
访问gulimall.com,应该映射到product的首页,但是失败,怎么办?
重新打包,使用Dockerfile打包nginx镜像,
见商城系统上线的 1.使用Dockerfile打包nginx镜像
二、商城系统上线
1.使用Dockerfile打包nginx镜像
把nginx放入电商(192.56.56.10)的opt下
Dockerfile内容
FROM nginx
MAINTAINER leifengyang
ADD html.tar.gz /usr/share/nginx/html
ADD conf.tar.gz /etc/nginx
EXPOSE 80
ENTRYPOINT nginx -g "daemon off;"
打包
docker build -t mynginx:v1.2 -f Dockerfile .
docker images
推送到阿里云镜像仓库
docker tag 483ddca64bc3 registry.cn-hangzhou.aliyuncs.com/lzl123456/gulimall-nginx:v1.2
docker login -u lzl123456 -p lzl123456 registry.cn-hangzhou.aliyuncs.com
docker push registry.cn-hangzhou.aliyuncs.com/lzl123456/gulimall-nginx:v1.2
修改nginx服务,使用新版本
修改nginx服务,使用新版本v1.2
对号,下一步,下一步
外网访问,
创建
nginx端口号,30497
删除应用路由,重新创建应用路由
使用域名进行访问
域名配置后,用域名访问,直接访问到product商城首页
gulimall.com
配置项目的域名
管理员权限打开SwitchHosts
192.168.56.101 gulimall.com
192.168.56.101 search.gulimall.com
192.168.56.101 item.gulimall.com
192.168.56.101 auth.gulimall.com
192.168.56.101 cart.gulimall.com
192.168.56.101 order.gulimall.com
192.168.56.101 member.gulimall.com
192.168.56.101 seckill.gulimall.com
添加ingress-controller的路由规则
打开应用路由,
gulimall–>应用负载—>应用路由
进入gulimall-com应用路由里
更多操作–>编辑规则
添加路由规则
添加所有项目的路由规则
search.gulimall.com
item.gulimall.com
auth.gulimall.com
cart.gulimall.com
order.gulimall.com
member.gulimall.com
seckill.gulimall.com
所有服务全部交给nginx
其他服务与search一样
结果
更新
访问域名的顺序
访问域名–>k8s的节点—>节点的ingress—>ingress转给动静分离的nginx—>nginx根据网关转给对应服务
三、部署Vue后台管理系统
1、打包项目
修改配置
修改生产环境的配置
修改index-prod.js文件
window.SITE_CONFIG['baseUrl'] = 'http://192.168.56.100:31003/api';
192.168.56.100:31003是网关项目和端口
打包项目
npm run build
打包成功后,删除dist目录
测试访问首页面
打开dist文件,点击index.html文件,测试访问首页面,
验证码没有效果
把dist压缩成tar.gz
进入dist文件,全选,压缩成tar.gz格式的压缩包
windows无法把文件压缩成tar.gz格式
使用7-Zip软件
创建文件夹admin-vue-app
把dist.tar.gz,DockerFile添加到文件夹admin-vue-app
2.打包前端镜像
进入谷粒商城的linux,即56.10,把admin-vue-app上传到/opt下,使用Dockerfile进行镜像打包
修改DockerFile文件
使用Dockerfile进行镜像打包
docker build -t gulimall-admin-vue-app:v1.0 -f Dockerfile .
推送镜像到阿里云镜像
修改镜像标签
docker tag xxxx xxx
推送镜像
docker push xxx
3.创建服务
创建服务
k8s登录,创建前端服务
gulimall-admin-vue-app
应用路由添加路由规则
配置域名
4.注意,重新打包 一次
删除dist目录
打包前端项目
npm run build
把dist压缩为tar.gz
把dist.tar.gz加入admin-vue-app文件夹
把admin-vue-app文件夹上传到linux
上传到电商的linux的/opt下,即docker的192.168.56.10
构建docker镜像
把前端项目,构建docker镜像
docker build -t registry.cn-hangzhou.aliyuncs.com/lzl123456/gulimall-admin-vue-app:v1.1 -f Dockerfile .
构建镜像成功
上传到阿里云镜像仓库
docker push registry.cn-hangzhou.aliyuncs.com/lzl123456/gulimall-admin-vue-app:v1.1
查看阿里云镜像仓库
lzl123456登录,密码它+0
https://cr.console.aliyun.com/cn-hangzhou/instances/repositories
5、创建前端服务
创建前端服务
k8s登录,创建前端服务
服务名称: gulimall-admin-vue-app
下一步
添加容器
lzl123456/gulimall-admin-vue-app:v1.1
对号,下一步,下一步
外网访问:node port,创建
应用路由添加路由规则
admin.gulimall.com
配置域名
192.168.56.101 admin.gulimall.com