Spring boot 准备就绪探测失败,状态代码:401

Spring boot 准备就绪探测失败,状态代码:401,spring-boot,kubernetes,Spring Boot,Kubernetes,我正试图在部署yaml文件上启用准备就绪探测,如下所示,但准备就绪探测失败:HTTP探测失败,状态码为:401,我通过解码密码进行验证,我的授权码是正确的 spec: containers: - name: mycontainer image: myimage env: - name: MY_SECRET valueFrom: secretKeyRef: name: actuator-token

我正试图在部署yaml文件上启用准备就绪探测,如下所示,但准备就绪探测失败:
HTTP探测失败,状态码为:401
,我通过解码密码进行验证,我的授权码是正确的

spec:
  containers:
  - name: mycontainer
    image: myimage
    env:
      - name: MY_SECRET
        valueFrom:
          secretKeyRef:
            name: actuator-token
            key: token
    livenessProbe:
        httpGet:
          path: test/actuator/health
          port: 9001
          httpHeaders:
          - name: Authorization
            value: $MY_SECRET
更新 如果我在值字段中硬编码令牌。。它很好用


非常感谢您的帮助。

这个秘密只能在容器中访问,因此通常的活动性探测(从k8s内部容器中运行)无法解决此问题,请仔细阅读

一种解决方法是将livenessProbe作为pod本身中的命令运行:

 livenessProbe:
    exec:
      command:
      - bash 
      - "-c" 
      - | 
        curl http://localhost:9001/test/actuator/health --header "Authorization: $MY_TOKEN"


您可能需要修改curl语法以使其正常工作

reference供您查看。。你能证实你是怎么创造这个秘密的吗。。在pod运行时,您用于定义机密并验证env varaibe MY_secret的实际值的步骤。能否显示
kubectl get secrets促动器令牌-o yaml
的输出。顺便问一下,kubernetes的版本是什么?