首页/新闻资讯/正文详情

K3S Helm 高可用安装 Rancher:TaoToken 场景下修改 80 和 443 端口

发布时间:2026/9/27 21:55:53 来源:云帆数科 栏目:资讯中心
K3S Helm 高可用安装 Rancher:TaoToken 场景下修改 80 和 443 端口
1. K3S 里 Rancher 为什么改不了 80/443你如果在单机 Docker 环境装过 Rancher改端口就是一句-p 8443:443的事容器直接接管流量简单粗暴。但换成 K3S Helm 高可用部署这套逻辑直接失效——Rancher 变成了集群里的一个 Pod它自己根本不监听宿主机端口你改 Pod 的端口没有任何意义。真正卡住你的是 K3S 默认自带的 Traefik。K3S 安装时会自动部署 Traefik 作为 IngressController并且通过一套叫 Klipper Load Balancer 的机制把节点的 80 和 443 端口抢占了。这时候你想让 Rancher 走 8080/8443会发现 80/443 已经被 Traefik 的svclb-traefikDaemonSet 占着改 Rancher 的 Service 类型或者端口都无济于事。我试过直接在 Rancher 的 Helm values 里改ingress端口结果访问还是 443因为流量入口根本不在 Rancher 这一层。K3S 的流量路径是这样的客户端请求打到节点端口被 iptables 规则捕获转发给svclb-traefik这个 DaemonSet再由它转发到集群内部的 Traefik Service最后 Traefik 根据 Ingress 规则把请求交给 Rancher Pod。整条链路上Rancher 只是最后一跳的接收方端口控制在最前面的 Klipper 和 Traefik 手里。所以正确的思路不是改 Rancher而是改 K3S 的流量入口层。具体来说有两个方向一是直接编辑svclb-traefikDaemonSet 的环境变量把宿主机的 80/443 换成你想要的端口二是利用 K3S 的 ServiceLB 机制自己创建一个 LoadBalancer 类型的 Service 指向 Traefik让 K3S 自动生成新的 Klipper 转发规则。这两种方式都能让 Rancher 在自定义端口正常访问下面我会把 Helm values 配置和验证命令都给全。这篇内容适合已经在 K3S 上跑过 Rancher、被端口冲突卡住的人也适合想搞清楚 K3S 流量转发艺术的运维同学。如果你还没装 K3S建议先把集群跑起来再回来看不然很多概念会悬空。2. TaoToken 前置模型对话与 API Key 准备在动手改端口之前先把 TaoToken 的接入信息准备好。TaoToken 是一个大模型 API 聚合平台你可以用它来调用各种主流模型做 Rancher 部署过程中的日志分析、配置生成或者排障问答都很顺手。官网地址是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 。你需要先拿到 API Key。登录后进入控制台在 API Keys 页面创建一个新的 Key复制保存好。这个 Key 后面会用在模型对话和 Coding Plan 里。如果你只是想让模型帮你解释 K3S 的 iptables 规则或者生成 Helm values直接用模型对话页面就行地址是 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。如果你打算长期用 AI 辅助写 K3S 的 YAML 和排障脚本可以看看 Coding Plan地址是 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 。控制台里还能管理你的用量和额度地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 。API Keys 管理页是 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面写了各种语言的调用示例。如果你用 Claude Code 做开发Anthropic 兼容入口是 https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_codeutm_campaignrewrite 。拿到 Key 之后你可以先用模型对话问一句“K3S 的 svclb-traefik DaemonSet 里 DEST_IP 和 DEST_PORT 分别代表什么”确认 API 能正常返回。这一步不是必须的但能帮你后面排障时快速定位问题。TaoToken 在这里的角色是辅助工具不是 Rancher 部署的依赖你完全可以不用它直接改端口但有了它查文档和生成配置会快很多。3. 可复制配置Helm values 与 Traefik 端口调整先确认你的 K3S 集群状态。执行以下命令查看 kube-system 命名空间下的资源k3s kubectl get svc -n kube-system k3s kubectl get pods -n kube-system k3s kubectl get daemonset -n kube-system你会看到traefik的 Service 和svclb-traefik的 DaemonSet。svclb-traefik就是 Klipper 生成的负载均衡器它负责在宿主机上监听端口并转发。查看它的详细配置k3s kubectl edit daemonset svclb-traefik -n kube-system在编辑器中你会看到类似这样的环境变量env: - name: DEST_IP value: 10.43.xxx.xxx - name: DEST_PORT value: 443DEST_IP是集群内部 Traefik Service 的 ClusterIPDEST_PORT是 Traefik 监听的端口。同时容器里还有ports字段定义了宿主机端口和容器端口的映射。你要改的是宿主机的 80 和 443把它们换成比如 8080 和 8443。但直接改 DaemonSet 不是最优解因为 K3S 升级或者重启可能会覆盖你的修改。更稳妥的方式是通过 Helm 安装 Rancher 时在 values 里指定 Traefik 的端口或者单独创建一个 LoadBalancer Service 指向 Traefik。先看 Rancher 的 Helm values 配置。创建一个rancher-values.yamlhostname: rancher.example.com ingress: enabled: true ingressClassName: traefik extraAnnotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure replicas: 3 bootstrapPassword: your-bootstrap-password这个配置里 Rancher 走 Traefik 的websecureentrypoint也就是 443。但 443 被 Traefik 自己占了所以你要改的是 Traefik 的 entrypoint 端口而不是 Rancher 的。K3S 的 Traefik 配置可以通过 HelmChartConfig 来覆盖。创建一个traefik-config.yamlapiVersion: helm.cattle.io/v1 kind: HelmChartConfig metadata: name: traefik namespace: kube-system spec: valuesContent: |- ports: web: port: 8080 expose: true exposedPort: 8080 websecure: port: 8443 expose: true exposedPort: 8443 service: type: LoadBalancer应用这个配置k3s kubectl apply -f traefik-config.yaml然后重启 Traefikk3s kubectl rollout restart deployment traefik -n kube-system等 Pod 重建后K3S 会自动更新svclb-traefikDaemonSet把宿主机的 8080 和 8443 映射到 Traefik 的 8080 和 8443。你可以用以下命令确认k3s kubectl get svc traefik -n kube-system -o yaml k3s kubectl get daemonset svclb-traefik -n kube-system -o yaml如果svclb-traefik没有自动更新手动删掉让它重建k3s kubectl delete daemonset svclb-traefik -n kube-systemK3S 的 ServiceLB controller 会立刻重新创建一个带上新的端口映射。接下来安装 Rancher。先添加 Helm 仓库helm repo add rancher-stable https://releases.rancher.com/server-charts/stable helm repo update然后安装helm install rancher rancher-stable/rancher \ --namespace cattle-system \ --create-namespace \ --values rancher-values.yaml等 Rancher Pod 全部 Runningk3s kubectl get pods -n cattle-system -w这时候 Rancher 的 Ingress 会绑定到 Traefik 的websecureentrypoint也就是 8443。你访问https://rancher.example.com:8443就能打开 Rancher 界面。如果你不想改 Traefik 的全局端口只想给 Rancher 单独开一个端口可以创建一个额外的 LoadBalancer ServiceapiVersion: v1 kind: Service metadata: name: rancher-lb namespace: cattle-system spec: type: LoadBalancer ports: - name: https port: 8443 targetPort: 443 protocol: TCP selector: app: rancher应用后 K3S 会自动生成svclb-rancher-lbDaemonSet在宿主机上监听 8443 并转发到 Rancher Pod 的 443。这种方式不改 Traefik适合你不想动集群默认配置的场景。4. 验证请求与成功结果配置完成后先确认端口监听状态ss -tlnp | grep -E 8080|8443你应该看到k3s-server或者svclb-traefik相关的进程在监听这两个端口。如果没有检查svclb-traefikPod 是否正常运行k3s kubectl get pods -n kube-system | grep svclb然后从集群外部发起请求curl -k -I https://rancher.example.com:8443正常返回应该是 HTTP 200 或者 302 跳转到登录页。如果返回 404说明 Ingress 规则没匹配上检查 Rancher 的 Ingress 资源k3s kubectl get ingress -n cattle-system k3s kubectl describe ingress rancher -n cattle-system确认ingressClassName是traefik并且spec.rules里的 host 和你的访问域名一致。再用浏览器打开https://rancher.example.com:8443应该能看到 Rancher 的登录界面。输入bootstrapPassword对应的密码进入后设置管理员账号。如果页面加载但静态资源 404多半是 Ingress 的 path 配置问题Rancher 默认用/前缀不需要额外改。验证 Traefik 的 entrypoint 是否生效k3s kubectl exec -n kube-system deploy/traefik -- traefik version k3s kubectl logs -n kube-system deploy/traefik | grep entryPoint日志里会显示web和websecure的监听端口确认是 8080 和 8443。如果你用 TaoToken 的模型对话来辅助排障可以把kubectl describe的输出贴进去问“这个 Ingress 为什么返回 404”模型会帮你分析 annotations 和 rules 的匹配逻辑。接入文档里有具体的调用示例地址是 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。5. 本篇常见错排查错误一改了 DaemonSet 但端口没生效。最常见的原因是svclb-traefik被 K3S 的 controller 覆盖了。K3S 会定期 reconcile ServiceLB 资源你手动改的 DaemonSet 会被重置。正确做法是通过 HelmChartConfig 改 Traefik 的 Service 配置让 K3S 自己生成正确的 DaemonSet。错误二Rancher 安装后访问 443 仍然被 Traefik 占用。这是因为 Traefik 的默认 entrypoint 还是 443你只改了 Rancher 的 Ingress 但没改 Traefik。检查HelmChartConfig是否应用成功k3s kubectl get helmchartconfig -n kube-system traefik -o yaml如果valuesContent是空的说明配置没生效重新 apply 一次。错误三LoadBalancer Service 一直 pending。K3S 的 ServiceLB 需要svclb的 DaemonSet 有权限创建。检查k3s kubectl get daemonset -n kube-system | grep svclb k3s kubectl describe svc rancher-lb -n cattle-system如果 Events 里显示no available node可能是节点有 taint 或者资源不足。去掉 taint 或者加节点。错误四curl 返回 connection refused。说明宿主机端口没监听。检查svclb-traefikPod 是否 Runningk3s kubectl get pods -n kube-system -l appsvclb-traefik如果 Pod 在 CrashLoopBackOff看日志k3s kubectl logs -n kube-system -l appsvclb-traefik常见原因是 iptables 规则冲突或者内核模块没加载。重启 K3S 服务systemctl restart k3s错误五Rancher 页面能打开但 WebSocket 连接失败。Rancher 的 UI 依赖 WebSocket如果 Ingress 没有正确转发Upgrade头会一直转圈。在 Rancher 的 Ingress annotations 里加上traefik.ingress.kubernetes.io/router.middlewares: cattle-system-rancher-websocketkubernetescrd或者直接用 Traefik 的默认配置它默认支持 WebSocket。错误六Helm 安装 Rancher 时报ingressClassName不匹配。K3S 的 Traefik 默认 IngressClass 名字是traefik但有些版本是traefik-cert-manager。用以下命令确认k3s kubectl get ingressclass然后把rancher-values.yaml里的ingressClassName改成实际名字。6. 语义一致 CTA端口改完之后如果你还想用 AI 辅助管理 K3S 集群比如自动生成 Helm values、分析 Traefik 日志或者写排障脚本可以走 TaoToken 的 API Keys 和接入文档。API Keys 页面在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。如果你只是想让模型解释一下 K3S 的 iptables 转发规则直接用模型对话就行 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。长期做 K3S 和 Rancher 的编码和 Agent 开发可以看 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 。最后提醒一句改完端口后记得把 Rancher 的hostname和实际访问地址对齐不然 Agent 注册会失败。如果你用的是自签证书浏览器会报不安全加个-k或者把 CA 导入系统信任区就行。K3S 的 Traefik 配置改完后升级 K3S 版本时记得检查HelmChartConfig是否还在有时候升级会重置 kube-system 下的资源。

