Red Hat JBoss Web Server for OpenShift


Red Hat JBoss Web Server 5.6

安装并使用 Red Hat JBoss Web Server for OpenShift

Red Hat Customer Content Services

摘要

使用 Red Hat JBoss Web Server for OpenShift 指南

对红帽文档提供反馈

我们非常感谢您对我们的技术内容提供反馈,并鼓励您告诉我们您的想法。如果您想添加评论,提供见解、纠正拼写错误甚至询问问题,您可以在文档中直接这样做。

注意

您必须有一个红帽帐户并登录到客户门户网站。

要从客户门户网站提交文档反馈,请执行以下操作:

  1. 选择 Multi-page HTML 格式。
  2. 点文档右上角的 反馈 按钮。
  3. 突出显示您要提供反馈的文本部分。
  4. 点高亮文本旁的添加反馈对话框。
  5. 在页面右侧的文本框中输入您的反馈,然后单击 Submit

每次提交反馈时,我们都会自动创建跟踪问题。打开在点 Submit 后显示的链接,并开始监视问题或添加更多注释。

感谢您的宝贵反馈。

使开源包含更多

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息

第 1 章 Red Hat JBoss Web Server for OpenShift

Red Hat JBoss Web Server (JWS) 5.6 的 Apache Tomcat 9 组件作为针对 Red Hat OpenShift 设计的容器化镜像提供。您可以使用此镜像构建、扩展和测试 Java Web 应用程序,以便在混合云环境中进行部署。

用于 OpenShift 镜像的 JWS 与 Red Hat JBoss Web Server 的常规发行版本不同。

对于 OpenShift 的镜像和标准 JBoss Web 服务器部署,请考虑以下区别:

  • 在用于 OpenShift 镜像的 JWS 中,/opt/jws-5.6/ 目录位于 JWS_HOME
  • 在用于 OpenShift 部署的 JWS 中,所有负载均衡都由 OpenShift 路由器而不是 JBoss Core Services mod_cluster 连接器或 mod_jk 连接器处理。

1.2. OpenShift 镜像版本兼容性和支持

OpenShift 镜像通过不同的操作系统版本、配置和接口点进行测试,它们代表 Red Hat OpenShift Container Platform 客户正在使用的技术最常见组合。

重要

要部署新应用程序时,您必须为 OpenShift 镜像和应用程序模板使用 5.6 版本 JWS。

用于 OpenShift 镜像和应用程序模板的 JWS 5.5 版本已弃用,不再接收更新。

1.3. JBoss Web Server 支持的构架

JBoss Web Server 支持以下构架:

  • x86_64 (AMD64)
  • OpenShift 环境中的 IBM Z (s390x)
  • OpenShift 环境中的 IBM Power (ppc64le)

您可以在所有支持的构架中使用 OpenJDK 11 的 JBoss Web Server 镜像。有关镜像的更多信息,请参阅 Red Hat Container Catalog

1.4. 对红帽容器镜像进行健康检查

所有 OpenShift Container Platform 镜像都关联了一个健康评级。您可以进入 Certfied 容器镜像 页,查找 JBoss Web Server 并选择版本 5.6 以查看 Red Hat JBoss Web Server 的健康等级。

您还可以对 OpenShift 容器执行健康检查,以测试容器的存活状态和就绪状态。

第 2 章 Red Hat JBoss Web Server for OpenShift 入门

您可以从红帽容器 registry 中导入最新的 Red Hat JBoss Web Server for OpenShift 镜像流和模板。之后,您可以使用 OpenShift Source-to-Image (S2I) 流程的 JWS,使用现有的 maven 二进制文件或从源代码为 OpenShift 应用创建 JBoss Web 服务器。

在按照本文档中的说明进行操作前,您必须确保 OpenShift 集群已安装并根据先决条件进行了配置。有关安装和配置 OpenShift 集群的更多信息,请参阅 OpenShift Container Platform 的安装指南。

注意

用于 OpenShift 应用程序模板的 JWS 为 Tomcat 9 发布。

在导入并使用 Red Hat JBoss Web Server for OpenShift 镜像前,您必须首先确保已配置了身份验证令牌来访问 Red Hat Container Registry。

您可以使用 registry 服务帐户创建身份验证令牌。这意味着您不必在 OpenShift 配置中使用或存储您的红帽帐户用户名和密码。

流程

  1. 按照红帽客户门户网站中的说明,使用 registry 服务帐户创建身份验证令牌
  2. 在令牌的 Token Information 页面中,点 OpenShift Secret 选项卡并下载包含令牌的 OpenShift secret 的 YAML 文件。
  3. 使用您下载的 YAML 文件,为 OpenShift 项目创建身份验证令牌机密。

    例如:

    oc create -f 1234567_myserviceaccount-secret.yaml
    Copy to Clipboard Toggle word wrap
  4. 要为 OpenShift 项目配置 secret,请输入以下命令:

    oc secrets link default 1234567-myserviceaccount-pull-secret --for=pull
    oc secrets link builder 1234567-myserviceaccount-pull-secret --for=pull
    Copy to Clipboard Toggle word wrap
    注意

    在前面的示例中,将 1234567-myserviceaccount 替换为您在上一步中创建的 secret 的名称。

2.2. 导入 JBoss Web 服务器镜像流和模板

您可以从 Red Hat Container Registry 中导入 Red Hat JBoss Web Server for OpenShift 镜像流和模板。您必须将 JDK 的最新 JBoss Web 服务器镜像流和模板导入到 OpenShift 项目的命名空间。

