门户网站的盈利模式,中国外贸企业100强,陕西西安封闭通知最新,重庆十大外贸公司排名原文作者#xff1a;Chris Akker - F5 技术解决方案架构师#xff0c;Steve Wagner - F5 NGINX 解决方案架构师 原文链接#xff1a;借助 NGINX 对本地的 Kubernetes 服务进行自动化的 TCP 负载均衡 转载来源#xff1a;NGINX 中文官网 NGINX 唯一中文官方社区 #xff0c… 原文作者Chris Akker - F5 技术解决方案架构师Steve Wagner - F5 NGINX 解决方案架构师 原文链接借助 NGINX 对本地的 Kubernetes 服务进行自动化的 TCP 负载均衡 转载来源NGINX 中文官网 NGINX 唯一中文官方社区 尽在 nginx.org.cn
作为一名现代应用开发人员您不仅使用一系列开源工具和一些商业工具来编写、测试、部署及管理新应用和容器而且还选择了 Kubernetes 在开发、测试、模拟和生产环境中运行这些容器和 pod并引入了微服务架构和概念、云原生计算基金会及其他现代行业标准。
这一路走来您发现 Kubernetes 的功能的确很强大但可能也没想到它如此繁琐、复杂和僵化。实施并协调对路由器、防火墙、负载均衡器及其他网络设备的变更和更新可能会非常困难尤其是在您自己的数据中心这足以让开发人员崩溃。
如何应对这些挑战与 Kubernetes 运行位置和方式作为托管 service 或本地 service密切相关。本文将介绍 TCP 负载均衡这是部署选择影响易用性的关键之处。 使用托管 Kubernetes 进行 TCP 负载均衡所谓的“简易方案”
如果您使用的是 Kubernetes 公有云提供商等托管 service那么大部分繁琐的网络工作处理均由其为您代劳。只需一个命令kubectl apply -f loadbalancer.yamlService 类型 LoadBalancer 便会为您提供公共 IP、DNS 记录及 TCP 负载均衡器。例如您可以配置 Amazon Elastic Load Balancer以便将流量分配到包含 NGINX Ingress Controller 的 pod。使用此命令即使后端发生变化也不必担心。简直太简单了给人行云流水之感 使用本地 Kubernetes 进行 TCP 负载均衡所谓的“复杂方案”
对于本地集群情况完全不同。您或您的网络团队同事必须提供网络服务。您可能会想“为何让用户使用我的 Kubernetes 应用如此困难”原因很简单但有些出人意料没有 service 类型 LoadBalancer集群的前门。
若要将应用和 service 暴露在集群外部您的网络团队可能需要创建工单、获得审批、执行程序乃至进行安全审查 — 然后才能重新配置设备。或者您可能需要自己搞定一切进而拖慢了应用交付的速度。更糟糕的是您不敢对任何 Kubernetes service 进行更改因为如果 NodePort 发生变化流量可能会被阻断我们都知道用户最不希望出现 500 错误老板可能更是如此。 更好的本地 TCP 负载均衡解决方案NGINX Loadbalancer for Kubernetes
通过我们的最新免费项目您可将“复杂方案”变成“简易方案”这个项目就是 NGINX Loadbalancer for Kubernetes 它能够监控 NGINX Ingress Controller并可自动更新专为负载均衡而配置的外部 NGINX Plus 实例。它的设计非常简单易于安装和操作。有了此解决方案您便可在本地环境中实现 TCP 负载均衡确保新应用和 service 能即时被检测到并可接收流量而无需手动操作。 架构和流程
NGINX Loadbalancer for Kubernetes 位于 Kubernetes 集群内部已在 Kubernetes 中注册可监控 nginx-ingress service (NGINX Ingress Controller)。当后端发生变化时NGINX Loadbalancer for Kubernetes 会收集 worker IP 和 no reload required 端口号然后通过 NGINX Plus API 将 IP:ports 发送到 NGINX Plus。NGINX 上游服务器无需重新加载即可更新NGINX Plus 将流量负载均衡到正确的上游服务器和 Kubernetes NodePort。可添加额外的 NGINX Plus 实例来实现高可用性。 NGINX Loadbalancer for Kubernetes 用例快照
下面截图中的两个窗口展示了 NGINX Loadbalancer for Kubernetes 已部署完毕并正执行其作业
service 类型 – LoadBalancer适用于 nginx-ingress外部 IP – 连接到 NGINX Plus 服务器端口 – NodePort 映射到 443:30158 及匹配的 NGINX 上游服务器如 NGINX Plus 实时仪表盘所示日志 – 表示 NGINX Loadbalancer for Kubernetes 成功地将数据发送到 NGINX Plus
注在本例中Kubernetes worker 节点为 10.1.1.8 和 10.1.1.10 立即试用
如果您正苦于无法应对 Kubernetes 集群边缘的网络挑战不妨试试该项目并分享一下您的感想。NGINX Loadbalancer for Kubernetes 的源代码是开源代码使用 Apache 2.0 许可所有安装说明均可在 GitHub 上获得。
如需提供反馈请在仓库中给我们留言或在 NGINX Community Slack 上向我们发送消息。或者请微信添加小N助手微信号nginxoss加入官方微信群与社区用户交流探讨。 NGINX 唯一中文官方社区 尽在 nginx.org.cn
更多 NGINX 相关的技术干货、互动问答、系列课程、活动资源 开源社区官网 | 微信公众号