云原生入门系列|第6集:Ingress网关全网保姆级教程!零基础搞懂K8s外部域名流量入口
前言各位云原生入门的小伙伴,欢迎继续跟进《云原生入门系列》专栏!上一集我们彻底吃透了Service的核心逻辑,搞懂了它作为K8s的“网络管家”,如何为Pod提供固定访问入口、实现服务发现和流量负载均衡,也掌握了Service的四种核心类型——ClusterIP用于集群内访问、NodePort用于外部简单访问、LoadBalancer用于生产环境外部访问、ExternalName用于映射外部服务。但学到这里,很多新手会遇到一个新的核心痛点:在实际业务场景中,我们的集群内往往会部署多个服务——比如前端Web服务、后端API服务、管理后台服务,每个服务都对应一个Service。如果我们通过NodePort或LoadBalancer类型的Service暴露这些服务,就需要为每个服务分配一个独立的端口或外部IP,不仅管理繁琐,还会浪费大量的端口和IP资源;更重要的是,外部用户需要记住不同的IP或端口才能访问不同的服务,体验极差,也无法实现域名访问、HTTPS加密等生产级需求。比如:我们有一个前端Service(NodePort端口30123)和一个后端API Service(NodePort端口30456),外部用户要访问前端,需要输入“节点IP:30123”,访问后端需要输入“节点IP:30456”,既不方便记忆,也不符合我们日常“通过域名访问网站”的习惯(比如www.xxx.com访问前端,api.xxx.com访问后端)。而解决这一切问题的核心,就是今天我们要讲的K8s集群“统一外部入口”——Ingress网关。Ingress就像是K8s集群的“大门卫”,也是集群外部流量的“智能路由器”,它可以接收所有外部HTTP/HTTPS请求,然后根据我们配置的路由规则,将请