流程

  1. 使用您的客户门户网站凭证登录到 Red Hat Container Registry。如需更多信息,请参阅 Red Hat Container Registry 身份验证
  2. 根据您使用的 JDK 版本,执行以下步骤:

    • 如果使用 OpenJDK 8,输入以下命令:

      for resource in \
      jws56-openjdk8-tomcat9-ubi8-basic-s2i.json \
      jws56-openjdk8-tomcat9-ubi8-https-s2i.json \
      jws56-openjdk8-tomcat9-ubi8-image-stream.json
      do
      oc replace -n openshift --force -f \
      https://raw.githubusercontent.com/jboss-container-images/jboss-webserver-5-openshift-image/jws56el8-v5.6.0/templates/${resource}
      done
      Copy to Clipboard Toggle word wrap

      前面的命令导入 UBI8 JDK 8 镜像流、jboss-webserver56-openjdk8-tomcat9-openshift-ubi8 以及命令中指定的所有模板。

    • 如果使用 OpenJDK 11,输入以下命令:

      for resource in \
      jws56-openjdk11-tomcat9-ubi8-basic-s2i.json \
      jws56-openjdk11-tomcat9-ubi8-https-s2i.json \
      jws56-openjdk11-tomcat9-ubi8-image-stream.json
      do
      oc replace -n openshift --force -f \
      https://raw.githubusercontent.com/jboss-container-images/jboss-webserver-5-openshift-image/jws56el8-v5.6.0/templates/${resource}
      done
      Copy to Clipboard Toggle word wrap

      前面的命令导入 UBI8 JDK 11 镜像流、jboss-webserver56-openjdk11-tomcat9-openshift-ubi8 以及命令中指定的所有模板。

2.3. 为 OpenShift 镜像导入最新的 JWS

您可以使用 import-image 命令导入 OpenShift 镜像的最新可用 JWS。红帽为 OpenJDK 8 和 OpenJDK 11 提供单独的 JWS for OpenShift 镜像。

流程

  • 根据您使用的 JDK 版本,执行以下步骤:

    • 要使用 OpenJDK 8 OpenShift 镜像更新核心 JBoss Web Server 5.6 tomcat 9,请输入以下命令:

      $ oc -n openshift import-image \
        jboss-webserver56-openjdk8-tomcat9-openshift-ubi8:5.6.2
      Copy to Clipboard Toggle word wrap
    • 要使用 OpenJDK 11 OpenShift 镜像更新核心 JBoss Web Server 5.6 tomcat 9,请输入以下命令:

      $ oc -n openshift import-image \
        jboss-webserver56-openjdk11-tomcat9-openshift-ubi8:5.6.2
      Copy to Clipboard Toggle word wrap
注意

您导入的每个镜像末尾的 5.6.2 标签指的是镜像流中设置的 版本。

2.4. 用于 OpenShift S2I 流程的 JWS

您可以使用带有应用程序模板参数和环境变量的 OpenShift Source-to-image (S2I) 进程,为 OpenShift 镜像运行和配置 JWS。

用于 OpenShift 镜像的 JWS 的 S2I 流程可以正常工作:

  • 如果 configuration 源目录包含 Maven settings.xml 文件,则 settings.xml 文件将移到新镜像的 $HOME/.m2/ 目录中。
  • 如果源存储库包含 pom.xml 文件,则使用 $MAVEN_ARGS 环境变量的内容触发 Maven 构建。

    默认情况下,package 目标与 openshift 配置集一同使用,其中包括用于跳过测试的 -DskipTests 参数,以及用于启用 Red Hat GA 存储库的 -Dcom.redhat.xpaas.repo.redhatga 参数。

  • 成功 Maven 构建的结果被复制到 /opt/jws-5.6/tomcat/webapps 目录中。这包括由 $ARTIFACT_DIR 环境变量指定的源目录中的所有 WAR 文件。$ARTIFACT_DIR 的默认值为 target/ 目录。

    您可以使用 $MAVEN_ARGS_APPEND 环境变量修改 Maven 参数。

  • deployments 源目录中的所有 WAR 文件都复制到 /opt/jws-5.6/tomcat/webapps 目录中。
  • deployments 源目录中的所有文件都复制到 /opt/jws-5.6/tomcat/conf/ 目录中,不包括 Maven settings.xml 文件。
  • lib 源目录中所有文件都复制到 /opt/jws-5.6/tomcat/lib/ 目录中。

    注意

    如果要使用自定义 Tomcat 配置文件,请使用与常规 Tomcat 安装相同的文件名,如 context.xmlserver.xml

有关配置 S2I 进程以使用自定义 Maven 工件存储库镜像的更多信息,请参阅 Artifact repository mirrors

您可以使用现有的 Maven 二进制文件为 OpenShift 应用创建 JWS。您可以使用 oc start-build 命令在 OpenShift 上部署现有应用程序。

注意

此流程演示了如何创建基于 tomcat-websocket-chat quickstart 示例的示例应用程序。

先决条件

  • 已有您要部署在 JWS for OpenShift 中的应用程序的 .war, .ear, 或 .jar 文件,或已在本地构建了应用程序。

    例如,要在本地构建 tomcat-websocket-chat 应用程序,请执行以下步骤:

    1. 要克隆源代码,请输入以下命令:

      $ git clone https://github.com/jboss-openshift/openshift-quickstarts.git
      Copy to Clipboard Toggle word wrap
    2. 配置Red Hat JBoss Middleware Maven 存储库,参阅 配置 Red Hat JBoss Middleware Maven 存储库

      有关 Maven 存储库的更多信息,请参阅 Red Hat JBoss Ener Enterprise Maven Repository 网页。

    3. 要构建应用程序,请输入以下命令:

      $ cd openshift-quickstarts/tomcat-websocket-chat/
      $ mvn clean package
      Copy to Clipboard Toggle word wrap

      前面的命令会产生以下输出:

      [INFO] Scanning for projects...
      [INFO]
      [INFO] ------------------------------------------------------------------------
      [INFO] Building Tomcat websocket example 1.2.0.Final
      [INFO] ------------------------------------------------------------------------
      ...
      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD SUCCESS
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 01:28 min
      [INFO] Finished at: 2018-01-16T15:59:16+10:00
      [INFO] Final Memory: 19M/271M
      [INFO] ------------------------------------------------------------------------
      Copy to Clipboard Toggle word wrap

