第 2 章 JWS Operator 2.0 版本有何新功能?
JWS Operator 2.0 发行版本提供 level-2 Operator 功能,如无缝集成。JWS Operator 2.0 还支持 Red Hat JBoss Web Server metering 标签,并包括一些增强的自定义资源定义(CRD)参数。
Level-2 Operator 功能
JWS Operator 2.0 提供以下 level-2 Operator 功能功能:
- 支持无缝升级
- 支持补丁和次版本升级
- 管理 JWS Operator 1.1.x 部署的 Web 服务器。
为新镜像启用 level-2 无缝集成
DeploymentConfig
对象定义包含一个触发器,OpenShift 在新镜像被推送到镜像流时用于部署新容器集。镜像流可以监控存储库是否有新镜像,或者您可以指示新镜像可以使用的镜像流。
流程
在项目命名空间中,使用
oc import-image
命令导入镜像的标签和其他信息来创建镜像流。例如:
oc import-image <my-image>-imagestream:latest \ --from=quay.io/$user/<my-image>:latest \ --confirm
oc import-image <my-image>-imagestream:latest \ --from=quay.io/$user/<my-image>:latest \ --confirm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的示例中,将每个出现的 &
lt;my-image
> 替换为您要导入的镜像的名称。上述命令通过导入
quay.io/$user/ <
。如需有关镜像流的格式和管理的更多信息,请参阅管理镜像流。my-image> 镜像的信息来创建名为 <my-image> -
imagestream 的镜像流为您希望 JWS Operator 在更新镜像流时部署的 Web 应用创建
WebServer
kind 的自定义资源。您可以使用 YAML 文件格式定义自定义资源。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
oc tag
命令触发镜像流的更新。例如:
oc tag quay.io/$user/<my-image> <my-image>-imagestream:latest --scheduled
oc tag quay.io/$user/<my-image> <my-image>-imagestream:latest --scheduled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上述命令使 OpenShift Container Platform 定期更新指定的镜像流标签。这个周期是一个集群范围的设置,默认设置为 15 分钟。
2 级无缝集成,用于重建现有镜像
BuildConfig
对象定义包括镜像流更新和 webhook 的触发器(即 GitHub 或通用 Webhook),用于在 Git 或 GitHub 触发 webhook 时重建镜像。
如需有关为 Webhook 创建 secret 的更多信息,请参阅为 通用或 GitHub Webhook 创建 secret。
有关在自定义资源 WebServer 文件中配置通用或 GitHub Webhook 的更多信息,请参阅 JWS Operator CRD 参数。
支持 Red Hat JBoss Web Server metering 标签
JWS Operator 2.0 支持在 JWS Operator 创建的 Red Hat JBoss Web Server pod 中添加 metering 标签。
Red Hat JBoss Web Server 可以使用以下 metering 标签:
-
com.company: Red_Hat
-
rht.prod_name: Red_Hat_Runtimes
-
rht.prod_ver: 2022-Q4
-
rht.comp: JBoss_Web_Server
-
rht.comp_ver: 5.7.0
-
rht.subcomp: Tomcat 9
-
rht.subcomp_t: application
您可以在自定义资源 WebServer
文件中的 metadata
部分下添加标签,用于您要部署的 Web 应用。例如:
如果您更改了已部署 Web 服务器的任何标签键或标签值,JWS Operator 会重新部署 Web 服务器应用程序。如果部署的 Web 服务器从源代码构建,JWS Operator 也会重建 Web 服务器应用程序。
增强的 webImage
参数
在 JWS Operator 2.0 发行版本中,CRD 中的 webImage
参数包含以下附加字段:
imagePullSecret
JWS Operator 用来从存储库中拉取镜像的 secret
注意secret 必须包含密钥
.dockerconfigjson
。JWS Operator 挂载并使用 secret (例如--authfile /mount_point/.dockerconfigjson
)从存储库中拉取镜像。Secret
对象定义文件可能包含服务器用户名和密码值或令牌,以允许访问镜像流、构建器镜像和由 JWS Operator 构建的镜像。webApp
描述 JWS Operator 如何构建 Web 服务器应用程序的一组参数
增强的 webApp
参数
在 JWS Operator 2.0 发行版本中,CRD 中的 webApp
参数包含以下附加字段:
name
Web 服务器应用程序的名称
sourceRepositoryURL
应用程序源文件所在的 URL
sourceRepositoryRef
Operator 使用的源存储库的分支
sourceRepositoryContextDir
pom.xml
文件所在的子目录,以及必须运行mvn install
命令的子目录webAppWarImage
JWS Operator 推送构建的镜像的 URL
webAppWarImagePushSecret
JWS Operator 用来将镜像推送到存储库的 secret
builder
一组参数,其中包含构建 Web 应用程序所需的所有信息,并创建镜像并将其推送到镜像存储库
注意为确保构建器能够成功运行和运行具有不同用户 ID 的命令,构建器必须有权访问
anyuid
安全性上下文约束(SCC)。要授予构建器对
anyuid
SCC 的访问权限,请输入以下命令:oc adm policy add-scc-to-user anyuid -z builder
builder
参数包含以下字段:镜像
构建 Web 应用的容器的镜像(如
quay.io/$user/tomcat10-buildah
)imagePullSecret
JWS Operator 用来从存储库拉取构建器镜像的 secret (如果指定)
applicationBuildScript
构建器镜像用来构建应用程序
.war
文件的脚本,并将其移到/mnt
目录中注意如果没有为此参数指定值,则构建器镜像将使用 Maven 和 Buildah 的默认脚本。