Kubernetes 怎么配置 Ingress 实现外部流量转发

胖明大大_4071

胖明大大_4071

2026-08-19

621人浏览

原创

ingress 实现外部http/https流量转发需ingress controller、后端service、ingress资源三者协同:controller是执行流量转发的pod(如ingress-nginx),service提供稳定入口并关联pod,ingress资源定义基于host/path的路由规则,缺一不可且须按序部署。

kubernetes 怎么配置 ingress 实现外部流量转发

配置 Kubernetes Ingress 实现外部流量转发,本质是搭建一条从公网到 Pod 的 HTTP/HTTPS 路径,关键不在“写一个 Ingress 资源”,而在于三个组件必须协同工作:Ingress Controller(执行者)、后端 Service(稳定入口)、Ingress 资源(路由指令)。缺一不可,顺序也不能颠倒。

部署并验证 Ingress Controller

Ingress 本身只是 YAML 文件,不干活;真正处理流量的是 Ingress Controller(如 ingress-nginx、Traefik)。它以 Pod 形式运行,监听 80/443 端口,并通过 Service 暴露出去。

  • 推荐用官方 Helm Chart 安装 ingress-nginx:helm upgrade -i ingress-nginx ingress-nginx/ingress-nginx -n ingress-nginx --create-namespace
  • 安装后检查控制器 Pod 是否就绪:kubectl get pod -n ingress-nginx
  • 确认其 Service 类型(通常是 LoadBalancer 或 NodePort)及对外地址:kubectl get svc -n ingress-nginx。若为 NodePort,需确保节点防火墙开放对应端口(如 30080/30443);若为 LoadBalancer,等待 EXTERNAL-IP 分配完成

准备好后端 Service 和 Pod

Ingress 规则最终指向的是 Service,不是 Pod。所以必须先有健康、带正确 label 的 Deployment 和匹配的 Service。

Kubernetes Network Policy Generator
Kubernetes Network Policy Generator

使用加权评分卡在12项标准上评估和比较隐私解决方案供应商。适用于选择隐私管理软件、比较数据保护方案等场景。

下载
  • Deployment 中定义 app: myapp 这类标签
  • Service 的 selector 必须精确匹配上述 label,例如:selector: {app: myapp}
  • 用 kubectl get endpoints myapp-service 验证是否关联到真实 Pod IP。空列表说明 Service 没找到 Pod,常见原因是 label 不一致或 Pod 未就绪

定义 Ingress 资源并绑定域名或路径

Ingress 对象声明“谁来访问、怎么分发”。支持基于 host(域名)和 path(路径)两级路由,也可启用 TLS。

  • 最简示例(基于路径):rules → http → paths → path: /api → backend → service.name: api-svc
  • 多域名示例:host: app.example.com → backend to app-svc;host: api.example.com → backend to api-svc
  • 启用 HTTPS:在 Ingress 中添加 tls 字段,引用已存入集群的 Secret(含 tls.crt/tls.key),且 host 必须与证书域名一致
  • 注意 API 版本:K8s 1.22+ 推荐用 networking.k8s.io/v1,避免使用已废弃的 extensions/v1beta1

排错要点:三看一测

流量不通时,按顺序排查:

  • 看 Controller 日志:kubectl logs -n ingress-nginx deploy/ingress-nginx-controller,关注是否报“no suitable endpoint”或 TLS 加载失败
  • 看 Ingress 状态:kubectl describe ingress my-ingress,检查 Events 是否提示 “No rule matched” 或 “service not found”
  • 看 Service 和 Endpoints:kubectl get svc,ep,确认后端服务真实存在且有 Pod 注册
  • 测连通性:从集群外 curl http://<external-ip>/healthz</external-ip>(Controller 健康检查路径),再试具体路由路径,排除 DNS 或网络中间件干扰

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

kubernetes

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

2025.12.22

116

5

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

2026.06.29

188

19

Python uv使用教程
Python uv使用教程

本专题汇总了 Python uv 使用教程与高效使用指南,从 uv 安装配置、常用命令到虚拟环境、依赖管理与项目打包,系统讲解如何用 uv 替代 pip 与 poetry,全面提升 Python 项目开发效率,助你快速上手这一现代化包管理工具,打造干净高效的 Python 工作流。

2026.10.15

0

15

剧云AI短剧创作教程合集
剧云AI短剧创作教程合集

本专题聚焦剧云AI短剧创作,讲解从短剧灵感、梗概、全局大纲到分集、分场和正文的完整流程及节奏设计方法。

2026.10.14

0

15

剧云AI剧本创作零基础入门
剧云AI剧本创作零基础入门

本专题系统讲解剧云AI剧本创作流程,涵盖灵感、梗概、大纲、分场与正文生成,帮助新手快速完成首个中文剧本项目。

2026.10.14

0

14

VibeKnow文档转视频操作指南
VibeKnow文档转视频操作指南

本专题讲解VibeKnow上传Word、TXT、Markdown等材料生成视频的方法,覆盖内容解析、脚本组织、画面生成与成片检查。

2026.10.14

0

15

VibeKnow知识视频制作与导出详解
VibeKnow知识视频制作与导出详解

本专题整理VibeKnow从注册、素材上传、AI生成到预览导出的完整操作,帮助新手快速制作第一条知识讲解视频。

2026.10.14

0

13

二狗PPT大纲编辑实操指南
二狗PPT大纲编辑实操指南

本专题聚焦二狗PPT结构化大纲的生成和修改,讲解标题、正文、目录、页数与页面顺序的调整方法,提升汇报逻辑和内容完整性。

2026.10.14

0

15

二狗PPT文档转PPT全教程
二狗PPT文档转PPT全教程

本专题讲解二狗PPT解析Word、PDF、Excel和PPT资料的方法,涵盖文件上传、内容提取、大纲整理、异常处理与转换后校对。

2026.10.14

0

13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 配置文档
phpMyAdmin 配置文档

共0课时 | 0人学习

Swoole手册
Swoole手册

共0课时 | 0人学习