流程

  1. 在本地文件系统中,为二进制构建创建一个源目录和一个 deployments 子目录。

    例如,要为 tomcat-websocket-chat 应用程序创建 /ocp 源目录和 /deployments 子目录,请输入以下命令:

    $ cd openshift-quickstarts/tomcat-websocket-chat/
    $ mkdir -p ocp/deployments
    Copy to Clipboard Toggle word wrap
    注意

    源目录可以包含未包含在 Maven 二进制文件中的应用程序所需的任何内容。如需更多信息,请参阅 JWS for OpenShift S2I 流程

  2. .war.ear.jar 二进制文件复制到 deployments 子目录。

    例如,要复制 tomcat-websocket-chat 应用程序的 .war 文件,请输入以下命令:

    $ cp target/websocket-chat.war ocp/deployments/
    Copy to Clipboard Toggle word wrap
    注意

    在上例中,target/websocket-chat.war 是您要复制的二进制文件的路径。

    源目录的 deployments 子目录中的应用存档复制到 OpenShift 上构建的镜像的 $JWS_HOME/tomcat/webapps/ 目录中。要成功部署应用程序,您必须确保包含 Web 应用数据的目录层次结构是正确的。如需更多信息,请参阅 JWS for OpenShift S2I 流程

  3. 登录到 OpenShift 实例:

    $ oc login <url>
    Copy to Clipboard Toggle word wrap
  4. 如果需要,创建一个新项目。

    例如:

    $ oc new-project jws-bin-demo
    Copy to Clipboard Toggle word wrap
    注意

    在前面的示例中,jws-bin-demo 是您要创建的项目名称。

  5. 识别应用程序要使用的 JWS for OpenShift 镜像流:

    $ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '
    Copy to Clipboard Toggle word wrap

    前面的命令会产生以下类型的输出:

    jboss-webserver56-openjdk8-tomcat9-openshift-ubi8
    Copy to Clipboard Toggle word wrap
    注意

    -n openshift 选项指定要使用的项目。oc get is -n openshift 命令从 openshift 项目中获取镜像流资源。

  6. 创建新构建配置,并确保您指定镜像流和应用程序名称。

    例如,要为 tomcat-websocket-chat 应用程序创建新构建配置,请执行以下操作:

    $ oc new-build --binary=true \
     --image-stream=jboss-webserver56-openjdk8-tomcat9-openshift-ubi8:latest\*
     --name=jws-wsch-app
    Copy to Clipboard Toggle word wrap
    注意

    在前面的示例中,jws-wsch-app 是 JWS for OpenShift 应用的 JWS 的名称。

    前面的命令会产生以下类型的输出:

    --> Found image 8c3b85b (4 weeks old) in image stream "openshift/jboss-webserver56-tomcat9-openshift" under tag "latest" for "jboss-webserver56"
    
        JBoss Web Server 5.6
        --------------------
        Platform for building and running web applications on JBoss Web Server 5.6 - Tomcat v9
    
        Tags: builder, java, tomcat9
    
        * A source build using binary input will be created
          * The resulting image will be pushed to image stream "jws-wsch-app:latest"
          * A binary build was created, use 'start-build --from-dir' to trigger a new build
    
    --> Creating resources with label build=jws-wsch-app ...
        imagestream "jws-wsch-app" created
        buildconfig "jws-wsch-app" created
    --> Success
    Copy to Clipboard Toggle word wrap
  7. 启动二进制构建。

    例如:

    $ oc start-build jws-wsch-app --from-dir=./ocp --follow
    Copy to Clipboard Toggle word wrap
    注意

    在前面的示例中,jws-wsch-app 是 JWS for OpenShift 应用的名称,ocp 是源目录的名称。

    前面的命令指示 OpenShift 使用您为 OpenShift 镜像构建的二进制输入创建的源目录。

    前面的命令会产生以下类型的输出:

    Uploading directory "ocp" as binary input for the build ...
    build "jws-wsch-app-1" started
    Receiving source from STDIN as archive ...
    
    Copying all deployments war artifacts from /home/jboss/source/deployments directory into `/opt/jws-5.6/tomcat/webapps` for later deployment...
    '/home/jboss/source/deployments/websocket-chat.war' -> '/opt/jws-5.6/tomcat/webapps/websocket-chat.war'
    
    Pushing image 172.30.202.111:5000/jws-bin-demo/jws-wsch-app:latest ...
    Pushed 0/7 layers, 7% complete
    Pushed 1/7 layers, 14% complete
    Pushed 2/7 layers, 29% complete
    Pushed 3/7 layers, 49% complete
    Pushed 4/7 layers, 62% complete
    Pushed 5/7 layers, 92% complete
    Pushed 6/7 layers, 100% complete
    Pushed 7/7 layers, 100% complete
    Push successful
    Copy to Clipboard Toggle word wrap
  8. 根据镜像创建新 OpenShift 应用程序:

    例如:

    $ oc new-app jws-wsch-app
    Copy to Clipboard Toggle word wrap
    注意

    在前面的示例中,jws-wsch-app 是 JWS for OpenShift 应用的 JWS 的名称。

    前面的命令会产生以下类型的输出:

    --> Found image e5f3a6b (About a minute old) in image stream "jws-bin-demo/jws-wsch-app" under tag "latest" for "jws-wsch-app"
    
        JBoss Web Server 5.6
        --------------------
        Platform for building and running web applications on JBoss Web Server 5.6 - Tomcat v9
    
        Tags: builder, java, tomcat9
    
        * This image will be deployed in deployment config "jws-wsch-app"
        * Ports 8080/tcp, 8443/tcp, 8778/tcp will be load balanced by service "jws-wsch-app"
          * Other containers can access this service through the hostname "jws-wsch-app"
    
    --> Creating resources ...
        deploymentconfig "jws-wsch-app" created
        service "jws-wsch-app" created
    --> Success
        Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
         'oc expose svc/jws-wsch-app'
        Run 'oc status' to view your app.
    Copy to Clipboard Toggle word wrap
  9. 公开该服务以使应用程序可以被用户访问:

    例如,要使 jws-wsch-app 应用程序可以被访问,请执行以下步骤:

    1. 检查要公开的服务名称:

      $ oc get svc -o name
      Copy to Clipboard Toggle word wrap

      前面的命令会产生以下类型的输出:

      service/jws-wsch-app
      Copy to Clipboard Toggle word wrap
    2. 公开服务:

      $ oc expose svc/jws-wsch-app
      Copy to Clipboard Toggle word wrap

      前面的命令会产生以下类型的输出:

      route "jws-wsch-app" exposed
      Copy to Clipboard Toggle word wrap
  10. 检索公开路由的地址:

    oc get routes --no-headers -o custom-columns='host:spec.host' jws-wsch-app
    Copy to Clipboard Toggle word wrap
  11. 打开 Web 浏览器,再输入 URL 以访问应用。

    例如,要访问示例 jws-wsch-app 应用程序,请输入以下 URL:

    \http://<address_of_exposed_route>/websocket-chat

    注意

    在前面的示例中,将 <address_of_exposed_route> 替换为您的部署的适当值。

