第 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 控制台

  1. 导航到"Operators"选项卡,在左侧的菜单中找到
  2. 这将打开 OpenShift OperatorHub。在这里,搜索 JWS 并选择"JWS Operator"
  3. 应出现一个新菜单 - 选择所需容量级别,然后单击顶部的"Install"来安装 Operator。
  4. 现在,您可以设置 Operator 安装。您将指定以下 3 个选项:

    • Installation Mode: 指定要安装的集群中的特定命名空间。如果没有指定,它将默认将 Operator 安装到集群中的所有命名空间中。
    • 更新频道: JWS 操作器目前只能通过一个频道获得。
    • 批准策略: 您可以选择 Automatic 或 Manual 更新。如果选择自动更新某个已安装的 Operator,则当相应 Operator 有可用的新版本时,Operator Lifecycle Manager(OLM)将自动升级该 Operator 的运行实例,而无需人为干预。如果选择手动更新,则当有新版 Operator 可用时,OLM 会创建更新请求。作为集群管理员,您必须手动批准该更新请求,才可将 Operator 更新至新版本。
  5. 点底部的"Install"。如果选择 手动批准策略,则必须在安装完成前批准安装计划。JWS Operator 现在将显示在"Operators"选项卡的"安装 Operator"部分。

4.1.2.3. 安装 JWS Operator - 命令行界面

  1. 使用以下命令检查 JWS 操作器,以验证其支持的 installModes 和 available 频道:

    $   oc get packagemanifests -n openshift-marketplace | grep jws
        jws-operator    Red Hat Operators   16h
    Copy to Clipboard Toggle word wrap
    $   oc describe packagemanifests jws-operator -n openshift-marketplace | grep "Catalog Source"
        Catalog Source:     redhat-operators
    Copy to Clipboard Toggle word wrap
  2. 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>
    Copy to Clipboard Toggle word wrap

    OperatorGroup 列表的输出示例:

    NAME       AGE
    mygroup    17h
    Copy to Clipboard Toggle word wrap
    注意

    在选择 SingleNamespace 模式时,此流程的 Web 控制台版本会在后台自动为您处理 OperatorGroup 和 Subscription 对象的创建。

    • 创建一个 OperatorGroup 对象 YAML 文件,例如:

      OperatorGroupExample.yaml:

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: <operatorgroup_name>
        namespace: <project_name>
      spec:
        targetNamespaces:
        - <project_name>
      Copy to Clipboard Toggle word wrap

      <project_name> 是安装 Operator (oc project -q)的项目的命名空间。<operatorgroup_name> 是 OperatorGroup 的名称。

    • 使用以下命令创建 OperatorGroup 对象:

      $   oc apply -f OperatorGroupExample.yaml
      Copy to Clipboard Toggle word wrap
  3. 创建一个订阅对象 YAML 文件,如 jws-operator-sub.yaml。配置 Subscription 对象 YAML 文件,如下所示:

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
        name: jws-operator
        namespace: <project_name>
    spec:
        channel: alpha
        name: jws-operator
        source: redhat-operators
        sourceNamespace: openshift-marketplace
    Copy to Clipboard Toggle word wrap

    <project_name> 是安装 Operator (oc project -q)的项目的命名空间。要在所有命名空间中安装,使用 openshift-operators。

    源是目录源。这是 $ oc describe packagemanifests jws-operator -n openshift-marketplace | grep "Catalog Source:" 命令中的值,我们在本节的第 1 步中运行。该值应该是 redhat-operators

  4. 使用以下命令,从 YAML 文件创建 Subscription 对象:

    $   oc apply -f jws-operator-sub.yaml
    Copy to Clipboard Toggle word wrap

    要验证安装是否成功,请运行以下命令:

    $   oc get csv -n <project_name>
    Copy to Clipboard Toggle word wrap
    Expand
    NAME显示VERSION替换 PHASE

    jws-operator.V1.0.0

    JBoss Web Server Operator

    1.0.0

    Succeeded

