Microk8s Ingress是什么
Ingress是k8s的一种资源对象,用于管理外部对集群内服务的访问, 它通过提供一个统一的入口点,将外部流量路由到集群内部的不同服务。
Microk8s Ingress用于解决什么问题
k8s集群中服务默认只能在集群内访问。 如果需要从外部访问服务,通常需要使用NodePort或LoadBalancer类型服务,这两个服务都存在一些问题
- NodePort会占用节点端口,可能导致端口冲突
- LoadBalancer需要云提供商支持, 不适合本地环境
- Ingress提供一种灵活的方式暴露服务,允许通过域名或路径规则将流量路由到不同的服务
Microk8s Ingress基本原理
- Microk8s内置了一个Nginx的Ingress Controller, 负责监听k8s中的Ingress资源,当检测到Ingress资源更新时, 动态更新Nginx配置文件
- 外部流量先到达Nginx, 再基于域名和URL将请求转发到Service, Service再将流量分发到Pod