使用市场堆栈部署 Oracle WebLogic Server for OKE
在 Oracle Cloud Infrastructure 中预配的 Kubernetes 集群中快速部署 Oracle WebLogic Server 域,并为 CI/CD 管道作业配置 Jenkins 控制器以支持 WebLogic Server 生命周期管理操作。
通过 Oracle Cloud Marketplace 为 Oracle Cloud Infrastructure Kubernetes Engine (OKE) 提供 Oracle WebLogic Server 作为一组应用程序,可以轻松快速地配置 Oracle Oracle WebLogic Server for OKE 。它在 OKE 上以分钟为单位生成 WebLogic Server 配置,其中配置了用于 OKE 的 Jenkins 控制器以及连续集成和连续传送 (Continuous Integration and Continuous Delivery,CI/CD) 管道作业来支持 WebLogic Server 生命周期管理操作。
使用 Oracle Cloud Marketplace 预配 Oracle WebLogic Server for OKE 可提供以下功能:
- 在自动化、可移植性和自定义多个域的能力之间取得平衡
- 使用 Jenkins 的 CI/CD 管道执行生命周期管理操作
- 使用通用储值模式 (Universal Credits Model,UCM) 或自带许可证 (Bring Your Own License,BYOL) 实现灵活的许可
体系结构
Oracle WebLogic Server for OCI 与底层基础设施完全集成。通过此集成,可以轻松地预配 WebLogic 集群、创建和配置所需的基础结构以及提供所需的服务,例如负载平衡器和文件存储。
该架构使用具有一个可用性域和区域子网的区域。在具有多个可用性域的区域中,可以使用相同的参考架构。我们建议在您的部署中使用区域子网,这与可用性域的数量无关。
预配时,此引用体系结构包括以下内容:
- 在具有两个节点池的专用子网中部署的 OCI Kubernetes 引擎 (OKE) 集群
- 在 pod 之间共享的文件存储服务
- 部署在专用子网中的管理主机,可以轻松访问以下区域:
- OCI Kubernetes Engine 集群
- Oracle WebLogic Server 域的日志
- Jenkins 主目录配置
- 用于管理域的帮助程序脚本
- 文件存储服务
- 部署在公共子网中的堡垒主机,用于访问专用子网中部署的资源
- 用于访问 Jenkins 控制台和 Oracle WebLogic Server 管理控制台的专用负载平衡器
- 用于访问 Oracle WebLogic Server 集群的公共负载平衡器
下图说明了此参考体系结构:
wls-oke-marketplace-oracle.zip
此体系结构包含以下组件:
- 区域
Oracle Cloud Infrastructure 区域是一个本地化地理区域,其中包含一个或多个数据中心,托管可用性域。地区独立于其他地区,远距离可以把它们分开(跨越国家甚至大陆)。
- 可用性域
可用性域是区域中的独立数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,从而提供容错能力。可用性域不共用电源、冷却设施或内部可用性域网络等基础设施。因此,一个可用性域出现故障不会影响区域中的其他可用性域。
- 虚拟云网络 (VCN) 和子网
VCN 是一个可定制的软件定义网络,您可以在 Oracle Cloud Infrastructure 区域中设置。与传统的数据中心网络一样,VCN 允许您控制您的网络环境。VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 划分为子网,子网可以限定为区域或可用性域。每个子网都包含一系列不与 VCN 中的其他子网重叠的连续地址。可以在创建后更改子网的大小。子网可以是公共子网,也可以是专用子网。
- 服务网关
通过服务网关,您可以从 VCN 访问其他服务,例如 Oracle Cloud Infrastructure Object Storage 。从 VCN 到 Oracle 服务的流量通过 Oracle 网络结构传输,不会通过互联网传输。
- 负载平衡器
Oracle Cloud Infrastructure Load Balancing 提供从单个入口点到多个服务器的自动流量分配。
- 文件存储
Oracle Cloud Infrastructure File Storage 提供持久、可扩展、安全的企业级网络文件系统。您可以从 VCN 中的任何裸金属、虚拟机或容器实例连接到 OCI 文件存储。您还可以使用 Oracle Cloud Infrastructure FastConnect 和 IPSec VPN 从 VCN 外部访问 OCI 文件存储。
- Kubernetes 引擎
Oracle Cloud Infrastructure Kubernetes Engine ( OCI Kubernetes 引擎或 OKE )是一项全托管式、可扩展的高可用性服务,您可以使用它将容器化应用程序部署到云中。您可以指定应用所需的计算资源,Kubernetes Engine 在现有租户的 Oracle Cloud Infrastructure 上预配这些资源。OKE 使用 Kubernetes 跨主机集群自动部署、扩展和管理容器化应用。
- Oracle Cloud Infrastructure 注册表
Oracle Cloud Infrastructure Registry 是一项由 Oracle 管理的服务,可帮助您简化开发到生产工作流。通过注册表,您可以轻松地存储、共享和管理开发对象,例如 Docker 映像。
- WebLogic 域
WebLogic 域是一组相关的应用程序和资源以及运行这些应用程序和资源所需的配置信息。该域由一个管理服务器和一个或多个托管 Java 应用程序部署的托管服务器组成。托管服务器实例可以是群集实例、非群集实例,也可以是群集实例和非群集实例的组合。域中的所有集群都使用同一管理服务器。
- WebLogic 群集组件
集群中的组件可以利用故障转移和负载平衡选项。可以在 Oracle WebLogic Server 部署中对以下类型的对象进行群集:
- Servlet
- JavaServer Pages (JSP)
- 企业 Java Bean (EJB)
- 远程方法调用 (RMI) 对象
- Java 消息服务 (JMS) 目标
- Java 数据库连接 (JDBC) 连接
- Oracle WebLogic Server Kubernetes 操作员
Oracle WebLogic Server for OKE 域包括开源 Oracle WebLogic Server Kubernetes Operator,它具有多项关键功能来帮助管理 Kubernetes 环境中的域。WebLogic 服务器域建模为 Kubernetes 配置文件中的定制资源。操作员使用此配置和 Kubernetes API 自动执行 WebLogic 服务器操作,例如预配、启动或停止服务器、打补丁、扩展和安全性。
- Jenkins
适用于 OKE 的 Oracle WebLogic Server 使用 Jenkins 自动为 Oracle WebLogic Server 域创建定制映像,并将这些映像部署到 Kubernetes 集群。Jenkins 是一个开源自动化引擎,它基于持续集成和持续交付 (Continuous Integration and Continuous Delivery,CI/CD) 促进开发工作流。您可以创建执行一系列步骤的项目,例如从源控制系统检出文件、编译代码或运行脚本。管道是一种将复杂活动分为多个阶段的项目,例如构建、测试和部署应用程序。
推荐
使用以下建议作为起点。您的要求可能会有所不同。
- VCN
创建 VCN 时,请根据您计划附加到 VCN 中子网的资源数量,确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。
选择不与要设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure 、您的内部部署数据中心或其他云提供商中)重叠的 CIDR 块。
创建 VCN 后,您可以更改、添加和删除其 CIDR 块。
在此架构中,Oracle WebLogic Server for OKE 在 Oracle Cloud Infrastructure 中创建虚拟云网络 (VCN) 和子网,以支持 Oracle WebLogic Server 、Kubernetes 和负载平衡器。但如果需要,还可以使用现有 VCN 和现有子网。适用于 OKE 的 Oracle WebLogic Server 可为管理主机计算实例、Kubernetes 组件和文件存储创建专用子网。它会为公共负载平衡器和堡垒计算实例创建公共子网。我们建议您在使用现有子网时遵循相同的体系结构。
- 负载平衡器
创建域时,Oracle WebLogic Server for OKE 将在 Oracle Cloud Infrastructure 中创建和配置以下负载平衡器:
- 公共负载平衡器在域中的托管服务器之间分配流量
- 通过专用负载平衡器,可以访问 Oracle WebLogic Server 管理控制台和 Jenkins 控制台
负载平衡器由主实例和备用实例组成,但可通过单个 IP 地址进行访问。如果主实例发生故障,流量将自动路由到备用实例。
专用负载平衡器未分配公共 IP 地址,因此无法从 Oracle Cloud Infrastructure 外部访问。您可以使用堡垒计算实例访问域的专用负载平衡器。
适用于 OKE 的 Oracle WebLogic Server 还会在 Kubernetes 集群中创建 Nginx 入站控制器。Nginx 是一个开源反向代理服务,用于控制流量流到 Kubernetes 集群中的 pod。
- WebLogic 域
在创建域期间,管理计算实例还用于配置新的 Kubernetes 集群以及为域部署云池。默认情况下,此体系结构预配群集域。可以在预配后将域定制为非群集域。
使用 Oracle WebLogic Server for OKE 创建的域不使用节点管理器。Oracle WebLogic Server Kubernetes Operator 可执行服务器运行状况监视和生命周期操作。
Oracle WebLogic Server for OKE 将 Helm 客户端安装在管理计算实例上,并使用 Helm 安装 Oracle WebLogic Server Kubernetes 操作员的图表。Helm 是 Kubernetes 的软件包管理器,可用于快速安装和管理 Kubernetes 集群的 Kubernetes 应用程序、工具和服务。使用 Helm 安装在 Kubernetes 集群中的应用程序包括 Jenkins CI、Nginx 和 WebLogic Kubernetes Operator。
Oracle WebLogic Server for OKE 在 Kubernetes 集群中安装和配置操作员。您可以在管理计算实例上将该运算符与
kubectl
一起使用。适用于 OKE 的 Oracle WebLogic Server 使用 Jenkins 自动为 WebLogic Server 域创建定制映像,并将这些映像部署到 Kubernetes 集群。
- OCI Kubernetes 引擎
使用 Oracle WebLogic Server for OKE 创建域时,它会自动预配两个节点池:WebLogic 节点池和非 WebLogic 节点池。默认情况下,每个节点池都创建一个 Worker 节点。但是,在预配期间,您可以指定每个节点池中所需的 worker 节点数。
以下 pod 作为体系结构的一部分部署到 Kubernetes 集群:
- WebLogic 节点池:
- 运行域管理服务器的云池
- 运行域中每个托管服务器的云池
- 运行 Jenkins 代理的云池
- 非 WebLogic 节点池:
- 运行 Jenkins 控制器的云池
- 运行 Nginx 入站控制器的云池
创建域时,Oracle WebLogic Server for OKE 会将默认映像推送到用于为您的域预配 pod 的注册表。在管理计算实例中,您可以更新此默认映像,然后使用 Kubernetes 应用这些更改。
Oracle WebLogic Server for OKE 在 Kubernetes 集群中的 pod 上预配 Jenkins 主服务器。Jenkins 还配置为使用 Kubernetes 插件。启动或调度作业时,Jenkins 服务器将在 Kubernetes 集群中创建另一个 pod,此代理 pod 将运行作业。
- WebLogic 节点池:
注意事项
部署此引用体系结构时,请考虑以下几点。
- 存储
域的文件存储在 Kubernetes 集群中每个云池的本地,但 Oracle WebLogic Server for OKE 还使用 Oracle Cloud Infrastructure File Storage 来支持某些管理用例。Oracle WebLogic Server for OKE 将文件系统导出到指定可用性域中的装载目标,该可用性域可以是与用于域计算实例的可用性域不同的可用性域。
此体系结构创建基本 Oracle WebLogic Server 域配置,不需要数据库。如果要使用 Oracle Application Development Framework (ADF) 构建应用程序,则还可以使用 Oracle WebLogic Server for OCI 创建启用了 Java 需求文件 (require files,JRF) 的域。考虑使用现有的 Oracle Autonomous Transaction Processing 数据库或 Oracle Cloud Infrastructure Database 系统,这是预配启用 JRF 的域所必需的。
- 安全
在 Oracle WebLogic Server for OKE 中预配域需要 Oracle Cloud Infrastructure Vault 中的一个或多个密钥。每个密钥仅存储一个密码。创建 Oracle WebLogic Server 集群时需要口令。此体系结构使用标准 Vault,该 Vault 托管在具有多个租户的硬件安全模块 (HSM) 分区上,并且使用更经济高效、基于密钥的度量进行计费。虚拟专用 Vault 通过在 HSM 上分配专用分区来提供更大的隔离和性能。在 Oracle Cloud Infrastructure 租户中,每种类型的 Vault 都具有单独的服务限制。
- 可管理性
Oracle WebLogic Server for OKE 作为应用程序集合在 Oracle Cloud Marketplace 中访问。
Oracle Cloud Marketplace 是 Oracle Cloud Infrastructure 控制台中提供的在线商店。从 Oracle Cloud Marketplace 启动 Oracle WebLogic Server for OKE 应用程序时,它会提示您提供基本信息,然后将您定向到资源管理器以完成 Oracle WebLogic Server 域的配置和支持云资源。资源管理器是一项 Oracle Cloud Infrastructure 服务,它使用 Terraform 作为一个称为堆栈的单元来预配、更新和销毁相关云资源集合。
选择符合您的功能和许可要求的 Oracle WebLogic Server for OKE 应用程序。
- 成本
以下是适用于 Oracle WebLogic Server for Oracle Cloud Infrastructure Kubernetes Engine 的自带许可证 (BYOL) 和通用储值 (UCM) 版本的列表,这些版本与 Oracle WebLogic Server 内部部署软件完全兼容:
- 适用于 OKE (UCM) 的 Oracle WebLogic Server Enterprise Edition
- 适用于 OKE (UCM) 的 Oracle WebLogic Suite
- 适用于 OKE 的 Oracle WebLogic Server Enterprise Edition (BYOL)
- 适用于 OKE 的 Oracle WebLogic Suite (BYOL)
部署
Oracle Cloud Marketplace 提供具有不同许可选项的 Terraform 堆栈来部署此参考架构。
要部署相应的堆栈,请参见 Get Started with Oracle WebLogic Server for OKE 。