当前位置: 首页 > 知识库问答 >
问题:

在Kubernetes,我怎么能检测到我的吊舱已经准备好了呢?

吴康平
2023-03-14

共有1个答案

孟跃
2023-03-14

或许可以实现您自己的健康检查。当您第一次发现一切都ok时,运行您的代码

我使用一个静态变量,首先检查thealthcheckok。您的逻辑应该只运行一次。

我假设您正在运行Spring-Boot2.x,并在http://localhost:8080/actulator/health上调用准备状态探测

import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.stereotype.Component;

@Component
public class HealthCheck implements HealthIndicator {

    static boolean firstHealthCheckOK = false;

    @Override
    public Health health() {
        int errorCode = check(); // perform health check
        if (errorCode != 0) {
            return Health.down()
              .withDetail("Error Code", errorCode).build();
        }
        if (firstHealthCheckOK == false){
            firstHealthCheckOK = true;
            doStartUpLogic();
        }
        return Health.up().build();
    }

    private int check() {
        //some logic
        return 0;
    }

    private void doStartUpLogic() {
        //some startup logic
    }
}
 类似资料:
  • 一个简单的问题。我知道如果Kubernetes活性探测失败,Kubernetes会帮助重新启动吊舱,然后再试一次。但是准备状态探测器失败了呢?我怎么也能让库伯内特斯重启吊舱呢? 重启这个吊舱就能让它工作。谢谢大家!

  • 我相信字段选择器可能有一个bug,但只是想知道是否有任何修复或解决方案的细节。

  • 所以我们有一个迷宫,有墙(W ),开放路径(O ),起点点(S)和终点点(F)。 我试图编写一个算法,采取迷宫文件,然后把它变成一个二维数组的点,使网格。 一旦我有了网格,我想从迷宫中的“S”字符开始,并尝试找到是否有可能穿过“O”到达“f”。(返回布尔值true/false) 我知道这个迷宫是可以解决的,那么为什么我得到了“假”??一定有一个复杂的问题,因为我得到的只是简单的布尔假,而不是“对不

  • 我想看看kubernetes吊舱使用了多少内存和CPU。我为此运行了以下命令: 我收到以下错误: > 如果我们进入pod并运行linux命令,我们会得到相同的输出吗?

  • 这就是我不断得到的: 我有两个吊舱:、,但是如果我使用或使用选项,在这两个吊舱中都看不到任何日志。 这是我的replicationController yaml文件:replicationController yaml文件 我的Docker图像是由这个简单的Docker文件生成的: 有人能帮帮我吗,我怎么能在没有看到任何日志的情况下调试呢?

  • 这是我一直得到的: 如果我通过“docker run”运行docker映像,我就可以毫无问题地运行映像,只是通过kubernetes我得到了崩溃。 有人能帮帮我吗,我怎么能在没有看到任何日志的情况下调试呢?