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

使用甲骨文云OCI容器实例简化您的容器化应用管理:高效、便捷的转型之道

2024-02-29 原创文章

运行容器化应用程序可能需要相当大的开销,包括实例化虚拟机、安装运行容器镜像的组件,以及支持它的所有依赖项,包括软件和操作系统更新,并在应用程序运行时进行监控,以确保它们运行最佳、可用且未受到破坏。


容器实例是甲骨文云基础设施(OCI)提供的一种完全托管的计算服务,允许客户在不管理服务器的情况下运行容器化应用程序。这提供了一种无服务器体验,让客户专注于为他们的应用程序增值,而不是部署和管理基础设施。


另一方面,如果不使用容器实例运行容器化应用程序,客户需要实例化一个虚拟机并安装所有运行容器镜像的组件。这包括容器运行时,如Docker或Podman,以及支持它的所有依赖项。此外,客户需要通过安装最新的安全补丁和应用正确的安全设置来保护虚拟机。随着软件和操作系统的新更新推出,需要持续应用更新和补丁。当应用程序运行时,需要进行监控,以确保应用程序运行最佳、可用且未受到破坏。


使用容器实例,客户只需要创建应用程序的容器镜像并将它们存储在容器注册表中。然后可以使用CLI命令或OCI控制台中的向导式GUI向导,按以下步骤使用容器实例部署容器化应用程序。

  • 定义容器实例参数:客户定义运行容器实例的OCI区域,可选地定义可用性域和故障域。接下来,客户选择容器实例的计算形状。对于每个实例,您可以分配高达所选计算形状的CPU和内存。例如,如果您选择了AMD E3/E4形状,您可以在一个容器实例中拥有64 OCPU(128 vCPU)和1024 GB内存。接下来,您将添加网络设置,如容器实例是否需要公共IP地址和容器实例的子网,以及可选的高级网络配置。在这一步中,您还可以选择指定私有DNS记录和主机名,这将为容器实例生成一个完全合格的域名。还有一个可选的高级选项,用于设置容器重启策略。
  • 指定应用程序的启动配置:在此步骤中,指定要运行的容器镜像的位置,以及容器镜像所需的任何环境变量。镜像可以位于甲骨文云基础设施注册表中,或任何容器实例具有IP连接性的公共或私有开放容器倡议兼容注册表中。对于私有注册表,您必须提供凭据以访问容器镜像。
  • 审核和创建:最后一步是审核所有配置,如果一切准确,您可以继续创建,容器实例将在几秒钟内启动。 客户仅按其实例分配的CPU和内存资源的费用支付,费率与常规甲骨文云基础设施计算相同。通过简单的体验、无缝的操作和无服务器体验不额外收费,容器实例为在云中运行容器提供了最佳价值。客户还可以使用标准数据库连接机制将容器实例与其他OCI服务(如MySQL服务和甲骨文自主数据库)集成,这使得容器化应用程序容易利用其他OCI服务。

架构

本架构使用容器实例部署了一个集成了MySQL数据库的容器化WordPress应用程序。容器实例将部署在具有公共IP地址的公共子网中,可从互联网访问。


容器实例专为不需要容器编排的独立应用程序设计。这些应用程序包括API、Web应用、CI/CD作业、自动化任务、数据和媒体处理、开发和测试环境等等。对于需要编排的容器化应用程序,OCI提供了甲骨文容器引擎用于Kubernetes(OKE),这是一种托管的Kubernetes服务,具有Virtual Nodes的无服务器选项。


每个容器实例可以运行多个容器。容器实例中的所有容器共享相同的生命周期、资源、网络和存储。容器实例中的容器具有与Kubernetes中的pod相同的概念,具有主应用程序容器和支持的sidecar容器。Sidecar容器用于增强或扩展主应用程序容器的功能。一个例子是具有主Web应用程序的容器实例和一个将Web应用程序日志导出到日志服务器的sidecar容器。


注意:将数据库容器与应用程序容器一起运行仅适用于开发和测试。考虑在生产部署中使用甲骨文MySQL数据库服务。


在此参考架构中,我们将使用容器实例部署集成数据库的WordPress。以下视频详细介绍了这一过程。


下图展示了本参考架构。

运行容器化应用程序可能需要相当大的开销,包括实例化虚拟机、安装运行容器镜像的组件,以及支持它的所有依赖项,包括软件和操作系统更新,并在应用程序运行时进行监控,以确保它们运行最佳、可用且未受到破坏。


容器实例是甲骨文云基础设施(OCI)提供的一种完全托管的计算服务,允许客户在不管理服务器的情况下运行容器化应用程序。这提供了一种无服务器体验,让客户专注于为他们的应用程序增值,而不是部署和管理基础设施。


另一方面,如果不使用容器实例运行容器化应用程序,客户需要实例化一个虚拟机并安装所有运行容器镜像的组件。这包括容器运行时,如Docker或Podman,以及支持它的所有依赖项。此外,客户需要通过安装最新的安全补丁和应用正确的安全设置来保护虚拟机。随着软件和操作系统的新更新推出,需要持续应用更新和补丁。当应用程序运行时,需要进行监控,以确保应用程序运行最佳、可用且未受到破坏。