您可以通过源代码创建一个 JWS for OpenShift 应用程序。

有关通过源代码创建新的 OpenShift 应用程序的详细信息,请参阅 OpenShift.com - 从源代码创建应用程序

先决条件

流程

  1. 登录到 OpenShift 实例:

    $ oc login <url>
    Copy to Clipboard Toggle word wrap
  2. 根据需要创建新项目:

    $ oc new-project <project-name>
    Copy to Clipboard Toggle word wrap
    注意

    在前面的示例中,将 <project-name> 替换为您要创建的项目名称。

  3. 识别应用程序要使用的 JWS for OpenShift 镜像流:

    $ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '
    Copy to Clipboard Toggle word wrap

    前面的命令会产生以下类型的输出:

    jboss-webserver56-openjdk8-tomcat9-openshift-ubi8
    Copy to Clipboard Toggle word wrap
    注意

    -n openshift 选项指定要使用的项目。oc get is -n openshift 命令从 openshift 项目中获取镜像流资源。

  4. 使用 Red Hat JBoss Web Server for OpenShift 镜像,从源代码创建新 OpenShift 应用程序:

    $ oc new-app \
     _<source_code_location>_\
     --image-stream=jboss-webserver56-openjdk8-tomcat9-openshift-ubi8\
     --name=_<openshift_application_name>_
    Copy to Clipboard Toggle word wrap

    例如:

    $ oc new-app \
     \https://github.com/jboss-openshift/openshift-quickstarts.git#main \
     --image-stream=jboss-webserver56-openjdk8-tomcat9-openshift-ubi8\
     --context-dir='tomcat-websocket-chat' \
     --name=jws-wsch-app
    Copy to Clipboard Toggle word wrap

    前面的命令将源代码添加到镜像中,并编译源代码。前面的命令还会创建构建配置和服务。

  5. 要公开应用程序,请执行以下步骤:

    1. 检查要公开的服务名称:

      $ oc get svc -o name
      Copy to Clipboard Toggle word wrap

      前面的命令会产生以下类型的输出:

      service/<openshift_application_name>
      Copy to Clipboard Toggle word wrap
    2. 公开服务:

      $ oc expose svc/<openshift_application_name>
      Copy to Clipboard Toggle word wrap

      前面的命令会产生以下类型的输出:

      route "<openshift_application_name>" exposed
      Copy to Clipboard Toggle word wrap
  6. 检索公开路由的地址:

    oc get routes --no-headers -o custom-columns='host:spec.host' <openshift_application_name>
    Copy to Clipboard Toggle word wrap
  7. 打开 Web 浏览器,并输入以下 URL 来访问应用程序:

    \http://<address_of_exposed_route>/<java_application_name>

    注意

    在前面的示例中,将 <address_of_exposed_route><java_application_name> 替换为部署的相应值。

2.7. 在 tomcat/lib 目录中添加额外的 JAR 文件

您可以使用 Docker 在 tomcat/lib 目录中添加其他 Java 存档 (JAR) 文件。

流程

  1. 启动 Docker 中的镜像:

    docker run --network host -i -t -p 8080:8080 ImageURL
    Copy to Clipboard Toggle word wrap
  2. 查找 CONTAINER ID

     docker ps | grep <ImageName>
    Copy to Clipboard Toggle word wrap
  3. 将库复制到 tomcat/lib/ 目录中:

    docker cp <yourLibrary> <CONTAINER ID>:/opt/jws-5.6/tomcat/lib/
    Copy to Clipboard Toggle word wrap
  4. 将更改提交到新镜像:

    docker commit <CONTAINER ID> <NEW IMAGE NAME>
    Copy to Clipboard Toggle word wrap
  5. 创建新镜像标签:

    docker tag <NEW IMAGE NAME>:latest <NEW IMAGE REGISTRY URL>:_<TAG>_
    Copy to Clipboard Toggle word wrap
  6. 将镜像推送到 registry:

    docker push <NEW IMAGE REGISTRY URL>
    Copy to Clipboard Toggle word wrap

第 3 章 JWS Operator for OpenShift

Operator Framework 是一个工具包,用于以有效、自动化且可扩展的方式管理 Kubernetes 原生应用程序,它称为 Operator。Operator 可以轻松地管理在 Kubernetes 上运行的复杂有状态应用程序。所有 Operator 都基于三个关键组件,它们是 Operator SDK、Operator Lifecycle Manager 和 OperatorHub.io。这些工具允许您开发自己的 Operator,管理 Kubernetes 集群上使用的任何 Operator,并发现或共享社区创建的任何 Operator。

3.1. JBoss Web Server operator

Red Hat JBoss Web Server (JWS) 提供了一个 Operator,可用于管理 JWS for OpenShift 镜像。您可以构建、测试和打包 JWS Operator for OpenShift。

JWS Operator 使用与标准的 JWS for OpenShift 设置不同的环境变量。有关 JWS Operator 使用的环境变量的更多信息,请参阅 CRD 中使用的参数

重要

在本发行版本中,Use Session 集群功能仅作为技术预览功能提供。会话集群默认设置为 Off。当前 Operator 版本使用 DNS Membership 提供者,这受到 DNS 限制的限制。InetAddress.getAllByName() 结果会被缓存,这意味着扩展时会话复制可能无法正常工作。

您可以按照本文档中的说明安装 JWS Operator、部署现有 JWS 镜像以及从集群中删除 Operator。有关部署准备镜像或从现有镜像流构建镜像的更快但不太详细的指南,请参阅 QuickStart 指南。

