Kubernetes Networking Awesome
- kube-router
- metallb
- k8snetworkplumbingwg
- squat/kilo
- multi-cloud network overlay built on WireGuard and designed for Kubernetes (k8s + wg = kg)
- kilo + vcluster - 多集群
- 参考
Ingress & Gateway
- Ingress V2 -> Gateway
- Ingress Controller 实现
Ingress 实现情况
- 针对实现 Ingress API
- 通常不暴露额外的 CDR
- 例如 ingress-nginx
- 基于现有 Web 服务支持 Ingress
- 通常支持自定义 CDR
- 例如 traefik
- 基于现有 平台 支持 Ingress
- 通常支持 接口 操作规则
- 服务有状态
- 例如 kong, apisix
Ingress 选择
- 最好选择简单实用熟悉的
- 例如 已知怎么定义一些特殊规则
- 选择轻量,功能单一的
- 例如 证书尽量配合 cert-manager 使用
- 需要支持复杂 API 网关场景最好利用多 IngressClass 或 通过服务 进行继承使用
- 例如 使用 kong 或 apisix 统一管理 API - ingress 执行 网关服务
- 将 Ingress 看作是反向代理的替代
- 推荐 - ingress-nginx
- IngressClass 可配合使用
- HAProxy 擅长 TLS、SNI、LB
- Nginx 擅长 反向代理
- Envoy 擅长 协议感知、定制性高
- 自定义网关 擅长 API 管理、集成、Web 可视化管理
ingress | stars | based on | ingress | gateway | governance |
---|---|---|---|---|---|
ingress-nginx | nginx | 🟢 | 🔴 | ||
haproxy-ingress | haproxy | 🟢 | 🟢 | ||
haproxytech-ingress | haproxy | 🟢 | 🔴 | haproxytech | |
istio | envoy | 🟢 | 🟢 | CNCF/google | |
contour | envoy | 🟢 | 🟢 | CNCF | |
traefik | traefik | 🟢 | 🟢 | ||
gloo | envoy | 🟢 | 🟡 | ||
Emissary-Ingress | envoy | 🟢 | 🟢 | ||
kong | nginx/kong | 🟢 | 🟡 | Kong | |
apisix | nginx/apisix | 🟢 | 🟡 | Apache | |
citrix | Citrix ADC | 🟢 | |||
enroute | envoy | 🟢 | CNCF/saarasio | ||
easegress | easegress | 🟢 | megaease | ||
voyager | haproxy | 🟢 | AppsCode | ||
tyk | typ | 🟢 | |||
skipper | skipper | 🟢 |
- ingress-nginx
- ssl passthrough 性能问题 ingress-nginx#7827
- haproxy-ingress
- 支持外部 HAProxy
CNI
vs. | starts | IPv6 | Windows | Policy |
---|---|---|---|---|
calico | ✅ | ✅ | ✅ | |
kube-router | ❌ | ❌ | ❌ | |
flannel | ❌ | ✅ | ❌ | |
cilium | ❌ | ❌ | ✅ |
tip
- 不支持 IPv6 也不支持 DualStack
- NetworkPolicy 支持控制 Ingress 和 Egress 网络
- kube-router
- layer 3, lvs/ipvs
- flannel
- overlay
- 轻量, 专注网络层
- 后端: vxlan, host-gw, udp, ipip, ipsec, wireguard
- 配置: etcd, k8s api
- calico
- layer 3, overlay, BGP,
- 后端: vxlan, pip, eBPF, WindowsHNS
- IPv6 不支持 IPIP/VXLAN calico#5206
- cilium
- layer 3/4/7, eBPF
- IPv6 cilium#13891
- weave
- IPsec ESP
- canal - 停止 - calico+flannel - 目前 calico 内置 vxlan
网络组件功能选项
- Policy
- IPAM
- CNI
- Overlay - VXLAN, IPIP, WG, IPIP, IPSec
- Routing - BGP, VPC
Overlay
- tinc
- n2n