干货分享:如何使用Kubernetes的Ingress API

栏目: IT技术 · 发布时间: 4年前

内容简介:正文

干货分享:如何使用Kubernetes的Ingress API

导语

以Kubernetes的Kong为例,聊聊当前流行的开源且与云无关的Ingress控制器。

正文

您可以通过使用诸如Kong for Kubernetes的Ingress控制器(使用自定义资源定义并提供许多插件)来极大地扩展Ingress资源的功能。

Kubernetes正在整个技术行业中得到采用,并且正逐渐成为现代云服务交付的实际编排平台。Kubernetes不仅提供了用于在云中部署微服务的原语,而且更进一步,帮助开发人员定义交互并管理其API的生命周期。

Kubernetes中的Ingress API允许您将微服务公开给外部世界,并为南北流量(即进入虚拟数据中心的流量)定义路由策略。使用Ingress 使用持续集成和持续交付(CI / CD)管道来管理API生命周期的好处很多,但是在我们介绍这些之前,让我们从一些基础知识开始。

Ingress资源的设计和目的

Kubernetes集群的最简单描述是在容器中运行应用程序的一组受管节点。在大多数情况下,Kubernetes集群中的节点不会直接暴露于公共互联网。这是有道理的,因为将所有服务公开在一个节点上会带来不可思议的风险。为了向公众提供对选定服务的访问,Kubernetes提供了Ingress资源。

Ingress资源公开了从群集外部到其中的选定服务的HTTP和HTTPS路由。Ingress资源还提供控制流量的规则。这使得Ingress资源成为处理大量独立服务提供的各种API的理想解决方案。为此,它为所有客户端提供一个入口点,然后处理对后端服务的请求。这通常称为扇出配置。

干货分享:如何使用Kubernetes的Ingress API

还可以为基于名称的虚拟主机设置Ingress资源,该资源将基于主机头路由请求:

干货分享:如何使用Kubernetes的Ingress API

为了使Ingress资源正常工作,需要在Kubernetes集群上安装Ingress控制器。控制器在Kubernetes集群和现有的各种面向公众的接口之间建立了桥梁。例如,大多数托管Kubernetes的云提供商都提供了一个独特的Ingress控制器,以与他们规定的面向公众的方法对接。各个控制器的操作彼此不同,并且可以提供不同数量的附加功能。

使用Ingress通过CI / CD管道管理API生命周期的好处

Ingress资源是通过声明性配置文件定义的,该文件通常在YAML中进行描述。这与所有Kubernetes资源一致,并允许直接集成到现代部署模式中,例如CI / CD的组合实践。这就是快速,频繁且安全地部署Ingress更改的能力。这样,可以将Ingress资源与应用程序本身合并到相同类型的软件开发生命周期模式中。

开发人员如何使用Kong for Kubernetes完成Ingress

面向Kubernetes的Kong是一个流行的开源且与云无关的Ingress控制器。Kong for Kubernetes入口控制器是作为Kubernetes中的自定义资源定义(CRD)构建的。这为那些已经习惯在该平台内定义资源的人提供了Kubernetes原生体验。

像您的应用程序和服务一样,可以通过Manifest,Helm或Kustomize安装Kong for Kubernetes。

Kong for Kubernetes Ingress Controller通过提供广泛的插件集来扩展Ingress资源的功能,这些插件涵盖了包括身份验证,分析,监视以及请求和响应转换在内的各种功能,仅举几例。通过在Ingress控制器上提供这些常见(有时不是很常见)的要求,Kong for Kubernetes可使开发人员将更多精力放在服务的核心要求上。当组织从少数的单一应用程序迁移到数百个(甚至数千个)微服务时,其价值变得尤为明显。

有关常见插件的列表,请访问 https://docs.konghq.com/hub/。

Kong插件被定义为Kubernetes资源,其中的config部分提供了各个插件的设置。以下是一个限速插件示例,该插件将流量限制为每分钟五个请求:

干货分享:如何使用Kubernetes的Ingress API

通过在资源的元数据部分中的简单注释即可将Kong插件添加到Kubernetes资源中。这允许将插件应用于不同的层。例如,您可以将一个插件应用于整个Ingress资源,或者以一种更细粒度的方式将其应用于单个服务资源。

这是将上述插件应用于Ingress资源的示例:

干货分享:如何使用Kubernetes的Ingress API

Kong for Kubernetes还可以集成到Kong Enterprise产品的完整套件中,包括Kong Studio,Kong Dev Portal,Kong Manager,  Kong Brain和Kong Immunity。这样就可以使用更高级的Kong插件以及完整的API生命周期解决方案。这套产品涵盖API规范的创作和发布,以及Kong资源的管理,甚至流量分析。

您可以采用“规范优先”的方法来使用Kong Studio开发API。在该库中,您将找到用于在标准OpenAPI规范中编写文档的 工具 以及用于立即反馈的测试工具。Kong Studio还提供了使用GraphQL的工具。Kong Studio直接同步到Git,这可以将您的规格文件集成到CI / CD工作流程中,从而可以自动更新Kong Dev Portal。

Kong Dev Portal托管您的API文档(可以是私人的也可以是公共的)。它具有极高的可定制性,可让您使其适应组织的风格和品牌。拥有完善文档的API对于提高生产力很重要,并且在Kong Studio和Dev Portal之间进行良好管理的流程可以帮助确保文档尽可能保持最新。

Kong Manager提供了图形界面来观察和管理整个Kong产品套件。从这里,您可以观察路由,服务和插件之间的关系。您可以实时了解流量并跟踪消费者。

Kong Brain会分析通过Ingress的流量,并创建服务间依赖关系的可视服务图。它还具有根据生成的地图自动生成OpenAPI规范文档的功能。这是一项有价值的功能,因为即使出于最佳意图,也可能无法正确记录所部署的服务。

Kong Immunity会分析通过Ingress的所有流量,并学习识别异常的模式。这些通常是微妙的请求,它们并不引人注目,但可能会引起人们的兴趣,例如不断尝试通过的未知参数。这也是一个非常有价值的功能,因为将这些针刺入成千上万个日志条目的大海捞针并不容易。

干货分享:如何使用Kubernetes的Ingress API

充分利用Ingress

Kubernetes入口资源提供了从外部Kubernetes到内部后端服务的单个入口点。通过利用声明性定义文件,可以像对待所有其他形式的代码一样对待Ingress资源,并将其集成到常见的软件开发生命周期中。

为了桥接Kubernetes之外的通信,需要一个Ingress控制器。Kong for Kubernetes是一个Ingress控制器,它使用自定义资源定义通过提供大量插件来极大地扩展Ingress资源的功能,从而使开发人员可以专注于核心业务价值。Kong拥有一套企业工具,可以在整个API生命周期内极大地提高生产力和安全性。

干货分享:如何使用Kubernetes的Ingress API


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Making Things See

Making Things See

Greg Borenstein / Make / 2012-2-3 / USD 39.99

Welcome to the Vision Revolution. With Microsoft's Kinect leading the way, you can now use 3D computer vision technology to build digital 3D models of people and objects that you can manipulate with g......一起来看看 《Making Things See》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具