前置条件
- 开通云容器引擎集群
- 开通MSE云原生网关实例,绑定公网ELB
- 需要部署的镜像已经上传到镜像仓库
云原生网关配置
- 配置云容器引擎服务来源,安装Ingress controller(注意配置我们要监听的命名空间的标签,这里我们只监听带有mse-ingress=watching的命名空间)
创建完成后可以看到云容器引擎上Ingress controller安装成功
- 部署应用
给demo应用添加标签mse-ingress=watching
在demo命名空间下部署我们的测试应用(请确保镜像已经推送到镜像仓库),这里我们使用istio的bookinfo说明,部署完成后demo命名空间下的应用列表如下:
如果需要正常访问bookinfo应用需要配置以下路由规则:
路径精确匹配:/productpage,/login,/logout
路径前缀匹配:/static/,/api/v1/products/
访问后端productpage服务
其中/productpage 路径是我们应用的访问入口
此时我们访问云原生网关的ELB地址:http://121.229.70.242:27156/productpage
由于此时我们还没有创建服务和路由规则,访问会返回404错误
通过K8s Ingress实现路由管控
首先清除上一步创建的apisix ingress资源,在demo命名空间内创建K8s Ingress资源,定义如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: httpserver-ingress
namespace: demo
spec:
ingressClassName: mse
rules:
- http:
paths:
- backend:
service:
name: productpage
port:
number: 9080
path: /productpage
pathType: Exact
- backend:
service:
name: productpage
port:
number: 9080
path: /static/
pathType: Prefix
- backend:
service:
name: productpage
port:
number: 9080
path: /login
pathType: Exact
- backend:
service:
name: productpage
port:
number: 9080
path: /logout
pathType: Exact
- backend:
service:
name: productpage
port:
number: 9080
path: /api/v1/products/
pathType: Prefix
刷新浏览器,可以看到bookinfo应用正常运行: