第 4 章 JWS Operator
4.1. JBoss Web Server Operator 复制链接链接已复制到粘贴板!
4.1.1. OpenShift Operator 复制链接链接已复制到粘贴板!
Operator Framework 是一个工具包,用于以有效、自动化且可扩展的方式管理 Kubernetes 原生应用程序,即 Operator。Operator 可让您轻松管理 Kubernetes 上的复杂有状态应用程序。所有 Operator 都基于 3 个关键组件:Operator SDK、Operator Lifecycle Manager 和 OperatorHub.io。这些工具允许您开发自己的 Operator,管理 Kubernetes 集群上使用的任何 Operator,并发现或共享社区创建的任何 Operator。
Red Hat JBoss Web Server 项目提供了一个 Operator 来管理其 OpenShift 镜像。本节介绍如何为 JWS 构建、测试和打包 OpenShift Operator。
有关集群设置的完整说明,请参阅 Openshift Documentation 子部分 'Install'
另外,JWS 操作器使用与 JWS-on-OpenShift 设置不同的环境变量。您可以在此处找到这些参数 的完整列表。
目前,不支持 'Use Session cluster' 功能。
本指南详细介绍了 JWS Operator 的安装、部署和删除。如需更快但详情的指南 ,请参阅快速入门指南。
目前,我们只支持 JWS 5.4 镜像。早于 5.4 的镜像不被支持。
4.1.2. 安装 JWS Operator 复制链接链接已复制到粘贴板!
本节介绍在 OpenShift Container Platform 上安装 JWS Operator。
4.1.2.1. 先决条件 复制链接链接已复制到粘贴板!
-
使用具有集群管理员权限的账户(仅限 Web 控制台)进行 OpenShift Container Platform
集群 - 使用具有 Operator 安装权限的账户进行 OpenShift Container Platform 集群
-
在本地系统中安装
oc工具(仅限 CLI)
4.1.2.2. 安装 JWS Operator - Web 控制台 复制链接链接已复制到粘贴板!
- 导航到"Operators"选项卡,在左侧的菜单中找到
- 这将打开 OpenShift OperatorHub。在这里,搜索 JWS 并选择"JWS Operator"
- 应出现一个新菜单 - 选择所需容量级别,然后单击顶部的"Install"来安装 Operator。
现在,您可以设置 Operator 安装。您将指定以下 3 个选项:
- Installation Mode: 指定要安装的集群中的特定命名空间。如果没有指定,它将默认将 Operator 安装到集群中的所有命名空间中。
- 更新频道: JWS 操作器目前只能通过一个频道获得。
- 批准策略: 您可以选择 Automatic 或 Manual 更新。如果选择自动更新某个已安装的 Operator,则当相应 Operator 有可用的新版本时,Operator Lifecycle Manager(OLM)将自动升级该 Operator 的运行实例,而无需人为干预。如果选择手动更新,则当有新版 Operator 可用时,OLM 会创建更新请求。作为集群管理员,您必须手动批准该更新请求,才可将 Operator 更新至新版本。
-
点底部的"Install"。如果选择
手动批准策略,则必须在安装完成前批准安装计划。JWS Operator 现在将显示在"Operators"选项卡的"安装 Operator"部分。
4.1.2.3. 安装 JWS Operator - 命令行界面 复制链接链接已复制到粘贴板!
使用以下命令检查 JWS 操作器,以验证其支持的 installModes 和 available 频道:
oc get packagemanifests -n openshift-marketplace | grep jws
$ oc get packagemanifests -n openshift-marketplace | grep jws jws-operator Red Hat Operators 16hCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc describe packagemanifests jws-operator -n openshift-marketplace | grep "Catalog Source"
$ oc describe packagemanifests jws-operator -n openshift-marketplace | grep "Catalog Source" Catalog Source: redhat-operatorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow OperatorGroup 是一个 OLM 资源用来选择目标命名空间。在这些目标命名空间中生成与 OperatorGroup 相同的命名空间中的所有 Operator 所需的 RBAC 访问。
订阅 Operator 的命名空间必须具有与 Operator 的 InstallMode 相匹配的 OperatorGroup,可采用 AllNamespaces 模式,也可采用 SingleNamespace 模式。如果您要使用 AllNamespaces 安装的 Operator,则 openshift-operators 命名空间已有适当的 OperatorGroup。
但是,如果 Operator 使用 SingleNamespace 模式,则必须在该命名空间中创建一个 OperatorGroup。运行以下命令,检查 OperatorGroup 的实际列表:
oc get operatorgroups -n <project_name>
$ oc get operatorgroups -n <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow OperatorGroup 列表的输出示例:
NAME AGE mygroup 17h
NAME AGE mygroup 17hCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在选择 SingleNamespace 模式时,此流程的 Web 控制台版本会在后台自动为您处理 OperatorGroup 和 Subscription 对象的创建。
创建一个 OperatorGroup 对象 YAML 文件,例如:
OperatorGroupExample.yaml:Copy to Clipboard Copied! Toggle word wrap Toggle overflow <project_name> 是安装 Operator (oc project -q)的项目的命名空间。<operatorgroup_name> 是 OperatorGroup 的名称。
使用以下命令创建 OperatorGroup 对象:
oc apply -f OperatorGroupExample.yaml
$ oc apply -f OperatorGroupExample.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
创建一个订阅对象 YAML 文件,如
jws-operator-sub.yaml。配置Subscription对象 YAML 文件,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow <project_name> 是安装 Operator (oc project -q)的项目的命名空间。要在所有命名空间中安装,使用 openshift-operators。
源是目录源。这是$ oc describe packagemanifests jws-operator -n openshift-marketplace | grep "Catalog Source:"命令中的值,我们在本节的第 1 步中运行。该值应该是redhat-operators。使用以下命令,从 YAML 文件创建
Subscription对象:oc apply -f jws-operator-sub.yaml
$ oc apply -f jws-operator-sub.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要验证安装是否成功,请运行以下命令:
oc get csv -n <project_name>
$ oc get csv -n <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand NAME 显示 VERSION 替换 PHASE jws-operator.V1.0.0
JBoss Web Server Operator
1.0.0
Succeeded
4.1.3. 部署现有 JWS 镜像 复制链接链接已复制到粘贴板!
使用以下命令确保您的 Operator 已安装:
oc get deployment.apps/jws-operator
$ oc get deployment.apps/jws-operator NAME READY UP-TO-DATE AVAILABLE AGE jws-operator 1/1 1 1 15hCopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,如果您需要更详细的输出:
oc describe deployment.apps/jws-operator
$ oc describe deployment.apps/jws-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
准备您的镜像并将其推送到所需位置。在本例中,它被推送到
quay.io/<USERNAME>/tomcat-demo:latest 创建一个
Custom ResourceWebServer .yaml 文件。在本例中,使用名为webservers_cr.yaml的文件。文件内容应该采用以下格式:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令,从您创建的目录中部署您的过期:
oc apply -f webservers_cr.yaml
$ oc apply -f webservers_cr.yaml webserver/example-image-webserver createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意操作器将自动创建路由。您可以使用以下命令验证路由:
oc get routes
$ oc get routesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如需有关路由的更多信息 ,请参阅 OpenShift 文档
如果您需要删除在第 4 步中创建的
webserver:oc delete webserver example-image-webserver
$ oc delete webserver example-image-webserverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者
oc delete -f webservers_cr.yaml
$ oc delete -f webservers_cr.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.4. 从集群中删除 Operator 复制链接链接已复制到粘贴板!
4.1.4.1. 先决条件 复制链接链接已复制到粘贴板!
- 具有管理员特权的 OpenShift Container Platform 集群(通常,您可以 按照以下说明 绕过此要求)
-
在本地系统中安装
oc工具(仅限 CLI)
4.1.4.2. 从集群中删除 Operator - Web 控制台 复制链接链接已复制到粘贴板!
-
在左侧菜单中,点击 'Operators'
'Installed Operators' - 在"Operator Details"下,选择"Actions"菜单,然后单击"Uninstall Operator"
- 选择此选项将删除 Operator、任何 Operator 部署和 Pod。删除 Operator 的 HOWEVER 不会删除 任何自定义资源定义或自定义资源,包括 CRD 或 CR。如果 Operator 在集群中部署了应用程序,或者配置了非集群资源,则这些应用程序将继续运行,需要手动清理。
4.1.4.3. 从集群中删除 Operator - 命令行界面 复制链接链接已复制到粘贴板!
使用以下命令,在
currentCSV字段中检查订阅的 Operator 的当前版本:oc get subscription jws-operator -n <project_name> -o yaml | grep currentCSV
$ oc get subscription jws-operator -n <project_name> -o yaml | grep currentCSV f:currentCSV: {} currentCSV: jws-operator.v1.0.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在上述命令中,<
;project_name> 是指安装 Operator 的项目的命名空间。如果您的 Operator 安装至所有命名空间,请使用openshift-operators来代替 <project_name>。使用以下命令删除 Operator 的订阅:
oc delete subscription jws-operator -n <project_name>
$ oc delete subscription jws-operator -n <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在上述命令中,<
;project_name> 是指安装 Operator 的项目的命名空间。如果您的 Operator 安装至所有命名空间,请使用openshift-operators来代替 <project_name>。使用以下命令,使用上一步中的 currentCSV 值删除目标命名空间中的 Operator 的 CSV:
oc delete clusterserviceversion <currentCSV> -n <project_name>
$ oc delete clusterserviceversion <currentCSV> -n <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
<currentCSV> 是在第 1 步中获取的值oc delete clusterserviceversion jws-operator.v1.0.0
$ oc delete clusterserviceversion jws-operator.v1.0.0 clusterserviceversion.operators.coreos.com "jws-operator.v1.0.0" deletedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在上述命令中,<
;project_name> 是指安装 Operator 的项目的命名空间。如果您的 Operator 安装至所有命名空间,请使用openshift-operators来代替 <project_name>。
4.1.5. 其他资源 复制链接链接已复制到粘贴板!
如需有关 Operator 的更多信息,您可以参考正式的 OpenShift 文档:
和