Ingress

k8s标准入口控制器
动态配置生成的路由器、服务、处理程序等
英文文档 https://doc.traefik.io/traefik/routing/providers/kubernetes-ingress/
annotation列表: https://doc.traefik.io/traefik/routing/providers/kubernetes-ingress/



IngressRoute

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



Gateway (3.0版支持)

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"

create Secret

kubectl create secret tls secretName --key=tls.key --cert=tls.crt  -n default