相关推荐

Recordset.Open 方法参数详解:从 CursorType 到 LockType 的配置骨架与验证
Recordset.Open 方法参数详解:从 CursorType 到 LockType 的配置骨架与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 21:55:53

ultraedit 使用方法:用 TaoToken 统一 Key 打通 Cline 与 settings.json 配置
ultraedit 使用方法:用 TaoToken 统一 Key 打通 Cline 与 settings.json 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 21:55:53

昆明关键词优化软件速查手册:3步解决代码报错与布局陷阱
昆明关键词优化软件速查手册:3步解决代码报错与布局陷阱

昆明关键词优化软件速查手册:3步解决代码报错与布局陷阱 很多昆明本地做外贸站或本地服务的老板,拿着预算想找个“昆明关键词优化软件”一键搞定排名,结果下载了一堆工具,页面报错、布局错乱,SEO数据反而跌了。你是不是也卡在这一步:自己不会代码想… · 2026/9/27 21:55:47

3个真实网站改版方案案例,新手入门必看的避坑指南
3个真实网站改版方案案例,新手入门必看的避坑指南

3个真实网站改版方案案例,新手入门必看的避坑指南 改个需求建站公司拖一周,改个颜色还要加钱?这是很多新手入门时最崩溃的体验。你以为改版只是换个皮肤,结果对方拿着一堆技术名词跟你扯皮,周期从两周拖到两个月,钱花了不少,效果却像没变过。… · 2026/9/27 22:37:35

