一、概述
- Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP,可以提供负载均衡、SSL 终结和基于名称的虚拟托管
- Ingress 提供从集群外部到集群内服务的 HTTP 和 HTTPS 路由。流量路由由 Ingress 资源所定义的规则来控制
- 通过配置,Ingress 可为 Service 提供外部可访问的 URL、对其流量作负载均衡、终止 SSL/TLS,以及基于名称的虚拟托管等能力。Ingress 控制器 负责完成 Ingress 的工作,具体实现上通常会使用某个负载均衡器,不过也可以配置边缘路由器或其他前端来帮助处理流量
- Ingress 不会随意公开端口或协议。将 HTTP 和 HTTPS 以外的服务开放到 Internet 时,通常使用
Service.Type=NodePort
或Service.Type=LoadBalancer
类型的 Service - Ingress Nginx 是围绕 Kubernetes Ingress 资源构建的,使用 ConfigMap 来存储控制器配置
二、安装
1. 有 LoadBalancer
- LoadBalancer 安装见:https://www.itcoca.cn/k8s/openelb.html
- 使用 Helm 安装 Ingress Nginx:
1 | $ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx |
- 创建后端的 nginx 的 Pod 和 Service:
1 | apiVersion: apps/v1 |
- 创建 ingress 规则
1 | apiVersion: networking.k8s.io/v1 |
- 配置 Windows 的 hosts 解析
1 | 10.4.7.211 211.com |
- 浏览器访问 http://211.com/web
2. 无 LoadBalancer
1 | # 查找ingress-nginx的chart包 |