HashicorpVault - 客户端向 HTTPS 服务器发送 HTTP 请求 - 准备探针

2023-11-21

目前存在一个问题,即部署 Vault Helm 图表时就绪探针失败。 Vault 正在工作,但每当我描述 Pod 时都会出现此错误。我如何让探测器使用 HTTPS 而不是 HTTP 如果有人知道如何解决这个问题我会很高兴慢慢失去理智?

Kubectl 描述 pod

Name:         vault-0
Namespace:    default
Priority:     0
Node:         ip-192-168-221-250.eu-west-2.compute.internal/192.168.221.250
Start Time:   Mon, 24 Aug 2020 16:41:59 +0100
Labels:       app.kubernetes.io/instance=vault
              app.kubernetes.io/name=vault
              component=server
              controller-revision-hash=vault-768cd675b9
              helm.sh/chart=vault-0.6.0
              statefulset.kubernetes.io/pod-name=vault-0
Annotations:  kubernetes.io/psp: eks.privileged
Status:       Running
IP:           192.168.221.251
IPs:
  IP:           192.168.221.251
Controlled By:  StatefulSet/vault
Containers:
  vault:
    Container ID:  docker://445d7cdc34cd01ef1d3a46f2d235cb20a94e48279db3fcdd84014d607af2fe1c
    Image:         vault:1.4.2
    Image ID:      docker-pullable://vault@sha256:12587718b79dc5aff542c410d0bcb97e7fa08a6b4a8d142c74464a9df0c76d4f
    Ports:         8200/TCP, 8201/TCP, 8202/TCP
    Host Ports:    0/TCP, 0/TCP, 0/TCP
    Command:
      /bin/sh
      -ec
    Args:
      sed -E "s/HOST_IP/${HOST_IP?}/g" /vault/config/extraconfig-from-values.hcl > /tmp/storageconfig.hcl;
      sed -Ei "s/POD_IP/${POD_IP?}/g" /tmp/storageconfig.hcl;
      /usr/local/bin/docker-entrypoint.sh vault server -config=/tmp/storageconfig.hcl

    State:          Running
      Started:      Mon, 24 Aug 2020 16:42:00 +0100
    Ready:          False
    Restart Count:  0
    Readiness:      exec [/bin/sh -ec vault status -tls-skip-verify] delay=5s timeout=5s period=3s #success=1 #failure=2
    Environment:
      HOST_IP:               (v1:status.hostIP)
      POD_IP:                (v1:status.podIP)
      VAULT_K8S_POD_NAME:   vault-0 (v1:metadata.name)
      VAULT_K8S_NAMESPACE:  default (v1:metadata.namespace)
      VAULT_ADDR:           http://127.0.0.1:8200
      VAULT_API_ADDR:       http://$(POD_IP):8200
      SKIP_CHOWN:           true
      SKIP_SETCAP:          true
      HOSTNAME:             vault-0 (v1:metadata.name)
      VAULT_CLUSTER_ADDR:   https://$(HOSTNAME).vault-internal:8201
      HOME:                 /home/vault
      VAULT_CACERT:         /vault/userconfig/vault-server-tls/vault.ca
    Mounts:
      /home/vault from home (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from vault-token-cv9vx (ro)
      /vault/config from config (rw)
      /vault/userconfig/vault-server-tls from userconfig-vault-server-tls (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  config:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      vault-config
    Optional:  false
  userconfig-vault-server-tls:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  vault-server-tls
    Optional:    false
  home:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  vault-token-cv9vx:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  vault-token-cv9vx
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason     Age   From                                                    Message
  ----     ------     ----  ----                                                    -------
  Normal   Scheduled  7s    default-scheduler                                       Successfully assigned default/vault-0 to ip-192-168-221-250.eu-west-2.compute.internal
  Normal   Pulled     6s    kubelet, ip-192-168-221-250.eu-west-2.compute.internal  Container image "vault:1.4.2" already present on machine
  Normal   Created    6s    kubelet, ip-192-168-221-250.eu-west-2.compute.internal  Created container vault
  Normal   Started    6s    kubelet, ip-192-168-221-250.eu-west-2.compute.internal  Started container vault
  Warning  Unhealthy  0s    kubelet, ip-192-168-221-250.eu-west-2.compute.internal  Readiness probe failed: Error checking seal status: Error making API request.

URL: GET http://127.0.0.1:8200/v1/sys/seal-status
Code: 400. Raw Message:

Client sent an HTTP request to an HTTPS server.

保管库配置文件

# global:
#   tlsDisable: false

injector:
  enabled: false

server:
  extraEnvironmentVars:
    VAULT_CACERT: /vault/userconfig/vault-server-tls/vault.ca

  extraVolumes:
  - type: secret
    name: vault-server-tls # Matches the ${SECRET_NAME} from above
  affinity: ""
  readinessProbe:
    enabled: true
    path: /v1/sys/health
  # # livelinessProbe:
  # #   enabled: true
  # #   path: /v1/sys/health?standbyok=true
  # #   initialDelaySeconds: 60
  ha:
    enabled: true

    config: |
      ui = true

      api_addr = "https://127.0.0.1:8200" # Unsure if this is correct

      storage "dynamodb" {
        ha_enabled = "true"
        region     = "eu-west-2"
        table      = "global-vault-data"
        access_key = "KEY"
        secret_key = "SECRET"
      }

      # listener "tcp" {
      #     address = "0.0.0.0:8200"
      #     tls_disable = "true"
      # }

      listener "tcp" {
        address = "0.0.0.0:8200"
        cluster_address = "0.0.0.0:8201"
        tls_cert_file = "/vault/userconfig/vault-server-tls/vault.crt"
        tls_key_file  = "/vault/userconfig/vault-server-tls/vault.key"
        tls_client_ca_file = "/vault/userconfig/vault-server-tls/vault.ca"
      }

      seal "awskms" {
        region     = "eu-west-2"
        access_key = "KEY"
        secret_key = "SECRET"
        kms_key_id = "ID"
      }
ui:
  enabled: true
  serviceType: LoadBalancer

在您的环境变量定义中,您有:

VAULT_ADDR:           http://127.0.0.1:8200

并且您的 Vault 配置中禁用了非 TLS(启用了 TLS):

      listener "tcp" {
        address = "0.0.0.0:8200"
        cluster_address = "0.0.0.0:8201"
        tls_cert_file = "/vault/userconfig/vault-server-tls/vault.crt"
        tls_key_file  = "/vault/userconfig/vault-server-tls/vault.key"
        tls_client_ca_file = "/vault/userconfig/vault-server-tls/vault.ca"
      }

您的 Readiness 探针正在 pod 中执行:

vault status -tls-skip-verify

所以这正在尝试连接到http://127.0.0.1:8200,您可以尝试更改环境变量以使用 HTTPS:VAULT_ADDR=https://127.0.0.1:8200

您的配置和环境变量不匹配可能会遇到另一个(不同的)问题:

K8s清单:

VAULT_API_ADDR:       http://$(POD_IP):8200

保险库配置:

api_addr = "https://127.0.0.1:8200"

✌️

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HashicorpVault - 客户端向 HTTPS 服务器发送 HTTP 请求 - 准备探针 的相关文章

随机推荐

  • 将 key=value 对转换回 Python 字典

    有一个日志文件 其中的文本以空格分隔key value对 每行最初都是从 Python 字典中的数据序列化的 类似于 join f k v r for k v in d items 键始终只是字符串 这些值可以是任何值ast literal
  • Keras 自定义指标迭代

    我对 Keras 还很陌生 我正在尝试定义自己的指标 它计算一致性指数 这是回归问题的度量 def cindex score y true y pred sum 0 pair 0 for i in range 1 len y true fo
  • 如何在 Angular/ionic 网站中实施 AMP?

    最近我听说了 Accelerated Mobile Pages 项目 并阅读了一些有关它的信息 我想知道如何为基于 Ionic 和 Angular 构建的现有网站实现它 基本上没有几乎可能的解决方案可以做到这一点 如果你检查文档here 让
  • Android Studio 无法启动

    安装Android Studio后 我启动了它 但它没有开始 我打开任务管理器看到多了两个执行顺序 Cmd exe and conhost exe 我的系统版本是Windows 7 Ultimate 64bit 有什么想法如何解决这个问题吗
  • 在 Web API / APIController 中控制序列化

    在 ASP NET Web API 中哪里可以指定自定义序列化 反序列化 我们应用程序的吞吐量需要消息的快速序列化 反序列化 因此我们需要严格控制这部分代码以使用我们的自制程序或 OSS 我检查了各种来源 例如this这解释了如何创建自定义
  • 当注释有参数时,CDI 拦截器不起作用

    我正在尝试实现一个 Restricted注释 以用户只有在登录并具有特定角色时才能访问它们的方式保护控制器方法 我在 Tomcat 7 上使用 JSF 和 CDI 所以没有 EJB 只要注释接口不指定任何参数 拦截器就会被调用 一旦我添加一
  • JAXB 文档注释

    我有以下带有 JAXB XMLRootElement 注释的 java 类 XmlRootElement name ClientData public class ClientData The first address field of
  • 由于内存问题导致realloc失败时如何处理?

    问题说明了一切 但这是一个例子 typedef struct mutable t int count max void data mutable t void pushMutable mutable t m void object if m
  • 将字符串中的一些小写字母更改为大写

    index 0 2 5 s I am like stackoverflow python for i in index s s i upper print s IndexError string index out of range 我知道
  • 使用 getopt 向命令行选项提供两个参数[重复]

    这个问题在这里已经有答案了 使用时是否有其他方法将两个参数作为单个字符串传递给选项getopt 通常我会执行以下操作 command o key value command arguments 然后我必须明确地分割参数字符串 while o
  • 如何获取ng-bootstrap中Dropdown的值?

    我正在使用 ng bootstrap 我想在选择时获取下拉列表的值 div class col text right div class d inline block div div
  • 如何从部分视图获取父视图

    我有一个部分视图作为 Layout cshtml 的一部分 以便它可以在多个页面上呈现 将部分视图视为显示在网站每个页面上的菜单 当单击部分视图菜单中的这些链接之一时 我只能在称为部分视图的操作方法中访问 查看 如它的名称等 但我真正需要的
  • 无法更改视图的默认布局边距

    从ios 8 0开始 视图有额外的layoutMargins默认情况下 每边都有 8 分值 当我尝试更改边距时viewDidLoad它似乎对孩子的看法没有影响 override func viewDidLoad super viewDidL
  • Python lambda函数打印 at 0x7fcbbc740668>而不是值

    我是 python 的初学者 我正在研究 lambda 函数 我正在编写一个程序 使用 lambda 函数来打印输入字符的 ascii 值 1 的字符 我的代码是 usr bin python import sys try word sys
  • NoClassDefFoundError:org/slf4j/Logger

    我将 Log4J2 添加到我的应用程序中 我将所有 Log4J2 jar 文件复制到 LIB 目录并创建 Log4J2 xml 文件来支持它 我的代码已更新以导入必要的日志管理器和记录器 API 然后 我添加了静态最终记录器方法 并在代码中
  • 什么时候可以捕获 NullPointerException?

    有效的java建议我们不应该catch NullPointerException 总是对的吗 在很多抓捕的情况下NullPointerException 仅捕获正文调用printStackTrace 如果我没抓住NullPointerExc
  • Azure管道根据条件设置任务的显示名称

    在构建管道中 我有一个使用 powershell 脚本的工作 该脚本根据如下变量设置应用程序名称 applicationName If configuration eq Release Appname Else Appname Test W
  • Plotly:如何设置 x 轴上时间序列的主要刻度/网格线的值?

    背景 这个问题与以下问题相关 但不完全相同 Plotly 如何检索主要刻度线和网格线的值 类似的问题也被问过但没有得到解答绘图库 here 如何将主要刻度显示为每月的第一天 将次要刻度显示为每天 情节太棒了 也许唯一困扰我的是刻度线 网格线
  • Android 上的 Scala:java.lang.NoSuchMethodError:java.lang.String.isEmpty

    我在 Android 2 2 1 上遇到以下异常 java lang NoSuchMethodError java lang String isEmpty 我正在打电话text isEmpty来自斯卡拉 任何想法 如何解决这个问题 java
  • HashicorpVault - 客户端向 HTTPS 服务器发送 HTTP 请求 - 准备探针

    目前存在一个问题 即部署 Vault Helm 图表时就绪探针失败 Vault 正在工作 但每当我描述 Pod 时都会出现此错误 我如何让探测器使用 HTTPS 而不是 HTTP 如果有人知道如何解决这个问题我会很高兴慢慢失去理智 Kube