描述
此 Docker 镜像包含 Oracle WebLogic Server Kubernetes Operator,该组件为开源软件,可通过 (https://oracle.github.io/weblogic-kubernetes-operator) 获取。Operator 能够管理在 Kubernetes 环境中运行的任意数量的 WebLogic Server 域。它提供域创建机制、自动域启动、支持手动(按需)或通过与 WebLogic 诊断框架(WLDF)或 Prometheus 集成来扩展 WebLogic Server 集群(向上或向下)、管理 WebLogic Server 集群中部署的 Web 应用的负载均衡,并提供与 Elasticsearch、Logstash 和 Kibana 的集成。
WebLogic Server Kubernetes Operator 使用来自 Oracle Container Registry 的标准 Oracle WebLogic Server 12.2.1.4、14.1.1.0 和 14.1.2 Docker 镜像。它将镜像视为不可变的,所有状态都持久化在 Kubernetes 持久卷或数据库中。这使我们能够将所有 Pod 视为可丢弃和可替换的,并且完全消除了管理在运行时写入 Docker 容器的状态的需求(因为不存在此类状态)。
WebLogic Server Kubernetes Operator 可以(根据需要)向外部用户公开 WebLogic Server 管理控制台,也可以允许外部 T3 访问(例如用于 WLST)。域之间可以相互通信,支持分布式事务等功能。所有 Pod 都配置了 Kubernetes 存活探针和就绪探针,因此 Kubernetes 可以自动重启失败的 Pod,并且负载均衡器配置仅包含 WebLogic Server 集群中实际准备好服务用户请求的那些受管服务器。
入门指南
- 支持的 Kubernetes 版本:1.26.2+、1.27.2+、1.28.2+、1.29.1+、1.30.1+、1.31.1+、1.32.1+、1.33.1+、1.34.1+(通过
kubectl version 检查)。
[!NOTE]
- 若要将 Kubernetes 1.32.1+ 与 Oracle WebLogic Server 12.2.1.4 或 14.1.1.0 配合使用,WebLogic 容器镜像必须应用补丁 37788099。使用 Oracle WebLogic Server 14.1.2.0 时无需补丁。
- Flannel 网络 v0.26.7 或更高版本(通过
docker images | grep flannel 检查)、Calico 网络 v3.29.4 或更高版本,或 OpenShift 4.3 系统上的 OpenShift SDN。
- Docker 25.0.10+(通过
docker version 检查)或 CRI-O 1.26.2+(通过 crictl version | grep RuntimeVersion 检查)。
- Helm 3.13.2+(通过
helm version --client --short 检查)。
- 对于域主目录源类型
Model in Image,需要 WebLogic Deploy Tooling 4.3.4+。
- Oracle WebLogic Server 12.2.1.4.0、Oracle WebLogic Server 14.1.1.0.0 或 Oracle WebLogic Server 14.1.2.0.0。现有的 WebLogic Server 正式版镜像
container-registry.oracle.com/middleware/weblogic:12.2.1.4 已应用此补丁。
- 现在支持基于 Oracle Linux 8 和 9 的容器镜像。Oracle Container Registry 托管基于 Oracle Linux 7、8 和 9 的容器镜像,包括基于 Java 8 和 11 的 Oracle WebLogic Server 14.1.1.0.0 镜像,以及基于 Java 17 和 21 的 Oracle WebLogic Server 14.1.2.0 镜像。
- 安装 Operator 必须具有 cluster-admin 角色。Operator 在运行时不需要 cluster-admin 角色。有关更多信息,请参阅基于角色的访问控制(RBAC)文档中的 Operator RBAC 部分。
- 目前不支持在非 Linux 容器中运行 WebLogic。
WebLogic Server Kubernetes Operator 使用 Helm 创建和部署任何必要的资源,然后在 Kubernetes 集群中运行 Operator。Helm 帮助您管理 Kubernetes 应用程序。Helm 图表帮助您定义应用程序并将其安装到 Kubernetes 集群中。Operator 的 Helm 图表位于 https://github.com/oracle/weblogic-kubernetes-operator/tree/master/kubernetes/charts/weblogic-operator 目录中。在部署 WebLogic Server Kubernetes Operator 之前,您需要安装 Helm。有关版本详情,请参阅 https://oracle.github.io/weblogic-kubernetes-operator/release-notes/%E3%80%82
Operator 4.3.7 版本的上述内容修改如下:
- 解决了 Operator 重复错误记录一个或多个命名空间不再被管理的问题。
Operator 4.3.6 版本的上述内容修改如下:
- Helm 图表现在强制要求 Kubernetes 版本为 1.25 或更高。
- 解决了 WebLogic Server 实例的驱逐或失败 Pod 未及时删除以允许创建替换 Pod 的问题。
Operator 4.3.5 版本的上述内容修改如下:
- WebLogic Monitoring Exporter 的默认版本现在为 2.3.8。
- 现在将 Pod 名称传递给监控导出器 sidecar 容器,以便在指标中使用此值。
- 解决了 Operator 初始化期间与日志相关的故障处理问题。
- 解决了包含 excludedKeyValues 或 includedKeyValues 的监控导出器配置问题。
- 解决了生成的 Kubernetes 事件的 note 值未正确限制为 1024 字符的问题。
Operator 4.3.4 版本的上述内容修改如下:
- 改进了集群资源引用 WebLogic 域配置中未定义的 WebLogic 集群名称时的错误消息。
- 改进
scalingAction.sh,使用集群资源缩放操作进行缩放,而非使用先前已弃用的 Operator REST API。
- 增加了对为 introspection 作业配置
labels 和 annotations 的支持。
- 增加了对调整 Operator 就绪探针和存活探针的支持。
- 解决了 Operator 日志级别配置的传播问题。
- 解决了
start-db-service.sh 脚本和 FMW 示例的问题。
Operator 4.3.3 版本的上述内容修改如下:
- 支持 Kubernetes 1.34。
- 支持未来 WebLogic Monitoring Exporter 2.3 版本之后的计划发布版本。
- 通过移除 init 容器,解决了 Helm 图表及相关 WebLogic Operator 行为与 init 容器相关的问题。
- 解决了 Operator 生成的 Kubernetes 事件创建过多事件资源的问题。
Operator 4.3.2 版本的上述内容修改如下:
- WebLogic Monitoring Exporter 的默认版本现在为 2.3.7。
domain.spec.configuration.introspectorJobActiveDeadlineSeconds 的默认值现在为 600。此前该值默认为 120。
- 默认 Fluentd 镜像现在为 "fluent/fluentd-kubernetes-daemonset:v1.19-debian-elasticsearch7-1"。
- 解决了 Helm 图表的问题,确保最近添加的 init 容器设置了资源请求和限制。
- 解决了 Helm 图表的问题,确保 "/tmp" 目录挂载在可写文件系统上。
Operator 4.3.1 版本的上述内容修改如下:
- WebLogic Monitoring Exporter 的默认版本现在为 2.3.6。
- Helm 图表现在支持为 Operator 的 Pod 设置 "priority" 和 "priorityClassName"。
- 解决了域生命周期脚本中未正确引用集群 CRD 的问题。
- 解决了影响 OpenShift 环境的问题,即 WebLogic Pod 指定
runAsUser 为 0 值违反默认 SCC 的问题。
- 解决了 Operator 对仅部分重叠的挂载路径错误给出验证错误的问题。
- 改进了 Operator 的行为,减少 introspection 作业的执行次数。
Operator 4.3.0 版本的上述内容修改如下:
- Operator 已显著改进,以提高管理 WebLogic 域生命周期的弹性,并减少 Operator 的 CPU 和内存消耗。
- 4.2.20 版本中包含的所有错误修复也包含在此版本中。
Operator 4.2.20 版本的上述内容修改如下:
- WebLogic Monitoring Exporter 的默认版本现在为 2.3.5。
- Operator 和 webhook 部署现在启用 readOnlyRootFilesystem。
Operator 4.2.19 版本的上述内容修改如下:
- WebLogic Monitoring Exporter 的默认版本现在为 2.3.3。
Operator 4.2.18 版本的上述内容修改如下:
- 实现了增强请求 #5381,以支持为 Operator 配置额外的卷和卷挂载,以及重定向 Operator 的日志。
- WebLogic Monitoring Exporter 的默认版本现在为 2.3.2。此版本的 Monitoring Exporter 具有更新的容器脚本,可一致地捕获 SIGKILL 和 SIGTERM,使其容器能够干净退出,类似于先前对 Operator 拥有的其他脚本所做的更改。
- 解决了 Operator 无法及时检测 introspection 作业失败的问题,原因是 introspection 作业的状态使用条件 "FailureTarget" 而非 "Failed"。
- 解决了配置的 init 容器未添加到用于在 PV 上初始化域的 introspection 作业中的问题。
Operator 4.2.17 版本的上述内容修改如下:
- 实现了增强请求 #5344,以支持在安全上下文中启用 readOnlyRootFilesystem。启用此属性时,Operator 会将临时目录更新到空卷的挂载路径内,并调整其他设置以支持此用例。
- 实现了对 automountServiceAccountToken 的支持。
- 向 Operator 的指标端点添加了一对额外指标,用于跟踪受管理的命名空间数量(wko_namespace_count)和给定命名空间中发现的域数量(wko_domain_count)。
- 解决了在限制性更强的 Kubernetes 集群环境中,Operator 和 webhook 无法一致地拥有足够权限列出域和集群资源的问题。
- 更新了容器脚本以一致地捕获 SIGKILL 和 SIGTERM,使这些脚本能够干净退出。
- 解决了节点管理器脚本中错误使用 LOG_HOME_LAYOUT 设置的问题。
- 更新了为监控导出器、Fluentd 和 Fluentbit 集成创建的 sidecar 容器,以正确使用配置的容器安全上下文。
- 解决了域状态 observedGeneration 在 model-in-image 在线更新后未正确更新的问题。
- 提高了 Operator 定期列出命名空间以查找应管理的命名空间的弹性,并将其与存活探针关联,以便在命名空间列出失败时 Operator 能更一致地重启。
- 解决了包含 stringValues 的监控导出器配置(例如涉及服务器运行时状态)的问题。
Operator 4.2.16 版本的上述内容修改如下:
- WebLogic Monitoring Exporter 的默认版本现在为 2.3.0。此版本的 Monitoring Exporter(包括 WAR 文件打包)支持部署在支持 Java EE 或 Jakarta EE 规范的 WebLogic 版本上。
- introspection 作业现在正确支持 init 容器的配置。
- Operator 定义了 pod 级和容器级 securityContext 的默认值;但此前如果客户指定了自己的 pod 级值,无法抑制容器级默认值。现在,如果客户已指定 podSecurityContext 的值,Operator 将不应用默认的容器级 securityContext。
- 模式转换 webhook 现在将在所有情况下正确更新 Domain 和 Cluster 自定义资源定义(CRD),前提是它具有执行此操作所需的集群权限,且 Helm 图表未以专用模式安装。
Operator 4.2.15 版本的上述内容修改如下:
- 解决了 serverPod 中的 podSecurityContext 配置未正确应用于与辅助镜像处理相关的 init 容器的问题。