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

推荐订阅源

The GitHub Blog
The GitHub Blog
雷峰网
雷峰网
小众软件
小众软件
博客园 - 【当耐特】
J
Java Code Geeks
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
Engineering at Meta
Engineering at Meta
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
H
Help Net Security
博客园_首页
P
Proofpoint News Feed
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
N
Netflix TechBlog - Medium
爱范儿
爱范儿
MyScale Blog
MyScale Blog
Blog — PlanetScale
Blog — PlanetScale
The Cloudflare Blog
MongoDB | Blog
MongoDB | Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Google DeepMind News
Google DeepMind News

jobcher on 打工人日志

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

背景

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