Catalogue
本文介绍用traefik作为Ingress Controller的实现。
Traefik简介
Traefik是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。
可以通过Deployment或DaemonSet对象部署Traefik,而这两个选项各有利弊。
DaemonSet部署Traefik
- traefik-rbac.yaml
1 | --- |
- traefik-ds.yaml
1 | --- |
- traefik-ui.yaml
- 此配置文件配置一条访问traefik-ui的ingress规则
- 然后访问traefik-ui.yfming.com即可查进入traefik-ui界面,记得配本地hosts映射
1 | --- |
Deployment部署Traefik
- traefik-rbac.yaml,同上
- traefik-deployment.yaml
1 | --- |
- traefik-ui.yaml同上
- 访问traefik-ui.yfming.com:30808,即可进入traefik-ui界面
部署测试服务
- stilton: 访问/路径会展示stilton
- cheddar:访问/路径会展示cheddar
- wensleydale:访问/路径会展示wensleydale
- cheese-deployments.yaml
1 | --- |
- cheese-services.yaml
1 | --- |
- 配置hosts
1 | 192.168.11.130 wensleydale.yfming.com |
Name-based Routing
实验目标:
- 访问wensleydale.yfming.com,到wensleydale页面
- 访问stilton.yfming.com,到stilton页面
- 访问cheddar.yfming.com,到cheddar页面
- 如果Traefik是用deployment部署的,域名后要加端口30800,如果是通过DaemonSet部署的则不用加
- cheese-ingress-host.yaml
1 | apiVersion: extensions/v1beta1 |
- 访问测试
Path-based Routing
实验目标:
- 访问cheeses.yfming.com/stilton,到stilton页面
- 访问cheeses.yfming.com/cheddar,到cheddar页面
- 访问cheeses.yfming.com/wensleydale,到wensleydale页面
- 如果Traefik是用deployment部署的,域名后要加端口30800,如果是通过DaemonSet部署的则不用加
- cheese-ingress-path.yaml
下面annotations中的traefik.frontend.rule.type: PathPrefixStrip,作用剥离匹配路径的前缀,然后请求目标服务。
1 | apiVersion: extensions/v1beta1 |
- 访问测试