资讯动态

K8S中的yaml文件之ingress

发布时间:2026/8/27 12:37:20 来源:尧图企业网站定制
这一节我们对于这张图片进行讲解我们先从上往下先对于ingress进行讲解。Ingress 要解决什么问题没有 Ingress 之前对外暴露服务有三种方式方式问题Pod 直接对外Pod 重启 IP 就变无法稳定访问Service NodePort端口范围 30000-32767无法用标准 80/443每个服务占一个端口Service LoadBalancer每个服务一个公网 IP云厂商收费贵自建集群不支持Ingress 的核心价值用一个入口一个公网 IP 80/443 端口路由所有服务按域名和路径分发流量。┌─ web.example.com ─→ Service web ─→ Pod ×3用户 → Ingress ───┼─ api.example.com ─→ Service api ─→ Pod ×3(一个公网IP) └─ admin.example.com ─→ Service admin ─→ Pod ×3两个核心概念Ingress Controller控制器这是实际运行的程序通常是一个 PodNginx/Traefik/Haproxy监听 80 和 443 端口接收所有外部流量。Ingress Controller (本质是一个 Deployment Service)├── Pod: ingress-nginx-controller-xxx (运行 Nginx)├── Service: NodePort 80:30080/TCP, 443:30443/TCP└── 持续监听 etcd 中 Ingress 资源的变化它的作用接收所有外部流量按规则转发。没有它Ingress YAML 就是一堆没人执行的配置。Ingress 资源路由规则你写的 YAML告诉 Controller 哪个域名转到哪个 ServiceapiVersion: networking.k8s.io/v1kind: Ingress # ← 第二层路由规则metadata:name: web-ingressannotations:nginx.ingress.kubernetes.io/ssl-redirect: true # HTTP 自动跳 HTTPSspec:ingressClassName: nginx # 指定用哪个 Controllertls: # HTTPS 证书配置- hosts: [web.example.com]secretName: tls-secretrules: # ← 路由规则从这里开始- host: web.example.com # 域名1http:paths:- path: / # 路径首页pathType: Prefixbackend:service:name: web-svc # → 转发到这个 Serviceport:number: 80- host: api.example.com # 域名2http:paths:- path: /pathType: Prefixbackend:service:name: api-svc # → 转发到另一个 Serviceport:number: 8080Ingress 的核心作用总结作用说明统一入口一个公网 IP 80/443 对外暴露所有服务域名路由不同域名转发到不同 Service路径路由同一域名按路径分发/→ 前端/api→ 后端最后用一张图展示一下ingress的具体作用

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价