4.1.3. 部署现有 JWS 镜像

  1. 使用以下命令确保您的 Operator 已安装:

    $   oc get deployment.apps/jws-operator
        NAME       	READY 	UP-TO-DATE   AVAILABLE   AGE
        jws-operator   1/1   	1        	1        15h
    Copy to Clipboard Toggle word wrap

    或者,如果您需要更详细的输出:

    $   oc describe deployment.apps/jws-operator
    Copy to Clipboard Toggle word wrap
  2. 准备您的镜像并将其推送到所需位置。在本例中,它被推送到 quay.io/<USERNAME>/tomcat-demo:latest
  3. 创建一个 Custom Resource WebServer .yaml 文件。在本例中,使用名为 webservers_cr.yaml 的文件。文件内容应该采用以下格式:

    apiVersion: web.servers.org/v1alpha1
    kind: WebServer
    metadata:
        name: example-image-webserver
    spec:
        # Add fields here
        applicationName: jws-app
        replicas: 2
    webImage:
       applicationImage: quay.io/<USERNAME>/tomcat-demo:latest
    Copy to Clipboard Toggle word wrap
  4. 使用以下命令,从您创建的目录中部署您的过期:

    $   oc apply -f webservers_cr.yaml
        webserver/example-image-webserver created
    Copy to Clipboard Toggle word wrap
    注意

    操作器将自动创建路由。您可以使用以下命令验证路由:

    $   oc get routes
    Copy to Clipboard Toggle word wrap

    如需有关路由的更多信息 ,请参阅 OpenShift 文档

  5. 如果您需要删除在第 4 步中创建的 webserver

    $   oc delete webserver example-image-webserver
    Copy to Clipboard Toggle word wrap

    或者

    $   oc delete -f webservers_cr.yaml
    Copy to Clipboard Toggle word wrap

4.1.4. 从集群中删除 Operator

4.1.4.1. 先决条件

  • 具有管理员特权的 OpenShift Container Platform 集群(通常,您可以 按照以下说明 绕过此要求)
  • 在本地系统中安装 oc 工具(仅限 CLI)

4.1.4.2. 从集群中删除 Operator - Web 控制台

  1. 在左侧菜单中,点击 'Operators' 'Installed Operators'
  2. 在"Operator Details"下,选择"Actions"菜单,然后单击"Uninstall Operator"
  3. 选择此选项将删除 Operator、任何 Operator 部署和 Pod。删除 Operator 的 HOWEVER 不会删除 任何自定义资源定义或自定义资源,包括 CRD 或 CR。如果 Operator 在集群中部署了应用程序,或者配置了非集群资源,则这些应用程序将继续运行,需要手动清理。

4.1.4.3. 从集群中删除 Operator - 命令行界面

  1. 使用以下命令,在 currentCSV 字段中检查订阅的 Operator 的当前版本:

    $   oc get subscription jws-operator -n <project_name> -o yaml | grep currentCSV
        f:currentCSV: {}
        currentCSV: jws-operator.v1.0.0
    Copy to Clipboard Toggle word wrap
    注意

    在上述命令中,&lt ;project_name > 是指安装 Operator 的项目的命名空间。如果您的 Operator 安装至所有命名空间,请使用 openshift-operators 来代替 < project_name>

  2. 使用以下命令删除 Operator 的订阅:

    $   oc delete subscription jws-operator -n <project_name>
    Copy to Clipboard Toggle word wrap
    注意

    在上述命令中,&lt ;project_name > 是指安装 Operator 的项目的命名空间。如果您的 Operator 安装至所有命名空间,请使用 openshift-operators 来代替 < project_name>

  3. 使用以下命令,使用上一步中的 currentCSV 值删除目标命名空间中的 Operator 的 CSV:

    $   oc delete clusterserviceversion <currentCSV> -n <project_name>
    Copy to Clipboard Toggle word wrap

    其中 <currentCSV > 是在第 1 步中获取的值

    $   oc delete clusterserviceversion jws-operator.v1.0.0
        clusterserviceversion.operators.coreos.com "jws-operator.v1.0.0" deleted
    Copy to Clipboard Toggle word wrap
    注意

    在上述命令中,&lt ;project_name > 是指安装 Operator 的项目的命名空间。如果您的 Operator 安装至所有命名空间,请使用 openshift-operators 来代替 < project_name>

4.1.5. 其他资源

如需有关 Operator 的更多信息,您可以参考正式的 OpenShift 文档:

什么是 Operator?

OpenShift Container Platform

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat