K8s 使用 Traefik 作为 Ingress 转发流量,是到 Service 还是直接到Pod?
作者:卡卷网发布时间:2025-03-23 16:54浏览数量:59次评论数量:0次
纯技术贴劝退提醒~
早些时间迁移了服务器集群到k3s之后,
发现代码拿不到客户端的请求IP了。
能看到的一直都是一个局域网的node-ip~
查了一圈确认应该是默认的flannel 网络组件不转发read-ip。
一般建议是改成 “Calico”来支持read-ip。
于是,折腾起来了。
禁用flannel
sudo vi /etc/systemd/system/k3s.service
ExecStart=/usr/local/bin/k3s server --flannel-backend=none --disable-network-policy
在对应的ExecStart 添加
“--flannel-backend=none --disable-network-policy”禁用flannel.
接着重启k3s.
sudo systemctl daemon-reload
sudo systemctl restart k3s
安装Calico
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
然后大概率会遇到Image 拉不下来的错误~
所以嘛,自己手动换一下镜像再重新apply。
ccr.ccs.tencentyun.com/liguobao/k3s:kube-controllers-v3.25.0
ccr.ccs.tencentyun.com/liguobao/k3s:calico-cni-v3.25.0
ccr.ccs.tencentyun.com/liguobao/k3s:calico-node-v3.25.0
能看到 calico-kube-controllers 和 calico-node正常启动,
说明calico没什么问题了。
➜ ~ kc get pod -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-585cb5b467-h5rss 1/1 Running 0 34m
calico-node-fwgg4 1/1 Running 3 (33m ago) 37m
coredns-56f6fc8fd7-ccfvb 1/1 Running 84 (9d ago) 73d
helm-install-traefik-crd-rtksk 0/1 Completed 0 73d
helm-install-traefik-rvxlr 0/1 Completed 0 15m
local-path-provisioner-5cf85fd84d-q7zxm 1/1 Running 1 (9d ago) 73d
metrics-server-5985cbc9d7-6pp9l 1/1 Running 99 (9d ago) 73d
svclb-traefik-cd237bcc-wtm9f 2/2 Running 0 19m
traefik-57b79cf995-dvdv9 1/1 Running 0 15m
配置traefik
kubectl edit svc traefik -n kube-system
修改 externalTrafficPolicy: Local
修改 /var/lib/rancher/k3s/server/manifests/traefik.yaml
支持read-ip转发
entryPoints:
web:
address: ":80"
forwardedHeaders:
trustedIPs:
- "10.0.0.0/8"
- "0.0.0.0/0"
websecure:
address: ":443"
forwardedHeaders:
trustedIPs:
- "10.0.0.0/8"
- "0.0.0.0/0"
然后重启traefik pod应用新的配置规则。
理论上完事了。
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
- 上一篇:百度贴吧为什么禁止“挖坟”?
- 下一篇:米诺地尔真的可以长头发吗?
相关推荐

你 发表评论:
欢迎