重要

红帽支持 JWS 5.4 或更高版本的镜像。早于 JWS 5.4 的镜像不支持。

3.2. operator 组

Operator 组是一个 Operator Lifecycle Manger (OLM)资源,它为 OLM 安装的 Operator 提供多租户配置。Operator 组选择目标命名空间,在其中为与 OperatorGroup 对象相同的命名空间中部署的所有 Operator 生成基于角色的访问控制(RBAC)。

将 Operator 订阅到命名空间时,您必须确保命名空间具有使用与 Operator 相同的 InstallModeType 设置的 OperatorGroup 对象。InstallModeType 设置是 AllNamespacesSingleNamespace

请考虑以下准则:

  • 如果要安装的 Operator 使用 AllNamespaces 模式,openshift-operators 命名空间已经提供适当的 Operator 组。
  • 如果要使用 SingleNamespace 模式安装的 Operator,则必须在该命名空间中创建一个 Operator 组。

3.3. JWS Operator 2.0 版本中有什么新功能?

JWS Operator 2.0 发行版本提供级别-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 服务器。
为新镜像启用 2 级无缝集成

DeploymentConfig 对象定义包含一个触发器,OpenShift 在一个新镜像推送到镜像流时用于部署新容器集。镜像流可以监控新镜像的存储库,或者您可以指示镜像流可用的新镜像。

流程

  1. 在项目命名空间中,使用 oc import-image 命令创建镜像流,以导入镜像的标签和其他信息。

    例如:

    oc import-image <my-image>-imagestream:latest \
    --from=quay.io/$user/<my-image>:latest \
    --confirm
    Copy to Clipboard Toggle word wrap

    在上例中,将每个出现的 &lt ;my-image > 替换为您要导入的镜像的名称。

    以上命令通过为 quay.io/$user/<my-image> 镜像导入信息来创建一个名为 <my-image>-imagestream 的镜像流。有关镜像流的格式和管理的更多信息,请参阅管理镜像流

  2. 为您希望在镜像流被更新时 JWS Operator 进行部署的 Web 应用程序创建 WebServer kind 的自定义资源。您可以使用 YAML 文件格式定义自定义资源。

    例如:

    apiVersion: web.servers.org/v1alpha1
    kind: WebServer
    metadata:
      name: <my-image>
    spec:
      # Add fields here
      applicationName: my-app
      useSessionClustering: true
      replicas: 2
      webImageStream:
        imageStreamNamespace: <project-name>
        imageStreamName: <my-image>-imagestream
    Copy to Clipboard Toggle word wrap
  3. 使用 oc tag 命令触发对镜像流的更新。

    例如:

    oc tag quay.io/$user/<my-image> <my-image>-imagestream:latest --scheduled
    Copy to Clipboard Toggle word wrap

    上述命令会导致 OpenShift Container Platform 定期更新指定的镜像流标签。这个周期是集群范围的设置,默认设置为 15 分钟。

2 级无缝集成以重建现有镜像

BuildConfig 对象定义包含用于镜像流更新的触发器和 webhook (一个 GitHub 或通用 Webhook),它在 Git 或 GitHub 触发 Webhook 时启用重建镜像。

有关为 webhook 创建 secret 和在自定义资源 Evolution 文件中配置通用或 GitHub Webhook 的更多信息,请参阅在 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-Q2
  • rht.comp:JBoss_Web_Server
  • rht.comp_ver:5.6.2
  • rht.subcomp:Tomcat 9
  • rht.subcomp_t: application

您可以在您要部署的 Web 应用程序的自定义资源 WebServer 文件的 metadata 部分下添加标签。例如:

---
apiVersion: web.servers.org/v1alpha1
kind: WebServer
metadata:
  name: <my-image>
  labels:
    com.company: Red_Hat
    rht.prod_name: Red_Hat_Runtimes
    rht.prod_ver: 2022-Q2
    rht.comp: JBoss_Web_Server
    rht.comp_ver: 5.6.2
    rht.subcomp: Tomcat 9
    rht.subcomp_t: application
spec:
----
Copy to Clipboard Toggle word wrap
注意

