惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
月光博客
月光博客
IT之家
IT之家
爱范儿
爱范儿
Google DeepMind News
Google DeepMind News
小众软件
小众软件
C
Check Point Blog
B
Blog RSS Feed
H
Help Net Security
博客园 - 司徒正美
L
LangChain Blog
MongoDB | Blog
MongoDB | Blog
B
Blog
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
Microsoft Security Blog
Microsoft Security Blog
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

打工人日志

2026-05-28 打工人日报 2026-05-27 打工人日报 2026-05-26 打工人日报 2026-05-25 打工人日报 2026-05-24 打工人日报 2026-05-23 打工人日报 2026-05-22 打工人日报 2026-05-21 打工人日报 2026-05-20 打工人日报 2026-05-19 打工人日报 2026-05-18 打工人日报 2026-05-17 打工人日报 2026-05-16 打工人日报 2026-05-15 打工人日报 2026-05-14 打工人日报 2026-05-13 打工人日报 2026-05-12 打工人日报 2026-05-11 打工人日报 2026-05-10 打工人日报 2026-05-09 打工人日报 2026-05-08 打工人日报 2026-05-07 打工人日报 2026-05-06 打工人日报 2026-05-05 打工人日报 2026-05-04 打工人日报 2026-05-03 打工人日报 2026-05-02 打工人日报 2026-05-01 打工人日报 2026-04-30 打工人日报 2026-04-29 打工人日报
Kubernetes — metalLB + Traefik 部署
2025-11-25 · via 打工人日志

背景

鉴于 Ingress NGINX 将在 2026 年 3 月停止积极维护(只保留 “best-effort maintenance”)考虑切换到Traefik。Traefik 官方推荐是最直接的替代,因为 Traefik 围绕 Ingress NGINX 的兼容层做了优化:它对部分常见的 nginx-ingress 注解提供了兼容支持。

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