使用容器实例,客户只需要创建应用程序的容器镜像并将它们存储在容器注册表中。然后可以使用CLI命令或OCI控制台中的向导式GUI向导,按以下步骤使用容器实例部署容器化应用程序。

  • 定义容器实例参数:客户定义运行容器实例的OCI区域,可选地定义可用性域和故障域。接下来,客户选择容器实例的计算形状。对于每个实例,您可以分配高达所选计算形状的CPU和内存。例如,如果您选择了AMD E3/E4形状,您可以在一个容器实例中拥有64 OCPU(128 vCPU)和1024 GB内存。接下来,您将添加网络设置,如容器实例是否需要公共IP地址和容器实例的子网,以及可选的高级网络配置。在这一步中,您还可以选择指定私有DNS记录和主机名,这将为容器实例生成一个完全合格的域名。还有一个可选的高级选项,用于设置容器重启策略。
  • 指定应用程序的启动配置:在此步骤中,指定要运行的容器镜像的位置,以及容器镜像所需的任何环境变量。镜像可以位于甲骨文云基础设施注册表中,或任何容器实例具有IP连接性的公共或私有开放容器倡议兼容注册表中。对于私有注册表,您必须提供凭据以访问容器镜像。
  • 审核和创建:最后一步是审核所有配置,如果一切准确,您可以继续创建,容器实例将在几秒钟内启动。 客户仅按其实例分配的CPU和内存资源的费用支付,费率与常规甲骨文云基础设施计算相同。通过简单的体验、无缝的操作和无服务器体验不额外收费,容器实例为在云中运行容器提供了最佳价值。客户还可以使用标准数据库连接机制将容器实例与其他OCI服务(如MySQL服务和甲骨文自主数据库)集成,这使得容器化应用程序容易利用其他OCI服务。



架构

本架构使用容器实例部署了一个集成了MySQL数据库的容器化WordPress应用程序。容器实例将部署在具有公共IP地址的公共子网中,可从互联网访问。


容器实例专为不需要容器编排的独立应用程序设计。这些应用程序包括API、Web应用、CI/CD作业、自动化任务、数据和媒体处理、开发和测试环境等等。对于需要编排的容器化应用程序,OCI提供了甲骨文容器引擎用于Kubernetes(OKE),这是一种托管的Kubernetes服务,具有Virtual Nodes的无服务器选项。


每个容器实例可以运行多个容器。容器实例中的所有容器共享相同的生命周期、资源、网络和存储。容器实例中的容器具有与Kubernetes中的pod相同的概念,具有主应用程序容器和支持的sidecar容器。Sidecar容器用于增强或扩展主应用程序容器的功能。一个例子是具有主Web应用程序的容器实例和一个将Web应用程序日志导出到日志服务器的sidecar容器。


注意:将数据库容器与应用程序容器一起运行仅适用于开发和测试。考虑在生产部署中使用甲骨文MySQL数据库服务。


在此参考架构中,我们将使用容器实例部署集成数据库的WordPress。以下视频详细介绍了这一过程。


下图展示了本参考架构。



该架构包含以下组件:

租户

当您注册甲骨文云基础设施时,甲骨文会在甲骨文云中为您设置一个安全且独立的分区,称为租户。您可以在租户内创建、组织和管理您在甲骨文云中的资源。租户通常与公司或组织同义。通常,一家公司将拥有一个租户,并在该租户内反映其组织结构。一个租户通常与一个订阅相关联,而一个订阅通常只有一个租户。


地区

甲骨文云基础设施地区是包含一个或多个数据中心的本地化地理区域,这些数据中心称为可用性域。地区彼此独立,它们之间可能相隔很远(跨越国家甚至大洲)。


分区

分区是甲骨文云基础设施租户内的跨地区逻辑分区。使用分区来组织您在甲骨文云中的资源、控制对资源的访问以及设置使用配额。为了控制对给定分区中的资源的访问,您需要定义策略,指定谁可以访问资源以及他们可以执行的操作。


可用性域

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


故障域

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


虚拟云网络(VCN)和子网

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


安全列表

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


网络地址转换(NAT)网关

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


服务网关

服务网关提供从VCN到其他服务(如甲骨文云基础设施对象存储)的访问。从VCN到甲骨文服务的流量通过甲骨文网络结构传输,永远不会穿越互联网。


容器注册表

由甲骨文管理的注册表,使您能够简化从开发到生产的工作流程。


建议

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

VCN

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


安全性

使用甲骨文云卫士主动监控和维护您在甲骨文云基础设施中的资源的安全。云卫士使用您可以定义的检测器配方来检查您的资源是否存在安全弱点,并监控操作者和用户是否存在风险活动。当检测到任何配置错误或不安全活动时,云卫士会推荐纠正措施,并根据您可以定义的响应者配方协助采取这些措施。


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


云卫士

克隆并定制甲骨文提供的默认配方,以创建自定义的检测器和响应者配方。这些配方使您能够指定哪些类型的安全违规会生成警告,以及允许对它们执行哪些操作。例如,您可能想要检测设置为公开的对象存储桶。

在租户级别应用云卫士,以覆盖最广泛的范围并减少维护多个配置的管理负担。

您还可以使用托管列表功能将某些配置应用到检测器。


安全区

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


网络安全组(NSG)

您可以使用NSG定义一组适用于特定VNIC的入站和出站规则。我们推荐使用NSG而不是安全列表,因为NSG允许您将VCN的子网架构与应用程序的安全要求分离。


负载均衡器带宽

创建负载均衡器时,您可以选择提供固定带宽的预定义形状,或指定一个自定义(灵活)形状,在其中设置带宽范围,并根据流量模式让服务自动调整带宽。无论采用哪种方法,您都可以在创建负载均衡器后随时更改其形状。


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

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

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

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

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