使用 OCI 容器实例简化容器化应用的管理
运行容器化应用可能需要相当大的开销,包括实例化虚拟机、安装组件来运行容器映像,以及支持它的所有相关项(包括软件和操作系统更新),以及监视应用在运行时以确保它们能够以最佳方式运行、可用且尚未受到影响。
容器实例是完全托管的 Oracle Cloud Infrastructure (OCI) 计算服务,允许客户在不管理服务器的情况下运行容器化应用。这为客户提供无服务器体验,帮助客户集中精力为应用增值,而不是部署和管理基础设施。
或者,要运行没有容器实例的容器化应用,客户需要实例化虚拟机并安装所有组件来运行容器映像。这包括容器运行时(例如 Docker 或 Podman)以及支持它的所有依赖项。此外,客户需要通过安装最新安全修补程序并应用正确的安全设置来保护虚拟机。引入了软件和操作系统的新更新后,需要一致地应用更新和修补程序。应用程序运行时,需要进行监视以确保应用程序以最佳方式运行、可用且未受到影响。
对于容器实例,客户只需创建应用的容器映像并将其存储在容器注册表中。然后,可以在 OCI 控制台中使用容器实例和 CLI 命令部署容器化应用,也可以使用引导式 GUI 向导执行下列步骤。
- 定义容器实例参数:客户定义 OCI 区域来运行容器实例以及可用性域和容错域(可选)。接下来,客户为容器实例选择计算配置。对于每个实例,您至多可以分配所选计算配置的 CPU 和内存。例如,如果您选择了 AMD E3/E4 配置,则容器实例中可以有 64 个 OCPU(128 个 vCPU)和 1024 GB 内存。接下来,您可以添加网络设置,例如容器实例是否需要公共 IP 地址和容器实例的子网,以及可选的高级网络配置。在此步骤中,您还可以选择指定专用 DNS 记录和主机名,这将为容器实例生成全限定域名。还提供了用于设置容器重新启动策略的可选高级选项。
- 指定应用程序的启动配置:在此步骤中,指定要运行的容器映像的位置以及容器映像所需的任何环境变量。该映像可以位于 Oracle Cloud Infrastructure Registry 中,也可以位于容器实例具有 IP 连接的任何符合公共或私有 Open Container Initiative 规范的注册表中。对于专用注册表,必须提供身份证明才能访问容器映像。
- 回顾和创建:最后一步是查看所有配置,如果一切准确,您可以继续创建,容器实例将在几秒钟内启动。
客户只需按与常规 Oracle Cloud Infrastructure Compute 相同的速率对分配给其实例的 CPU 和内存资源收费。容器实例为在云中运行容器提供了简单体验、无缝操作,而且不收取额外费用。客户还可以使用标准数据库连接机制将容器实例与其他 OCI 服务(例如 MySQL 服务和 Oracle Autonomous Database )集成,从而轻松地将其他 OCI 服务用于容器化应用。
体系结构
此体系结构使用容器实例部署具有集成 MySQL 数据库的容器化 WordPress 应用程序。容器实例将部署在公共子网中,其公共 IP 地址可通过互联网访问。
容器实例适用于不需要容器编排的独立应用。这包括 API、Web 应用、CI/CD 作业、自动化任务、数据和媒体处理、开发和测试环境等。对于需要编排的容器化应用,OCI 为 Oracle Container Engine for Kubernetes (OKE) 提供了一种具有虚拟节点无服务器选项的托管 Kubernetes 服务。
每个容器实例可以运行多个容器。容器实例中的所有容器都具有相同的生命周期、资源、网络和存储。容器实例中的容器与 Kubernetes 中的云池具有相同的概念,主要应用容器和支持 Sidecar 容器。sidecar 容器可用于增强或扩展主应用容器的功能。例如,包含主 Web 应用程序的容器实例和用于将 Web 应用程序日志导出到日志记录服务器的 sidecar 容器。
注意:
运行数据库容器与应用程序容器仅适用于开发和测试。使用 Oracle MySQL Database Service 进行生产部署。我们将在此引用体系结构中部署包含容器实例的集成数据库 WordPress。以下视频将逐步完成该过程。
下图说明了此引用体系结构。
oci-container-instance-wordpress-oracle.zip
该体系结构具有以下组件:
- 租户
租户是您注册 Oracle Cloud Infrastructure 时 Oracle 在 Oracle Cloud 中设置的安全隔离分区。您可以在租户内的 Oracle Cloud 中创建、组织和管理资源。租户与公司或组织同义。通常,公司有一个租户,并反映公司在该租户中的组织结构。一个租户通常与一个订阅关联,一个订阅通常只有一个租户。
- 区域
Oracle Cloud Infrastructure 区域是一个局部地理区域,其中包含一个或多个数据中心,称为可用性域。区域独立于其他区域,而广阔的距离可以分离它们(跨国家甚至大陆)。
- 区间
区间是 Oracle Cloud Infrastructure 租户中的跨区域逻辑分区。使用区间在 Oracle Cloud 中组织资源,控制对资源的访问,以及设置使用限额。要控制对给定区间中资源的访问,您需要定义策略来指定谁可以访问资源以及他们可以执行的操作。
- 可用性域
可用性域是一个区域中的独立数据中心。每个可用性域中的物理资源都与其他可用性域中的资源隔离,因而具备容错能力。可用性域不共用电源、冷却设备或内部可用性域网络等基础设施。因此,一个可用性域出现故障不会影响区域中的其他可用性域。
- 容错域
容错域是可用性域内的一组硬件和基础设施。每个可用性域具有三个具有独立电源和硬件的容错域。在多个容错域之间分配资源时,您的应用可以承受容错域中的物理服务器故障、系统维护和电源故障。
- 虚拟云网络 (VCN) 和子网
VCN 是可在 Oracle Cloud Infrastructure 区域中设置的可定制的软件定义网络。与传统的数据中心网络一样,VCN 可以让您完全控制您的网络环境。VCN 可以具有多个不可重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 分段到子网,这些子网可以限定到区域或可用性域。每个子网包含一个连续的地址范围,这些地址与 VCN 中的其他子网不重叠。您可以在创建子网后更改其大小。子网可以是公共子网,也可以是专用子网。
- 安全列表
对于每个子网,您可以创建安全规则来指定必须允许传入和传出子网的通信的源、目标和类型。
- 网络地址转换 (Network address translation,NAT) 网关
NAT 网关允许 VCN 中的专用资源访问互联网上的主机,同时不会向传入的互联网连接公开这些资源。
- 服务网关
通过服务网关,可以从 VCN 访问其他服务,例如 Oracle Cloud Infrastructure Object Storage 。从 VCN 到 Oracle 服务的流量通过 Oracle 网络结构传输,永远不会经过互联网。
- 容器注册表
使用 Oracle 管理的注册表可以简化从开发到生产的工作流。
建议
- VCN
创建 VCN 时,根据计划连接到 VCN 中的子网的资源数量,确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。
选择与要设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure 、您的内部部署数据中心或其他云提供商)不重叠的 CIDR 块。
创建 VCN 后,您可以更改、添加和删除其 CIDR 块。
设计子网时,请考虑流量和安全性要求。将特定层或角色中的所有资源连接到可以用作安全边界的同一子网。
- 安全
使用 Oracle Cloud Guard 可以主动监视和维护 Oracle Cloud Infrastructure 中资源的安全。Cloud Guard 使用检测器配方,您可以定义这些配方来检查资源是否存在安全漏洞,以及监视操作员和用户是否有风险活动。检测到任何错误配置或不安全活动时,Cloud Guard 将根据您可以定义的响应器配方建议更正操作并协助执行这些操作。
对于需要最大安全性的资源,Oracle 建议您使用安全区域。安全区域是与 Oracle 定义的基于优秀实践的安全策略配方关联的区间。例如,安全区域中的资源不能从公共 Internet 访问,必须使用客户管理的密钥对其进行加密。在安全区域中创建和更新资源时,Oracle Cloud Infrastructure 将根据安全区域配方中的策略验证操作,并拒绝违反任何策略的操作。
- Cloud Guard
克隆和定制 Oracle 提供的默认配方以创建定制检测器和响应器配方。通过这些配方,您可以指定哪些类型的安全违规会生成警告,以及允许对它们执行哪些操作。例如,您可能需要检测将可见性设置为公共的对象存储桶。
在租户级别应用 Cloud Guard,以涵盖范围最广并降低维护多个配置的管理负担。
您还可以使用托管列表功能将某些配置应用于检测器。
- 安全区域
对于需要最大安全性的资源,Oracle 建议您使用安全区域。安全区域是与 Oracle 定义的基于优秀实践的安全策略配方关联的区间。例如,安全区域中的资源不能从公共 Internet 访问,必须使用客户管理的密钥对其进行加密。在安全区域中创建和更新资源时,Oracle Cloud Infrastructure 将根据安全区域配方中的策略验证操作,并拒绝违反任何策略的操作。
- 网络安全组 (NSG)
您可以使用 NSG 定义一组适用于特定 VNIC 的入站和出站规则。我们建议使用 NSG 而非安全列表,因为 NSG 允许您将 VCN 的子网架构与应用的安全要求区分开来。
- 负载平衡器带宽
创建负载平衡器时,您可以选择提供固定带宽的预定义配置,也可以指定设置带宽范围的定制(灵活)配置,并让服务根据流量模式自动缩放带宽。通过任一方法,您可以在创建负载平衡器后随时更改配置。