如果您更改了部署的 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)。

    要授予 builder 对 anyuid SCC 的访问权限,请输入以下命令:

    oc adm policy add-scc-to-user anyuid -z builder

    builder 参数包含以下字段:

    • image

      构建 web 应用程序的容器的镜像(例如 quay.io/$user/tomcat10-buildah

    • imagePullSecret

      JWS Operator 用来从存储库拉取构建器镜像的 secret (如果指定)

    • applicationBuildScript

      构建器镜像用来构建应用程序 .war 文件的脚本,并将其移到 /mnt 目录

      注意

      如果没有为此参数指定值,构建器镜像将使用使用 Maven 和 Buildah 的默认脚本。

3.4. JWS Operator 安装

您可以使用以下方法之一为 OpenShift 安装 JBoss Web Server (JWS) Operator:

3.4.1. 使用 Web 控制台安装 JWS Operator

您可以使用 OpenShift Web 控制台安装 JWS Operator。

先决条件

  • 您已使用具有集群管理员和 Operator 安装权限的账户部署了 OpenShift Container Platform 集群

流程

  1. 打开 Web 控制台,进入到 Operators 选项卡。

    OpenShift OperatorHub 将打开。

  2. 搜索 JWS 并选择 JWS Operator

    此时会显示一个新菜单。

  3. 选择要使用的容量级别。
  4. 要在控制台开始时安装 Operator,请点 Install
  5. 要设置 Operator 安装,请执行以下步骤:

    1. 通过在要安装 Operator 的集群上指定命名空间来指定安装模式。

      注意

      如果没有指定命名空间,Operator 默认安装到集群中的所有命名空间中。

    2. 指定 JWS Operator 可用的更新频道。

      注意

      JWS Operator 目前只能通过一个频道提供。

    3. 选择 AutomaticManual update 来指定批准策略。

      注意

      如果选择 Automatic 更新,当有新版 Operator 可用时,Operator Lifecycle Manager (OLM)会自动升级 Operator 的运行实例。

      如果选择手动 更新,则当有新版 Operator 可用时,OLM 会创建一个更新请求。作为集群管理员,您必须手动批准更新请求,以确保 Operator 更新至新版本。

  6. Install

    注意

    如果您选择了 手动批准策略,则必须在安装完成前批准安装计划。JWS Operator 现在会出现在 Operators 选项卡的 Installed Operators 部分。

3.4.2. 从命令行安装 JWS Operator

您可以使用 oc 命令行工具安装 JWS Operator。从命令行安装 JWS Operator 的步骤包括验证 Operator 支持的 installModes 和可用频道,创建 Operator 组,以及创建 Subscription 对象。

注意

当使用 Web 控制台安装 JWS Operator 时,Operator 正在使用 SingleNamespace 模式,则会自动安装 OperatorGroupSubscription 对象

先决条件

  • 您已使用具有 Operator 安装权限的账户部署了 OpenShift Container Platform 集群。
  • 您已在本地系统上安装了 oc 工具。

流程

  1. 要检查 JWS Operator,请执行以下步骤:

    1. 要验证 JWS Operator 支持的安装模式,请输入以下命令:

      $ oc get packagemanifests -n openshift-marketplace | grep jws
      Copy to Clipboard Toggle word wrap

      前面的命令会产生以下类型的输出:

      jws-operator    Red Hat Operators   16h
      Copy to Clipboard Toggle word wrap
    2. 要验证 JWS Operator 的可用频道,请输入以下命令:

      $ oc describe packagemanifests jws-operator -n openshift-marketplace | grep "Catalog Source"
      Copy to Clipboard Toggle word wrap

      前面的命令会产生以下类型的输出:

      Catalog Source:     redhat-operators
      Copy to Clipboard Toggle word wrap
  2. 要创建 Operator 组,请执行以下步骤:

    1. 要检查 Operator 组的实际列表,请输入以下命令:

      $ oc get operatorgroups -n <project_name>
      Copy to Clipboard Toggle word wrap
      注意

      在上例中,将 < project_name& gt; 替换为您的 OpenShift 项目名称。

      前面的命令会产生以下类型的输出:

      NAME       AGE
      mygroup    17h
      Copy to Clipboard Toggle word wrap
    2. OperatorGroup 对象创建 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
      注意

      在上例中,将 &lt ;project_name > 替换为您要安装 Operator 的项目的命名空间(oc project -q)。并将 '&lt ;operatorgroup_name > 替换为 OperatorGroup 对象的名称。

    3. 从 YAML 文件创建 OperatorGroup 对象:

      $ oc apply -f <filename>.yaml
      Copy to Clipboard Toggle word wrap
      注意

      在上例中,将 & lt;filename > .yaml 替换为您为 OperatorGroup 对象创建的 YAML 文件的名称。

  3. 要创建 Subscription 对象,请执行以下步骤:

    1. 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
      注意

      在上例中,将 & lt;project_name > 替换为您要安装 Operator 的项目的命名空间(oc project -q)。如果 Operator 使用 AllNamespaces 模式,请将 < project_name> 替换为 openshift-operators

      在验证了 Operator 的可用频道(如 redhat-operators)时,请确保 source 设置与基于命令行输出的 Catalog source 值相匹配。

    2. 从 YAML 文件创建 Subscription 对象:

      $ oc apply -f <filename>.yaml
      Copy to Clipboard Toggle word wrap
      注意

      在上例中,将 & lt;filename > .yaml 替换为您为 Subscription 对象创建的 YAML 文件的名称。

验证

  • 要验证 JWS Operator 是否已成功安装,请输入以下命令:

    $ oc get csv -n <project_name>
    Copy to Clipboard Toggle word wrap
    注意

    在上例中,将 &lt ;project_name > 替换为已安装 Operator 的项目的命名空间。

    前面的命令会产生以下类型的输出:

    Expand
    NAME显示VERSION替换 PHASE

    jws-operator.V<version>

    JBoss Web Server Operator

    <version>

    Succeeded

    注意

    在上例中,&lt ;version& gt; 代表 Operator 版本(例如 1.1.0)。

3.5. 部署现有 JWS 镜像

您可以使用 OpenShift Web 控制台部署现有的 JWS 镜像。

先决条件

  • 已使用 Web 控制台或命令行安装了 JWS Operator。

    要确保安装了 JWS Operator,请输入以下命令:

    $ oc get deployment.apps/jws-operator
    Copy to Clipboard Toggle word wrap

    前面的命令会产生以下类型的输出:

    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

流程

  1. 准备您的镜像并将其推送到要显示镜像的位置(例如 quay.io/ <USERNAME> /tomcat-demo:latest)。
  2. 要为 自定义资源 web 服务器创建 YAML 文件,请执行以下步骤:

    1. 创建名为 的文件,如 webserver _cr.yaml
    2. 以以下格式输入详情:

      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
  3. 要部署 Web 应用程序,请执行以下步骤:

    1. 进入您在其中创建 Web 应用的目录。
    2. 输入以下命令:

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

      前面的命令会产生以下输出:

      webserver/example-image-webserver created
      Copy to Clipboard Toggle word wrap
      注意

      Operator 会自动创建一个路由。

  4. 验证 Operator 创建的路由:

    $ oc get routes
    Copy to Clipboard Toggle word wrap
  5. 可选:删除您在上一步中创建的 webserver

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

    或者,您可以通过删除 YAML 文件来删除 webserver。例如:

    oc delete -f webservers_cr.yaml

3.6. JWS Operator 删除

您可以使用以下方法之一从集群中删除 JWS Operator:

3.6.1. 使用 Web 控制台删除 JWS Operator

您可以使用 OpenShift Web 控制台从集群中删除 JWS Operator。

先决条件

  • 您已使用具有集群管理员权限的账户部署了 OpenShift Container Platform 集群

    注意

    如果您没有 集群管理员权限, 您可以绕过这个要求。如需更多信息,请参阅允许非集群管理员安装 Operator

流程

  1. 打开 Web 控制台并点击 Operators > Installed Operators
  2. 选择 Actions 菜单并点 Uninstall Operator

    注意

    Uninstall Operator 选项自动删除 Operator、任何 Operator 部署和 Pod。

    删除 Operator 不会删除 Operator 的任何自定义资源定义或自定义资源,包括 CRD 或 CR。如果 Operator 在集群中部署了应用程序,或者 Operator 配置了非集群资源,您必须手动清理这些应用程序和资源。

3.6.2. 从命令行删除 JWS Operator

您可以使用 oc 命令行工具从集群中删除 JWS Operator。

先决条件

  • 您已使用具有集群管理员权限的账户部署了 OpenShift Container Platform 集群

    注意

    如果您没有 集群管理员权限, 您可以绕过这个要求。如需更多信息,请参阅允许非集群管理员安装 Operator

  • 您已在本地系统上安装了 oc 工具。

流程

  1. 检查订阅的 Operator 的当前版本:

    $ oc get subscription jws-operator -n <project_name> -o yaml | grep currentCSV
    Copy to Clipboard Toggle word wrap
    注意

    在上一命令中,将 &lt ;project_name > 替换为安装 Operator 的项目的命名空间。如果 Operator 安装至所有命名空间,请将 < project_name> 替换为 openshift-operators

    以上命令会生成以下输出,其中 v <version& gt; 代表 Operator 版本(如 v1.1.0):

    f:currentCSV: {}
    currentCSV: jws-operator.v<version>
    Copy to Clipboard Toggle word wrap
  2. 删除 Operator 的订阅:

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

    在上一命令中,将 &lt ;project_name > 替换为安装 Operator 的项目的命名空间。如果 Operator 安装至所有命名空间,请将 < project_name> 替换为 openshift-operators

  3. 使用您在上一步中获取的 currentCSV 值来删除目标命名空间中的 Operator 的 CSV:

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

    在上一命令中,将 &lt ;project_name > 替换为您安装 Operator 的项目的命名空间,并将 &lt ;currentCSV& gt; 替换为在前面的步骤中记录 的当前CSV 值 (如 jws-operator.v <version>)。

    前面的命令会产生以下类型的输出:

    clusterserviceversion.operators.coreos.com "jws-operator.v<version>" deleted
    Copy to Clipboard Toggle word wrap
    注意

    在上一命令中,&lt ;project_name > 是指安装 Operator 的项目的命名空间,v <version& gt; 指的是 Operator 版本(如 v1.1.0)。如果您的 Operator 安装至所有命名空间,请使用 openshift-operators 来代替 < project_name>

您可以在 Red Hat JBoss Web Server pod 中添加 metering 标签,并使用 OpenShift Metering Operator 检查红帽订阅详情。

注意
  • 不要将 metering 标签添加到 Operator 或模板部署和管理的任何 pod 中。
  • 您可以使用 OpenShift Container Platform 版本 4.8 及更早版本上的 Metering Operator 将标签应用到 pod。从 4.9 版本中,在没有直接替换的情况下,Metering Operator 不再可用。

Red Hat JBoss Web Server 可以使用以下 metering 标签:

  • com.company:Red_Hat
  • rht.prod_name:Red_Hat_Runtimes
  • rht.prod_ver:2022-Q2
  • rht.comp:JBoss_Web_Server
  • rht.comp_ver:5.6.2
  • rht.subcomp:Tomcat 9
  • rht.subcomp_t: application

附录 A. S2I 脚本和 Maven

Red Hat JBoss Web Server for OpenShift 镜像包括 S2I 脚本和 Maven。

A.1. Maven 工件存储库镜像以及 JWS for OpenShift

Maven 存储库包含构建工件和依赖项,如项目 Java 存档(JAR)文件、库 JAR 文件、插件或其他特定于项目的工件。Maven 存储库还可定义在执行 source-to-image (S2I) 构建时可从中下载工件的位置。除了使用 Maven Central 存储库 外,一些机构还会部署本地自定义存储库(mirror)。

本地镜像提供以下优点:

  • 通过同步的镜像,使地理位置更近,速度更快
  • 对存储库内容进行更大的控制
  • 能够在不同团队(开发人员和持续集成(CI))共享工件,而无需依赖公共服务器和存储库
  • 改进了构建时间

Maven 存储库管理器可以充当本地缓存到镜像。如果已部署了存储库管理器,且可以在指定的 URL 位置访问外部,则 S2I 构建可以使用此存储库。您可以通过在应用的构建配置中添加 MAVEN_MIRROR_URL 环境变量来使用内部 Maven 存储库。

A.1.1. 使用内部 Maven 存储库进行新构建配置

您可以在 oc new-app 命令或 oc new-build 命令中指定 --build-env 选项,将 MAVEN_MIRROR_URL 环境变量添加到应用程序的新构建配置中。

流程

  1. 输入以下命令:

    $ oc new-app \
     https://github.com/jboss-openshift/openshift-quickstarts.git#main \
     --image-stream=jboss-webserver56-openjdk8-tomcat9-openshift-ubi8:latest\*
     --context-dir='tomcat-websocket-chat' \
     --build-env MAVEN_MIRROR_URL=\http://10.0.0.1:8080/repository/internal/ \
     --name=jws-wsch-app
    Copy to Clipboard Toggle word wrap
    注意

    前面的命令假定已部署了存储库管理器,可通过 http://10.0.0.1:8080/repository/internal/ 访问。

A.1.2. 将内部 Maven 存储库用于现有构建配置

您可以使用 oc env 命令指定构建配置的名称,将 MAVEN_MIRROR_URL 环境变量添加到应用程序的现有构建配置中。

流程

  1. 识别需要 MAVEN_MIRROR_URL 变量的构建配置:

    $ oc get bc -o name
    Copy to Clipboard Toggle word wrap

    前面的命令会产生以下类型的输出:

    buildconfig/jws
    Copy to Clipboard Toggle word wrap
    注意

    在前面的示例中,jws 是构建配置的名称。

  2. MAVEN_MIRROR_URL 环境变量添加到 buildconfig/jws

    $ oc env bc/jws MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/"
    
    buildconfig "jws" updated
    Copy to Clipboard Toggle word wrap
  3. 验证构建配置是否已更新:

    $ oc env bc/jws --list
    
    # buildconfigs jws
    MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/
    Copy to Clipboard Toggle word wrap
  4. 使用 oc start-build 调度应用程序的新构建
注意

在应用程序构建过程中,从存储库管理器下载 Maven 依赖项,而不是从默认公共存储库下载。构建过程完成后,镜像包含构建过程中检索和使用的所有依赖项。

Red Hat JBoss Web Server for OpenShift 镜像包括了用于运行 Catalina 的脚本,并使用 Maven 来创建和部署 .war 软件包。

run
运行 Catalina (Tomcat)
assemble
使用 Maven 构建 Web 应用源,创建 .war 文件,并将 .war 文件移动到 $JWS_HOME/tomcat/webapps 目录。

A.3. JWS for OpenShift 数据源

JWS for OpenShift 提供了三种数据源类型:

默认内部数据源
默认情况下,PostgreSQL、MySQL 和 MongoDB 数据源可以通过 Red Hat Registry 在 OpenShift 上获得。这些数据源不需要为镜像流配置额外的环境文件。要启用数据库被发现和用作数据源,您可以将 DB_SERVICE_PREFIX_MAPPING 环境变量设置为 OpenShift 服务的名称。
其他内部数据源
这些数据源在 OpenShift 上运行,但默认情况下无法通过 Red Hat Registry 提供它们。添加到 OpenShift Secret 的环境文件提供了其他内部数据源的配置。
外部数据源
这些数据源不在 OpenShift 中运行。添加到 OpenShift Secret 的环境文件可以提供外部数据源的配置。

ENV_FILES 属性

您可以将数据源的环境变量添加到项目的 OpenShift Secret 中。您可以使用 ENV_FILES 属性在模板中调用这些环境文件。

DB_SERVICE_PREFIX_MAPPING 环境变量

数据源根据特定环境变量的值自动创建。DB_SERVICE_PREFIX_MAPPING 环境变量定义数据源的 JNDI 映射。

DB_SERVICE_PREFIX_MAPPING 变量允许的值是以逗号分隔的 POOLNAME-DATABASETYPE=PREFIX triplets 列表。每个 triplet 都包含以下值:

  • POOLNAME 用作数据源中的 pool-name
  • DATABASETYPE 是要使用的数据库驱动程序。
  • PREFIX 是用来配置数据源的环境变量名称中的前缀。

对于每个在 DB_SERVICE_PREFIX_MAPPING 环境变量中定义的 POOLNAME-DATABASETYPE=PREFIX triplet,启动脚本都会创建一个单独的数据源,在运行镜像时执行。

A.4. 用于 OpenShift 兼容环境变量的 JWS

您可以使用 source-to-image (S2I) build 命令包含环境变量来修改构建配置。如需更多信息,请参阅 Maven 工件存储库镜像和 JWS for OpenShift

下表列出了 Red Hat JBoss Web Server for OpenShift 镜像的有效环境变量:

Expand
变量名称显示名称Description值示例

ARTIFACT_DIR

N/A

此目录中的 .war.ear、和 .jar 文件将复制到 deployments 目录中

target

APPLICATION_NAME

应用程序名称

应用程序的名称

jws-app

CONTEXT_DIR

上下文目录

构建 Git 项目中的路径;根项目目录为空

tomcat-websocket-chat

GITHUB_WEBHOOK_SECRET

GitHub Webhook Secret

GitHub 触发器 secret

表达式包括:[a-zA-Z0-9]{8}

GENERIC_WEBHOOK_SECRET

通用 Webhook Secret

通用构建触发器 secret

表达式包括:[a-zA-Z0-9]{8}

HOSTNAME_HTTP

自定义 HTTP 路由主机名

http 服务路由的自定义主机名。为默认主机名留空

<application-name>-<project>.<default-domain-suffix>

HOSTNAME_HTTPS

自定义 HTTPS 路由主机名

https 服务路由的自定义主机名。为默认主机名留空

<application-name>-<project>.<default-domain-suffix>

IMAGE_STREAM_NAMESPACE

镜像流命名空间

安装 Red Hat Middleware 镜像的 ImageStreams 的命名空间

openshift

JWS_HTTPS_SECRET

Secret 名称

包含证书文件的 secret 名称

jws-app-secret

JWS_HTTPS_CERTIFICATE

证书名称

secret 中的证书文件的名称

server.crt

JWS_HTTPS_CERTIFICATE_KEY

证书密钥名称

secret 中证书密钥文件的名称

server.key

JWS_HTTPS_CERTIFICATE_PASSWORD

证书密码

证书密码

P5ssw0rd

SOURCE_REPOSITORY_URL

Git 存储库 URL

应用程序的 Git 源 URI

https://github.com/jboss-openshift/openshift-quickstarts.git

SOURCE_REPOSITORY_REFERENCE

Git 参考

Git 分支/标签参考

1.2

IMAGE_STREAM_NAMESPACE

镜像流命名空间

安装 Red Hat Middleware 镜像的 ImageStreams 的命名空间

openshift

MAVEN_MIRROR_URL

Maven Mirror URL

用于配置的 Maven 镜像/存储库管理器的 URL。

http://10.0.0.1:8080/repository/internal/

附录 B. 用于 OpenShift 的 JWS 上的 valves

您可以定义以下环境变量,将 valve 组件插入到关联的 Catalina 容器的请求处理管道中。

Expand
变量名称描述值示例默认值

ENABLE_ACCESS_LOG

启用 Access Log Valve 将访问信息记录到标准输出频道。

true

false

附录 C. 检查 OpenShift 日志

您可以使用 oc logs 命令查看 OpenShift 日志或控制台为正在运行的容器提供的日志。

流程

  • 输入以下命令:

    $ oc logs -f <pod_name> <container_name>
    Copy to Clipboard Toggle word wrap
    注意

    在前面的命令中,将 <pod_name><container_name> 替换为您的部署的适当值。

    访问日志存储在 /opt/jws-5.6/tomcat/logs/ 目录中。

法律通告

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat