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

甲骨文云自动扩展Oracle容器实例:智能化、高效的云计算解决方案

2024-01-15 原创文章

容器部署的应用需要根据需求进行扩展。例如,学生报名系统在学期开始时需增加处理能力,但学期进行中则可以减少。Oracle Cloud Infrastructure 容器实例能够托管您的容器化应用,并根据需要进行自动扩展。OCI 容器实例使您能够轻松在为容器优化的无服务器计算环境中运行应用。您还可以灵活地启动一个或多个容器,并指定计算形状、资源分配、网络以及其他可选配置。利用这个参考架构,基于资源利用率来自动扩展 OCI 容器实例。

架构

这一架构结合了Oracle通知服务、报警系统以及Oracle函数,用以实现OCI容器实例的自动扩展。以下示意图展示了这一参考架构。

架构包含以下组件:


租户(Tenancy)

当您注册Oracle Cloud Infrastructure时,Oracle会在Oracle Cloud中为您设置一个安全且独立的分区,即租户。您可以在自己的租户内创建、组织和管理Oracle Cloud中的资源。一个租户等同于一家公司或组织。通常,一家公司只有一个租户,并在该租户内反映其组织结构。一个租户通常与一个订阅关联,而一个订阅通常只有一个租户。

地域(Region)

Oracle Cloud Infrastructure地域是包含一个或多个数据中心的地理区域,这些数据中心称为可用性域。地域彼此独立,相隔很远(跨国甚至跨洲)。

分区(Compartment)

分区是Oracle Cloud Infrastructure租户内跨地域的逻辑分区。使用分区来组织Oracle Cloud中的资源,控制对资源的访问,并设置使用配额。要控制对特定分区中资源的访问,您需要定义策略,指定谁可以访问资源以及他们可以执行的操作。

可用性域(Availability domains)

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

故障域(Fault domains)

故障域是可用性域内的硬件和基础设施分组。每个可用性域有三个独立电力和硬件的故障域。当您将资源分布在多个故障域时,您的应用程序可以承受物理服务器故障、系统维护和故障域内的电力故障。

虚拟云网络(VCN)和子网

虚拟云网络(VCN)是您在Oracle Cloud Infrastructure地域中设置的可自定义的软件定义网络。与传统数据中心网络一样,VCN让您完全控制网络环境。VCN可以有多个不重叠的CIDR块,您可以在创建VCN后更改这些块。您可以将VCN分割为子网,这些子网可以限定在一个地域或一个可用性域。每个子网包含一系列不与VCN中其他子网重叠的地址。创建后,您可以更改子网的大小。子网可以是公共的或私有的。

安全列表(Security list)

对于每个子网,您可以创建安全规则,指定必须允许进出子网的流量的来源、目的地和类型。

网络地址转换网关(NAT gateway)

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

服务网关(Service gateway)

服务网关提供从VCN到其他服务(如Oracle Cloud Infrastructure对象存储)的访问。从VCN到Oracle服务的流量通过Oracle网络基础设施传输,不会经过互联网。

互联网网关(Internet gateway)

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

Cloud Guard

您可以使用Oracle Cloud Guard来监控和维护Oracle Cloud Infrastructure中资源的安全。Cloud Guard使用您可以定义的检测配方来检查资源的安全漏洞,并监控操作者和用户的风险活动。当检测到任何配置错误或不安全活动时,Cloud Guard会推荐纠正措施,并协助根据您可以定义的响应配方采取这些措施。

负载均衡器(Load balancer)

Oracle Cloud Infrastructure负载均衡服务提供了从单个入口点到后端多个服务器的自动流量分配。

安全区(Security zone)

安全区从一开始就通过执行政策(如加密数据和阻止对网络的公共访问)来确保Oracle的安全最佳实践。安全区与同名的分区关联,并包括适用于该分区及其子分区的安全区策略或“配方”。您不能将标准分区添加到安全区分区或将其移动到其中。

注册表(Registry)

Oracle Cloud Infrastructure Registry是Oracle管理的注册表,它简化了您从开发到生产的工作流程。注册表使您轻松存储、共享和管理开发工件,如Docker镜像。Oracle Cloud Infrastructure的高可用和可扩展架构确保您可以可靠地部署和管理应用程序。

日志记录(Logging)

日志记录是一个高度可扩展且完全托管的服务,提供从云中资源访问以下类型的日志:

  • 审计日志:与审计服务发出的事件相关的日志。
  • 服务日志:由各个服务(如API网关、事件、函数、负载均衡、对象存储和VCN流量日志)发出的日志。
  • 自定义日志:包含来自自定义应用程序、其他云提供商或本地环境的诊断信息的日志。

策略(Policy)

Oracle Cloud Infrastructure身份与访问管理策略规定了谁可以访问哪些资源以及如何访问。访问权限在群组和分区级别授予,这意味着您可以编写策略,使一个群组在特定分区内或对整个租户拥有特定类型的访问权限。

