WildFly Kubernetes 执行探测

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(126)   2024-03-30 16:20:44

Liveness 和 Readiness 探测器告诉 Kubernetes 一个 pod 是否正在运行并准备好做一些工作。企业应用程序可以通过 HTTP 探测应用程序的状态。如果没有公开 HTTP 端点,Kubernetes 也可以通过执行命令进行探测。

WildFly 附带有用的 jboss-cli.sh。此 CLI 检索有关服务器和部署状态的信息,如下所示:

$> ./jboss-cli.sh --connect --commands="ls"

[...]
process-type=Server
product-name=WildFly Full
product-version=11.0.0.Final
[...]
server-state=running
suspend-state=RUNNING
uuid=c52658a9-ca39-4548-9879-162cd6e14d93

我们可以结合一个 shell 命令来检查正在运行的服务器:./jboss-cli.sh --connect --commands=ls | grep "server-state=running"

类似的命令为我们提供了已部署的应用程序:

$> ./jboss-cli.sh --connect --commands="ls deployment"

hello.war

我们再次编写一个 shell 命令来检查我们的应用程序是否已成功部署:./jboss-cli.sh --connect --commands="ls deployment" | grep "hello.war"

现在让我们将这些命令插入到 YAML 描述符中:

...
  containers:
  - name: hello-joker
    image: docker.example.com/hello:1
    imagePullPolicy: IfNotPresent
    livenessProbe:
      exec:
        command:
          - /bin/sh
          - -c
          - /opt/jboss/wildfly/bin/jboss-cli.sh --connect --commands=ls | grep 'server-state=running'
    readinessProbe:
      exec:
        command:
          - /bin/sh
          - -c
          - /opt/jboss/wildfly/bin/jboss-cli.sh --connect --commands='ls deployment' | grep 'hello.war'
...

如果您的应用程序发出状态或“ping”资源,更简单的方法是通过 HTTP 探测 pod,如这篇文章中所示。

快乐的应用程序探索!

觉得帖子有用?订阅我的时事通讯以获取更多有关 IT 和 Java 的免费内容、提示和技巧:

成功!现在检查您的电子邮件以确认您的订阅。

标签2: Java教程
地址:https://www.cundage.com/article/jcg-wildfly-kubernetes-exec-probes.html

相关阅读

Java HashSet 教程展示了如何使用 Java HashSet 集合。 Java哈希集 HashSet 是一个不包含重复元素的集合。此类为基本操作(添加、删除、包含和大小)提供恒定时间性...
SpringApplicationBuilder 教程展示了如何使用 SpringApplicationBuilder 创建一个简单的 Spring Boot 应用程序。 春天 是用于创建企业应...
通道是继 buffers 之后 java.nio 的第二个主要新增内容,我们在之前的教程中已经详细了解了这一点。通道提供与 I/O 服务的直接连接。 通道是一种在字节缓冲区和通道另一端的实体(通...
课程大纲 Elasticsearch 是一个基于 Lucene 的搜索引擎。它提供了一个分布式的、支持多租户的全文搜索引擎,带有 HTTP Web 界面和无模式的 JSON 文档。 Elasti...
解析器是强大的工具,使用 ANTLR 可以编写可用于多种不同语言的各种解析器。 在这个完整的教程中,我们将: 解释基础:什么是解析器,它可以用来做什么 查看如何设置 ANTLR 以便在 Java...
Java 是用于开发各种桌面应用程序、Web 应用程序和移动应用程序的最流行的编程语言之一。以下文章将帮助您快速熟悉 Java 语言,并迈向 API 和云开发等更复杂的概念。 1. Java语言...
Java中的继承是指子类继承或获取父类的所有非私有属性和行为的能力。继承是面向对象编程的四大支柱之一,用于提高层次结构中类之间的代码可重用性。 在本教程中,我们将了解 Java 支持的继承类型,...
Java Message Service 是一种支持正式通信的 API,称为 网络上计算机之间的消息传递。 JMS 为支持 Java 程序的标准消息协议和消息服务提供了一个通用接口。 JMS 提...
Java 项目中的一项常见任务是将日期格式化或解析为字符串,反之亦然。解析日期意味着你有一个代表日期的字符串,例如“2017-08-3”,你想把它转换成一个代表 Java 中日期的对象,例如Ja...
之前,我介绍了spring 3 + hibernate 集成 示例和struts 2 hello world 示例。在本教程中,我将讨论在将 spring 框架与 struts 与 hibern...