浏览 596
原文作者:Jenn Gile
原文链接:生产级 Kubernetes 助您降低复杂性 - NGINX
转载来源:NGINX 官方网站
2020 年是令人刻骨铭心的一年。学校、企业和公共服务的突然停摆让我们与社会隔绝开来,也让我们的人身安全和财务稳定性充满了不确定。现在我们想象一下,如果疫情发生在 2000 年,甚至是 2010 年,会和现在有什么不同?答案是技术。如果没有医疗、流媒体视频、远程协作工具等我们习以为常的高质量数字服务做保障,疫情对我们来说可能就会是另外一番体验了。是什么让 2020 的技术与过去几十年如此不同?答案是容器和微服务。
微服务架构通常会与容器和 Kubernetes 技术结合,能够缩短业务上市时间、提升数字体验,进而推动业务增长和技术创新。无论是搭配使用传统架构还是独立使用,这些现代应用技术都可以显著改善可扩展性、灵活性和部署速度,甚至节省成本。
在 2020 年之前,我们发现大多数客户已开始采用微服务作为其数字化转型战略的一部分,但疫情极大地推动了应用的现代化步伐。我们在 2020 年 对 NGINX 用户进行的一项调查发现,60% 的受访者在生产环境中使用微服务,较 2019 年 (40%) 有所上升,容器的受欢迎程度是其他现代应用技术的 2 倍多。
Kubernetes 是公认的容器化应用管理标准。as evidenced by the 云原生计算基金会 (CNCF) 在 2020 年进行的一项调查发现,91% 的受访者正在使用 Kubernetes,其中 83% 在生产环境中使用。许多企业在采用 Kubernetes 时已经做好了进行重大架构变更的准备,但大规模运行现代应用技术对组织带来的影响却是他们没有想到的。如果您正在运行 Kubernetes,您可能已经遇到了以下三个攸关业务的障碍:
The CNCF Cloud Native Interactive Landscape(云原生基金会的交互全景图) 清楚地说明了支持微服务应用的必要基础架构的复杂性。企业需要精通各种不同的技术,这会造成基础架构锁定、IT 无处不在、工具蔓延以及基础架构维护人员学习难度加大等。
与大多数组织结构问题一样,解决 Kubernetes 挑战的方法是将技术和流程相结合。接下来我们将主要讨论技术组件,有关流程及其他主题请关注后续博客。
Kubernetes 是一种开源技术,实现生产级 Kubernetes 的方式有很多。虽然一些企业更喜欢配置适合自己的 Kubernetes,但许多企业发现,Amazon Elastic Kubernetes Service(EKS)、Google Kubernetes Engine(GKE)、Microsoft Azure Kubernetes Service(AKS)、Red Hat OpenShift 容器平台 及 Rancher 等服务可提供出色的灵活性、规范性及强大的支持。
Kubernetes 平台支持服务轻松启动和运行,但是它们关注的是服务广度而非深度。您可以一站式获齐所需的所有服务,但无法获得大规模生产所需的所有功能。具体来说,它们不关注高级网络功能和安全性,而这正是许多客户对 Kubernetes 不满意的地方。
要实现生产级 Kubernetes,您需要按照以下顺序添加三个组件:
可扩展的 ingress/egress 层,用于控制进出集群的流量
这是通过 Ingress 控制器实现的。Ingress 控制器是一个专用负载均衡器,能够将 Kubernetes 网络的复杂性抽象出来,并在 Kubernetes 集群内部的服务和外部之间建立了一座桥梁。如果该组件包含有助于提高弹性(例如高级健康检查和 Prometheus 指标)、快速扩展(动态重新配置)和自助服务(基于角色的访问控制 (RBAC))的特性,它就变成了生产级组件。
内置安全防护,防范整个集群中的威胁
虽然集群外部可能只要有“粗粒度”的安全防护就够了,但集群内部必须要有“细粒度”安全防护。根据集群的复杂程度,您可能需要在以下三个位置部署灵活的 Web 应用防火墙(WAF):在 Ingress 控制器上、为每个 service 进行代理、为每个 pod 进行代理。通过这种灵活性,您可以对敏感应用实施更严格的控制(例如在计费方面),并对低风险应用放宽控制。
可扩展的东西向流量层,用于优化集群内的流量
一旦 Kubernetes 应用的复杂性和规模超出基本工具的处理能力范围,就需要使用这第三个组件。在该阶段,您需要一个服务网格,这是一种编排工具,可为集群内的应用服务提供更细粒度的流量管理和安全性。服务网格通常负责管理容器化应用之间的应用路由,提供和实施自动的服务到服务的双向 TLS (mTLS) 策略,并让应用的可用性和安全性变得可视化。
在选择这些组件时,请优先考虑可移植性和可视化。不受平台限制的组件可以降低复杂性并提高安全性,团队需要学习和保护的工具更少,并且能够更轻松地根据业务需求转移工作负载。可视化和监控的重要性已毋庸赘言。通过集成 Grafana 和 Prometheus 等主流工具,您可以获得一个统一基础架构的“单一管理平台”视图,确保您的团队能够先客户一步检测到问题。此外,还有一些互补技术可能对生产级 Kubernetes 来说不一定是必需的,但却是现代应用开发的重要组成部分。例如,当企业和机构准备对传统应用进行现代化改造时,第一步就是使用 API 网关构建微服务。
我们的 Kubernetes 解决方案不受平台限制,并包含实现生产级 Kubernetes 所需的三个组件:用作ingress/egress层的 NGINX Ingress Controller、用作 WAF 的 NGINX App Protect、用作东西向流量层的 NGINX Service Mesh。
这些解决方案可以解决以下四大方面的问题,让 Kubernetes 成为您最好的搭档:
NGINX Ingress Controller 提供 30 天 免费试用版,其中包括可以保护容器化应用的 NGINX App Protect。我们建议您添加免费的 NGINX Service Mesh(可在 f5.com 下载),从试用中获得最大价值。并且我们支持您将自带的许可 (BYOL) 添加到您选择的云中。
请前往NGINX开源社区:
按点赞数排序
按时间排序