Ssl 由于LB运行状况检查,vault节点中的连续TLS握手错误日志

Ssl 由于LB运行状况检查,vault节点中的连续TLS握手错误日志,ssl,tcp,load-balancing,hashicorp-vault,kubernetes-health-check,Ssl,Tcp,Load Balancing,Hashicorp Vault,Kubernetes Health Check,由于负载平衡器每5秒ping一次vault节点,我每5秒就会收到连续的TLS握手错误。Kube负载平衡器正在使用ping ping我的vault节点 nc-vz-podip podPort每5秒 我已经在config.hcl中禁用了客户端证书验证,但仍然可以在vault的kubectl日志中看到以下日志 kubectl logs pod-0 -n mynamespace [INFO] http: TLS handshake error from 10.x.x.x:60056: EOF 202

由于负载平衡器每5秒ping一次vault节点,我每5秒就会收到连续的TLS握手错误。Kube负载平衡器正在使用ping ping我的vault节点

nc-vz-podip podPort
每5秒

我已经在config.hcl中禁用了客户端证书验证,但仍然可以在vault的kubectl日志中看到以下日志

kubectl logs pod-0 -n mynamespace 
[INFO]  http: TLS handshake error from 10.x.x.x:60056: EOF 2020-09-02T01:13:32.957Z 
[INFO]  http: TLS handshake error from 10.x.x.x:23995: EOF 2020-09-02T01:13:37.957Z 
[INFO]  http: TLS handshake error from 10.x.x.x:54165: EOF 2020-09-02T01:13:42.957Z 
下面是我的config.hcl,我正在通过kube配置映射加载它



apiVersion: v1
kind: ConfigMap
metadata:
  name: raft-config
  labels:
    name: raft-config
data:
  config.hcl: |
    storage "raft" {
      path  = "/vault-data"
      tls_skip_verify = "true"
      retry_join {
        leader_api_addr = "https://vault-cluster-0:8200"
        leader_ca_cert_file = "/opt/ca/vault.crt"
        leader_client_cert_file = "/opt/ca/vault.crt"
        leader_client_key_file = "/opt/ca/vault.key"
      }
      retry_join {
        leader_api_addr = "https://vault-cluster-1:8200"
        leader_ca_cert_file = "/opt/ca/vault.crt"
        leader_client_cert_file = "/opt/ca/vault.crt"
        leader_client_key_file = "/opt/ca/vault.key"
      }
      retry_join {
        leader_api_addr = "https://vault-cluster-2:8200"
        leader_ca_cert_file = "/opt/ca/vault.crt"
        leader_client_cert_file = "/opt/ca/vault.crt"
        leader_client_key_file = "/opt/ca/vault.key"
      }
    }
    seal "transit" {
     address = "https://vaulttransit:8200"
     disable_renewal = "false"
     key_name = "autounseal"
     mount_path = "transit/"
     tls_skip_verify = "true"
    }
    listener "tcp" {
     address = "0.0.0.0:8200"
     tls_cert_file = "/opt/ca/vault.crt"
     tls_key_file = "/opt/ca/vault.key"
     tls_skip_verify = "true"
     tls_disable_client_certs = "true"
    }
    ui=true
    disable_mlock = true
因为我使用的是外部开源vault映像,我的负载平衡器是一个内部LB(具有内部CA证书)。我怀疑我的vault pod在尝试ping端口8200时无法识别负载平衡器提供的CA证书(TCP侦听器由vault在此端口上启动)

这些日志是无害的,不会引起任何问题,但它们是我想要避免的不必要的噪音。我的vault节点正在使用https,其功能似乎没有问题

尽管我已明确指定了
TLS\u disable\u client\u certs=“true”

当我的LB尝试使用
nc-vz-podip podPort


My vault版本为1.5.3

消息与客户端证书或CA证书无关,无论客户端是否提供证书,都会发生TLS握手

相反,这是因为创建并建立了TCP连接,并且Go库现在想要启动TLS握手。相反,另一方(健康检查器)只是挂断,TLS握手从未发生。Go然后记录此消息

你说它是无害的是正确的,这纯粹是港口活力健康检查的副作用。然而,这是垃圾和恼人的

你有两个基本的选择来解决这个问题:

  • 持久化日志时,从日志中筛选消息
  • 更改为其他类型的健康检查
  • 我推荐第二个选项:切换到其他健康检查。Vault具有可用于HTTPS运行状况检查的端点


    除了删除TLS警告消息外,运行状况端点还允许您检查活动节点和未密封节点。

    感谢您的解释。不幸的是,禁用运行状况检查对我来说不是一个选项,因为负载平衡器属于我组织中的另一个团队。vault本身有什么方法可以禁用这种噪音吗?没有。我从来没有说过禁用健康检查,只是为了更改执行的健康检查的类型。与其他团队交谈并让他们进行更改,
    /sys/health
    检查提供了更好的功能,并将使您的vault部署更加可靠。我可以使用pod中的就绪探测器将健康检查移动到/sys/health。但这不会停止TCP健康检查,因为这超出了我的控制范围,属于其他团队,因此不会停止垃圾邮件。但至少我知道这只是噪音,可能只是忽略它。