技术大咖带你玩转NGINX Ingress Controller
Kubernetes 作为一个开源的集群管理软件,用于部署、运行和管理 Docker 容器。它让开发人员可以专注于他们的应用程序,而不用担心底层基础设施。
Kubernetes 可以运行在大量的云服务提供商上,如 AWS、Azure、阿里云等,在 Apache Mesos 框架的上层,甚至在本地的虚拟机(VirtualBox)。
在云原生时代,运行容器化负载的 Kubernetes 平台无疑是一大热点。
在 Kubernetes 集群中,Ingress 作为集群内服务对外暴露的访问接入点,其几乎承载着集群内服务访问的所有流量。
Ingress 是 Kubernetes 中的一个资源对象,用来管理集群外部访问集群内部服务的方式。
您可以通过 Ingress 资源来配置不同的转发规则,从而达到根据不同的规则设置访问集群内不同的 Service 后端 Pod。
Ingress Controller 工作原理
为了使 Ingress 资源正常工作,集群中必须要有个 Ingress Controller 来解析 Ingress 的转发规则。
Ingress Controller 收到请求,匹配 Ingress 转发规则转发到后端 Service,而 Service 转发到 Pod,最终由 Pod 处理请求。
Kubernetes 中 Service、Ingress 与 Ingress Controller 有着以下关系:
①Service 是后端真实服务的抽象,一个 Service 可以代表多个相同的后端服务。
②Ingress 是反向代理规则,用来规定 HTTP/HTTPS 请求应该被转发到哪个 Service 上。例如根据请求中不同的 Host 和 URL 路径,让请求落到不同的 Service 上。
③IngressController 是一个反向代理程序,负责解析 Ingress 的反向代理规则。
如果 Ingress 有增删改的变动,Ingress Controller 会及时更新自己相应的转发规则,当 Ingress Controller 收到请求后就会根据这些规则将请求转发到对应的 Service。
玩转 NGINX Ingress Controller
可见,Ingress Controller 是管理 Kubernetes 集群南北向流量的重要组件,而 NGINX 是当前实现 Ingress Controller 中具有绝对优势的领先者。
NGINX KIC 工作原理
那么:
如何根据实际情况来选择部署方式(Deployment/DaemonSet)?
如何才能用好 Kubernetes Ingress Controller 启动参数?
如何为不同应用场景启用多个 Kubernetes Ingress Controller?
如何深度定制 Ingress 资源,精细控制流量?
如何加载动态模块,发挥 Kubernetes Ingress Controller 的真正实力?
面对种种难题,NGINX/OpenResty 开源项目贡献者罗剑锋老师将为您一一解答。
罗剑锋老师拥有 10 年以上的 NGINX 使用经验,熟悉 NGINX C 模块和 Lua 应用的开发,为 NGINX/OpenResty 项目贡献过多个 patch/feature,著有《NGINX 完全开发指南》《OpenResty 完全开发指南》等技术书籍,是名副其实的 NGINX IngressController 大咖!
想要聆听 NGINX Ingress Controller 的最新动向、使用经验和高级技巧,7 月 22 日 14:00,直播间见!
扫码免费预约观看直播
点“阅读原文”立即报名