欢迎访问深圳敏捷云计算科技有限公司!

甲骨文云OCI-在Kubernetes中部署连接至自治数据库的微服务应用程序

2024-03-20 原创文章

作为开发人员或应用程序管理员,在设计和管理云原生应用程序时,您需要易于配置和维护的基础设施,并使您能够专注于设计和业务目标。Oracle云基础设施容器引擎Kubernetes(OKE)使您能够在云中部署和运行高可用性和可扩展性的基于微服务的应用程序。

架构

在微服务架构中,每个微服务执行一个简单的任务,并通过使用轻量级机制(如REST API请求)与客户端或其他微服务进行通信。

此参考架构适用于一个由多个多语言微服务组成的电子商务应用程序,这些微服务作为Docker容器部署在Kubernetes集群中。使用Oracle自治事务处理数据库实现数据持久性。电子商务应用程序的媒体和图像文件存储在Oracle云基础设施对象存储中。以下图表说明了这一架构。

该架构包含以下组件:

区域

Oracle云基础设施区域是一个地理区域,包含一个或多个数据中心,称为可用性域。区域彼此独立,相距遥远(跨国家甚至跨洲)。

可用性域

可用性域是区域内独立的数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,从而提供容错能力。可用性域不共享基础设施,如电力或冷却,或内部可用性域网络。因此,一个可用性域的故障不太可能影响该地区的其他可用性域。

故障域

故障域是一个可用性域内的硬件和基础设施分组。每个可用性域有三个故障域,拥有独立的电源和硬件。Oracle云基础设施容器引擎Kubernetes负责将集群中的节点分布在多个故障域中。因此,您的容器化应用程序受到保护,不受故障域内的物理服务器故障、系统维护和电力故障的影响。

虚拟云网络(VCN)和子网

VCN是您在Oracle云基础设施区域中设置的可定制的、软件定义的网络。与传统数据中心网络一样,VCN让您完全控制您的网络环境。VCN可以有多个不重叠的CIDR块,您可以在创建VCN后更改它们。您可以将VCN划分为子网,这些子网可以在区域或可用性域内划分。每个子网由不与VCN中其他子网重叠的连续地址范围组成。您可以在创建后更改子网的大小。子网可以是公共的或私有的。

服务网关

服务网关提供从VCN到其他服务(如Oracle云基础设施对象存储)的访问。从VCN到Oracle服务的流量通过Oracle网络基础设施进行,不穿越互联网。

网络地址转换(NAT)网关

NAT网关使VCN中的私有资源能够访问互联网上的主机,而无需将这些资源暴露给进入的互联网连接。

互联网网关

互联网网关允许VCN中的公共子网与公共互联网之间的流量。

自治事务处理

Oracle自治事务处理是一种自驾、自保护、自修复的数据库服务,专为事务处理工作负载优化。您无需配置或管理任何硬件,也无需安装任何软件。Oracle云基础设施负责创建数据库,以及备份、打补丁、升级和调优数据库。

对象存储

对象存储提供对大量结构化和非结构化数据的快速访问,包括数据库备份、分析数据和丰富内容,如图像和视频。您可以安全地存储数据,然后直接从互联网或云平台中检索数据。您可以无缝扩展存储,而不会经历性能或服务可靠性的降低。使用标准存储用于您需要快速、立即和频繁访问的“热”存储。使用归档存储用于您长时间保留且很少或极少访问的“冷”存储。

在此架构中,应用程序的媒体资产存储在Oracle云基础设施对象存储的标准存储类别的存储桶中。

容器引擎Kubernetes

Oracle云基础设施容器引擎Kubernetes是一个完全托管、可扩展、高可用性的服务,您可以用它将容器化应用程序部署到云中。您指定应用程序所需的计算资源,容器引擎Kubernetes会在现有的租户中为Oracle云基础设施配置这些资源。容器引擎使用Kubernetes自动化部署、扩展和管理跨主机集群的容器化应用程序。

以下图表显示了此架构中容器化微服务之间的交互:

来自公共互联网的流量通过DNS服务路由到Web应用程序防火墙(WAF),然后转发到负载均衡器,负载均衡器将传入请求转发到Ingress(Nginx)微服务。Ingress微服务将流量发送到Router(Traefik)微服务。根据请求的性质,Router微服务将它们路由到应用程序中相应的微服务。除了与其他微服务交互之外,许多微服务还与甲骨文云基础设施服务进行交互:对象存储、API网关、函数、电子邮件传递、流媒体和自治数据库。