AI购物代理开始结账:企业网站,AI买家真的走得通吗
AI购物代理开始结账:企业网站,AI买家真的走得通吗

过去两年,企业做GEO(生成式引擎优化)大多在解决一个问题:内容能不能被AI搜索引用、提到。但2026年9月的最新数据显示,AI已经不只是"提到"品牌,而是开始替用户完成真实购买——PYMNTS Intelligenc… · 2026/9/27 22:37:29

OpenClaw 小龙虾最实用 Skill 技能推荐:TaoToken 统一 Key 接入办公自动化实战(小白必备)
OpenClaw 小龙虾最实用 Skill 技能推荐:TaoToken 统一 Key 接入办公自动化实战(小白必备)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:37:29

技术文档一键转PPT:TaoToken统一Key接入8款AI生成工具的技术方案对比与实测
技术文档一键转PPT:TaoToken统一Key接入8款AI生成工具的技术方案对比与实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:37:29

UltraEdit 配 TaoToken:关闭 UTF-8 自动转换的 settings.json 骨架
UltraEdit 配 TaoToken:关闭 UTF-8 自动转换的 settings.json 骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:37:29

全网最新 Claude Code 使用教程:用 TaoToken 统一 Key 对接 DeepSeek-R1 与 Kimi K2,看到就是赚到!!
全网最新 Claude Code 使用教程:用 TaoToken 统一 Key 对接 DeepSeek-R1 与 Kimi K2,看到就是赚到!!

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:37:29

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码