网站首页 > 资源文章 正文
上一篇文章《解决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 -
猜你喜欢
- 2025-04-26 kubernetesv1.16系列——搞定Traefik2.1的使用
- 2025-04-26 使用docker-compose安装harbor
- 2025-04-26 PortMapper被滥用进行大规模DDoS攻击
- 2025-04-26 攻击和审计Docker容器03
- 2025-04-26 nfs-server安装和端挂盘
- 2025-04-26 流行DNS服务器软件BIND曝严重DoS漏洞
- 2025-04-26 嵌入式linux开发 | nfs网络服务搭建(详细步骤)
- 2025-04-26 Linux普通账户启动应用程序时监听1024以下端口好方法
- 2025-04-26 如何在 Linux 上使用 Docker 容器?这篇 Docker 全攻略值得收藏!
- 2025-04-26 CentOS使用Samba或NFS实现文件共享
你 发表评论:
欢迎- 04-26EmuELEC 模拟器系统高度定制方案
- 04-26JavaCPP快速入门(官方demo增强版)
- 04-26kubernetesv1.16系列——搞定Traefik2.1的使用
- 04-26使用docker-compose安装harbor
- 04-26PortMapper被滥用进行大规模DDoS攻击
- 04-26攻击和审计Docker容器03
- 04-26nfs-server安装和端挂盘
- 04-26流行DNS服务器软件BIND曝严重DoS漏洞
- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)