保管库(Vault)

Oracle Cloud Infrastructure Vault使您可以集中管理保护数据的加密密钥和用于保护访问云中资源的秘密凭证。您可以使用Vault服务创建和管理保管库、密钥和秘密。

建议

以下建议可作为创建安全且稳健环境的起点。您的需求可能与这里描述的架构不同。

VCN

  • 创建VCN时,根据您计划连接到VCN子网的资源数量,确定所需的CIDR块数量及每个块的大小。使用标准私有IP地址空间内的CIDR块。
  • 选择不与您打算建立私有连接的任何其他网络(在Oracle Cloud Infrastructure、您的本地数据中心或其他云提供商)重叠的CIDR块。
  • 创建VCN后,您可以更改、添加和删除其CIDR块。
  • 设计子网时,考虑您的流量流向和安全要求。将特定层或角色内的所有资源附加到同一子网,这可以作为安全边界。

Cloud Guard

  • 克隆并自定义Oracle提供的默认配方,创建自定义检测器和响应器配方。这些配方使您能够指定哪种类型的安全违规会生成警告,以及允许对它们执行哪些操作。例如,您可能想要检测设置为公开的对象存储桶。
  • 在租户级别应用Cloud Guard,以覆盖最广泛的范围并减少维护多种配置的管理负担。
  • 您还可以使用“托管列表”功能将特定配置应用于检测器。

安全区(Security Zones)

对于需要最高安全性的资源,Oracle建议您使用安全区。安全区是与基于最佳实践的Oracle定义的安全策略配方相关联的分区。例如,安全区内的资源不得从公共互联网访问,并且必须使用客户管理的密钥加密。在安全区创建和更新资源时,Oracle Cloud Infrastructure会根据安全区配方中的策略验证操作,并拒绝违反任何策略的操作。

网络安全组(NSGs)

您可以使用NSGs定义一组适用于特定VNIC的入站和出站规则。我们建议使用NSGs而不是安全列表,因为NSGs使您能够将VCN的子网架构与应用程序的安全要求分开。

考虑因素

在部署此参考架构时,请考虑以下几点。

  • 性能:这个解决方案比在函数中创建新的容器实例并将其添加到后端集更快,因为我们不需要等待容器实例创建API调用来返回容器实例的IP地址并将其添加到负载均衡器的后端集。Oracle Cloud Infrastructure Functions对每次调用的执行限制为五分钟。
  • 安全:确保将所有容器实例放置在私有子网中,仅将公共负载均衡器放置在公共子网中。
  • 可伸缩性:确保设置容器实例的最小和最大数量。彻底测试该解决方案以扩展大量实例。
  • 成本:使用Oracle Cloud Infrastructure Registry是免费的。容器实例会产生成本,但函数只在执行期间产生成本。

部署

遵循以下高层次步骤来自动扩展容器实例。

  1. 在Oracle Cloud Infrastructure资源管理器上创建一个堆栈,以创建容器实例,创建负载均衡器,并使用容器实例的IP将容器实例添加到负载均衡器后端集。
  2. 创建堆栈,使其接收以下参数:Compartment_OCIDRegionTenancy_OCIDContainer_Instances_CountIs_Public_IP_AssignedContainer_instance_registry_secretContainer_Instance_Image_URLPrivate_Subnet_OCIDPublic_Subnet_OCID
  3. 创建一个Oracle函数,读取上述资源管理器堆栈中的Container_Instance_Count,并根据容器实例的扩展或缩减调用进行更新。
  4. 在Oracle函数中更新Container_Instance_Count后,应用更新后的Container_Instance_Count的Terraform堆栈到资源管理器,然后退出函数。
  5. 资源管理器堆栈负责根据调用添加或终止OCI容器实例,并将其添加或从负载均衡器后端集中移除。
  6. 在您的Oracle函数中添加以下配置:Min_Container_InstanceMax_Container_InstanceCompartment_IDResource_Manager_Stack_ID
  7. 将新创建的Oracle函数镜像推送到Oracle Cloud Infrastructure Registry (OCIR)。
  8. 在通知服务下创建一个主题,并给它一个合适的名称。
  9. 在创建的主题下创建一个订阅,并选择函数作为协议。
  10. 注意事项:
  11. 选择您创建的函数,通过选择正确的分区和应用程序。
  12. 在oci_computecontainerinstancenamespace中创建一个报警定义。
  13. 选择CPU_utilization或Mem_Utilization作为指标。
  14. 选择容器实例名称作为维度。
  15. 设置报警触发所需的阈值。
  16. 测试此自动扩展架构以扩展和缩减OCI容器实例。

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

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

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

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

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

如您想咨询 Oracle 的相关业务,可联系搜索微信号:lhh1843812463woshiwhw123

或者可以进入以下群组进行咨询:

微信公众号

微信技术交流社群: