Kubernetes — metalLB + Traefik 部署

Kubernetes — metalLB + Traefik 部署

背景

鉴于 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

访问地址

https://traefik.jobcher.com
traefik-dashboard