一、第一次部署前置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,下一步
选择镜像仓库秘钥
http://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: 'http://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镜像,
见 4.使用Dockerfile打包nginx镜像
4.使用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
二、
三、
四、
五、
六、
|