k8s标准入口控制器
动态配置生成的路由器、服务、处理程序等
英文文档 https://doc.traefik.io/traefik/routing/providers/kubernetes-ingress/
annotation列表: https://doc.traefik.io/traefik/routing/providers/kubernetes-ingress/
k8s自定义入口控制器, 支持所有HTTPRoute核心和一些扩展功能,以及实验通道的TCPRoute和TLSRoute资源
相较于原生Ingress写法,ingressRoute是2.1以后新增功能,简单来说,他们都支持路径(path)路由和域名(host)HTTP路由,以及HTTPS配置,区别在于IngressRoute需要定义CRD扩展,但是它支持了TCP、UDP路由以及中间件等新特性,强烈推荐使用ingressRoute
https://doc.traefik.io/traefik/routing/providers/kubernetes-crd/
https://plugins.traefik.io/plugins/628c9f01108ecc83915d776c/traefik-real-ip
k8s网关Api
Gateway 网关描述了如何将流量转化为集群内的服务
https://doc.traefik.io/traefik/routing/providers/kubernetes-gateway/
GatewayClass
定义了一组共享相同配置和动作的网关
Route 资源
路由资源定义了特定的规则,用于将请求从网关映射到 Kubernetes 服务
HTTPRoute
适用于 HTTP 或 HTTPS 连接,适用于我们想要检查 HTTP 请求并使用 HTTP 请求进行路由或修改的场景,比如使用 HTTP Headers 头进行路由,或在请求过程中对它们进行修改。
TLSRoute
TLSRoute 用于 TLS 连接
TCPRoute 和 UDPRoute
TCPRoute(和UDPRoute)旨在用于将一个或多个端口映射到单个后端
networking.k8s.io/v1
metadata:
name: foo
labels:
app: nginx
annotations:
traefik.ingress.kubernetes.io/router.tls: "false"
nginx.ingress.kubernetes.io/rewrite-target: / #重写路径
nginx.ingress.kubernetes.io/ssl-redirect: 'true' #http 自动转https
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600" #修改代理超时时间,默认是60s
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
kubectl create secret tls secretName --key=tls.key --cert=tls.crt -n default