背景
鉴于 Ingress NGINX 将在 2026 年 3 月停止积极维护(只保留 “best-effort maintenance”)考虑切换到Traefik。Traefik 官方推荐是最直接的替代,因为 Traefik 围绕 Ingress NGINX 的兼容层做了优化:它对部分常见的 nginx-ingress 注解提供了兼容支持。
MEtalLB 安装
1kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.15.2/config/manifests/metallb-native.yaml
1kubectl get pods -n metallb-system
创建 metallb-config.yaml
1# metallb-config.yaml
2apiVersion: metallb.io/v1beta1
3kind: IPAddressPool
4metadata:
5 name: local-pool
6 namespace: metallb-system
7spec:
8 addresses:
9 - 10.10.10.180-10.10.10.181 # ← 修改为你的局域网可用 IP
10---
11apiVersion: metallb.io/v1beta1
12kind: L2Advertisement
13metadata:
14 name: l2adv
15 namespace: metallb-system
1kubectl apply -f metallb-config.yaml
安装
1helm repo add traefik https://traefik.github.io/charts
2helm repo update
helm 安装
1helm install traefik traefik/traefik \
2 -n traefik --create-namespace \
3 --set service.type=LoadBalancer \
4 --set ingressClass.enabled=true \
5 --set ingressClass.isDefaultClass=true \
6 --set dashboard.enabled=true \
7 --set api.dashboard=true \
8 --set api.insecure=false \
9 --set ports.web.expose.enabled=true \
10 --set ports.websecure.expose.enabled=true \
11 --set ports.websecure.tls.enabled=true \
12 --set metrics.prometheus.enabled=true
验证
1kubectl get pods -n traefik
2kubectl get svc -n traefik
启用dashboard
创建traefik-dashboard.yaml
1apiVersion: traefik.io/v1alpha1
2kind: IngressRoute
3metadata:
4 name: traefik-dashboard
5 namespace: traefik
6 annotations:
7 kubernetes.io/ingress.class: traefik
8spec:
9 entryPoints:
10 - websecure
11 routes:
12 - match: Host(`traefik.jobcher.com`) # 改为你自己的域名地址
13 kind: Rule
14 services:
15 - name: api@internal
16 kind: TraefikService
17 tls:
18 secretName: jobcher-com-tls # 改为你自己的tls证书
部署
1kubectl -n traefik apply -f traefik-dashboard.yaml
验证
1kubectl -n traefik get ingressRoute












