由于LB运行状况检查而在保管库节点中出现连续TLS握手错误日志

问题描述

由于我的负载均衡器每5秒钟对Vault节点执行一次ping操作,因此每5秒钟会出现连续的TLS握手错误。 Kube负载均衡器正在使用ping我的保管库节点

nc -vz podip podPort每5秒

我已经在config.hcl中禁用了客户端证书验证,但是仍然在库的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 config map加载



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

由于我使用的是外部开源文件库映像,并且我的负载均衡器是内部LB(具有内部CA证书)。我怀疑我的保管箱Pod在尝试ping端口8200(TCP侦听器由该端口上的保管库启动)时无法识别我的负载均衡器提供的CA证书。

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

即使我明确指定了tls_disable_client_certs = "true"

,有人可以帮助您理解为什么Vault TCP侦听器试图进行TLS握手的原因

当我的LB尝试使用nc -vz podip podPort对我的豆荚进行健康检查时,这些日志每隔5秒就会淹没我的豆荚。

我的保管库版本为1.5.3

解决方法

这些消息与客户端证书或CA证书无关,无论客户端是否提供证书,都会进行TLS握手。

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

您正确地说这是无害的,这纯粹是端口运行状况健康检查的副作用。但是,它既垃圾又令人讨厌。

您可以通过两种基本方法解决此问题:

  1. 在保留消息时从日志中过滤掉消息
  2. 更改为其他类型的健康检查

我建议第二个选项:切换到其他健康检查。保险柜有一个/sys/health端点,可用于HTTPS健康检查。

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...