建议

使用以下建议作为起点。您的要求可能与此处描述的架构不同。

VCN

在创建VCN时,根据您计划附加到VCN子网中的资源数量,确定所需的CIDR块数量和每个块的大小。使用标准私有IP地址空间内的CIDR块。

选择不与任何其他网络(在甲骨文云基础设施、您的本地数据中心或您打算建立私有连接的其他云提供商中)重叠的CIDR块。

创建VCN后,您可以更改、添加和删除其CIDR块。

在设计子网时,请考虑您的流量和安全需求。将特定层或角色内的所有资源附加到同一子网,这可以作为安全边界。

使用区域子网。
注意:实施此架构的Terraform代码在甲骨文服务网络中配置了甲骨文自治事务处理数据库。如果您更希望仅为数据库暴露一个私有端点,则可以调整Terraform代码,将数据库附加到私有子网,如架构图中所示。

容器引擎用于Kubernetes

在此架构中,Kubernetes集群中的工作节点使用VM.Standard2.1形状,并在甲骨文Linux上运行。您可以在一个集群中创建多达1000个节点。

               

考虑因素

在实施此架构时,请考虑以下参数的要求:

可伸缩性

根据负载,您可以通过更新Kubernetes集群中的工作节点数量来扩展应用程序。同样,您可以通过减少集群中的工作节点数量来缩减规模。在Kubernetes集群上创建服务时,您可以创建一个负载均衡器,以在分配给服务的节点之间分配服务流量。此架构使用负载均衡器来处理传入请求。

应用程序可用性

容错域在单个可用性域内提供弹性。您还可以在多个可用性域部署执行相同任务的实例或节点。这种设计通过引入冗余消除了单点故障。在此架构中,容器引擎用于Kubernetes负责在可用性域内跨容错域分配节点,并管理Kubernetes集群内可用节点上微服务的分配。

可管理性

所有微服务都使用Docker容器化。这些镜像存储在甲骨文云基础设施注册服务中。使用Terraform自动化部署,它还部署了其他常见服务,如Grafana、Prometheus和Helm图表。

您可以使用其他甲骨文云基础设施服务,如API网关、函数和电子邮件传递来管理后端API,并启用对产品相关新闻通讯或电子邮件的订阅。
安全性

容器引擎用于Kubernetes与甲骨文云基础设施身份和访问管理(IAM)集成,提供易于认证的本地身份功能。使用IAM策略控制谁可以访问您的资源以及他们可以执行的操作。

考虑使用甲骨文云基础设施网络应用程序防火墙(WAF)来保护应用程序免受公共互联网的恶意流量攻击。

您可以使用甲骨文云基础设施流媒体服务来流式传输和记录应用程序级事件。

为了保护您的Kubernetes秘密,您可以将它们存储在一个保险库中,或使用您在甲骨文云基础设施保险库服务中维护的密钥对秘密进行加密。Kubernetes集群可以通过VCN的服务网关私下访问保险库、密钥和秘密,而无需将访问请求暴露给公共互联网。您在甲骨文云基础设施身份和访问管理中定义的策略控制对保险库的访问。甲骨文云基础设施审计服务允许您监控和跟踪对您的保险库保护密钥和秘密的使用情况。

                     

部署

部署此参考架构所需的代码可在GitHub中获取。您可以一键将代码拉入甲骨文云基础设施资源管理器,创建堆栈并部署它。或者,将代码从GitHub下载到您的计算机,自定义代码,并使用Terraform CLI部署架构。

使用甲骨文云基础设施资源管理器部署:

a. 点击,如果您尚未登录,请输入租户和用户凭证。

b. 查看并接受条款和条件。

c. 选择您想要部署堆栈的区域。

d. 按照屏幕上的提示和指示创建堆栈。

e. 创建堆栈后,点击Terraform操作,选择计划。

f. 等待作业完成,并查看计划。

g. 如需进行任何更改,请返回到堆栈详细信息页面,点击编辑堆栈并进行必要的更改。然后,再次运行计划操作。

h. 如果不需要进一步更改,请返回到堆栈详细信息页面,点击Terraform操作,并选择应用。

使用Terraform CLI部署:

a. 前往GitHub。

b. 将代码下载或克隆到您的本地计算机。

c. 按照deploy/complete/README.md中的说明操作。

开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。

Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。

利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。

Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门