-
K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
- 网站名称:K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
- 网站分类:技术文章
- 收录时间:2025-08-02 15:53
- 网站地址:
“K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题” 网站介绍
上一篇文章《解决K3s Traefik Ingress取不到浏览器IP问题》初步解决了获取浏览器IP不正确问题,但是总觉得解决的不彻底,所以花了点时间继续研究。
K3s自带了一个名为Klipper Load Balancer的Service Load Balancer(简称servicelb),通过它来转发宿主机端口的网络请求给Traefik Ingress Controller最终到达工作负载的pod,但带来一个问题是获取浏览器IP时,取到的都是pod网段的网关IP,例如10.42.0.1,之前一篇文章探索了简单解决办法就是设置hostNetwork。
但servicelb没发挥应有的作用,不但数据链路长,还费力去配置traefik,所以又经过反复验证,还有以下两种途径,既去掉servicelb,又能解决获取浏览器IP不正确问题。
方法一:设置traefik controller的容器端口映射到宿主机的80和443。
这种方式优点比较多:
- 去掉了servicelb,少了一次转发,减少开销。
- 只映射必要的端口比如80和443,不占用宿主机其他端口例如9000、9100
- 不开小于1024的端口,无需特殊设置。
配置方法:
创建k3s配置文件,禁用servicelb
#cat /etc/rancher/k3s/config.yaml
disable: "servicelb"
创建traefik配置文件,配置端口映射。
# cat /var/lib/rancher/k3s/server/manifests/traefik-config.yaml
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: traefik
namespace: kube-system
spec:
valuesContent: |-
ports:
web:
expose: false
hostPort: 80
port: 8000
websecure:
expose: false
hostPort: 443
port: 8443
service:
enabled: false
然后正常安装k3s即可,例如:
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh|sudo INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="server" sh -
方法二:设置pod的hostNetwork: true,直接使用宿主机网络监听。
这种方式比较简单粗暴,但要监听80和443这两个小于1024的端口,需要配置权限,否则报错。
创建k3s配置文件,禁用servicelb
#cat /etc/rancher/k3s/config.yaml
disable: "servicelb"
创建traefik配置文件,使用宿主机网络
#cat /var/lib/rancher/k3s/server/manifests/traefik-config.yaml
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: traefik
namespace: kube-system
spec:
valuesContent: |-
hostNetwork: true
ports:
web:
port: 80
expose: true
websecure:
port: 443
expose: true
# 监听≤1204端口,以下配置必须,否则listen tcp :80: bind: permission denied
securityContext:
capabilities:
drop: [ALL]
add: [NET_BIND_SERVICE]
readOnlyRootFilesystem: true
runAsGroup: 0
runAsNonRoot: false
runAsUser: 0
service:
enabled: false
然后正常安装k3s即可,例如:
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh|sudo INSTALL_K3S_MIRROR=cn INSTALL_K3S_EXEC="server" sh -
更多相关网站
- TikTok Shop Enters Japan, Sparking Fresh Competition in Global E-Commerce
- China-Serbia forum highlights cooperation, civilizational dialogue
- 一文搭建智能问答聊天室(智能问答系统功能)
- 30天学会Python编程:18. Python数据库编程入门
- 亲身经历,对Gemini cli佩服的五体投地,太强了
- 莫祖永发明的世界身份证如何实现全球八十亿人民皆成为世界公民?
- 使用python scrapy框架抓取cnblog 的文章内容
- 石浩双色球2025084期:精选6+1红球三胆20 21 24缩水倍投
- Boao Forum 2025: Why China's AI ambitions matter to the world
- CBN Special丨A modern cyber-Exodus: Why “TikTok refugees” flee to Xiaohongshu and what’s next?
- 'AI Godfather' Geoffrey Hinton Raises Alarm on AI Takeover Risks at WAIC Shanghai
- Thinkphp5.0极速搭建restful风格接口层
- 「python小脚本」监听日志文件异常数据发送告警短信
- 'Rebalancing' doesn't benefit Sino-EU ties
- Recasting civilizational dialogue in digital age: Harmony amid diversity
- MySql底层索引与数据优化「上篇」
- Android IPC 进程间通信全总结与选型指南
- Android数据库相关整理(android数据库的特点)
- 最近发表
- 标签列表
-
- mydisktest_v298 (35)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- 梦幻诛仙表情包 (36)
- java面试宝典2019pdf (26)
- disk++ (30)
- 加密与解密第四版pdf (29)
- iteye (26)
- centos7.4下载 (32)
- intouch2014r2sp1永久授权 (33)
- jdk1.8.0_191下载 (27)
- axure9注册码 (30)
- 兔兔工程量计算软件下载 (27)
- ccproxy破解版 (31)
- aida64模板 (28)
- engine=innodb (33)
- shiro jwt (28)
- segoe ui是什么字体 (27)
- head first java电子版 (32)
- clickhouse中文文档 (28)
- jdk-8u181-linux-x64.tar.gz (32)
- 计算机网络自顶向下pdf (34)
- -dfile.encoding=utf-8 (33)
- jdk1.9下载 (32)