gpt4 book ai didi

kubernetes - Apache Ignite:日志中添加了数千条 “Unable to perform handshake within timeout”警告

转载 作者:行者123 更新时间:2023-12-02 12:01:06 24 4
gpt4 key购买 nike

最近,我已将.Net Core 3.1应用程序中运行的Apache Ignite从2.7.5更新为2.8.1,今天,我在日志中注意到了数千条类似的警告

Jun 03 18:26:54 quote-service-us-deployment-5d874d8546-psbcs org.apache.ignite.internal.processors.odbc.ClientListenerNioListener: Site: WARN - Unable to perform handshake within timeout [timeout=10000, remoteAddr=/10.250.0.4:57941]
Jun 03 18:26:59 quote-service-uk-deployment-d644cbc86-7xcvw org.apache.ignite.internal.processors.odbc.ClientListenerNioListener: Site: WARN - Unable to perform handshake within timeout [timeout=10000, remoteAddr=/10.250.0.4:57982]
Jun 03 18:26:59 quote-service-us-deployment-5d874d8546-psbcs org.apache.ignite.internal.processors.odbc.ClientListenerNioListener: Site: WARN - Unable to perform handshake within timeout [timeout=10000, remoteAddr=/10.250.0.4:57985]
Jun 03 18:27:04 quote-service-uk-deployment-d644cbc86-7xcvw org.apache.ignite.internal.processors.odbc.ClientListenerNioListener: Site: WARN - Unable to perform handshake within timeout [timeout=10000, remoteAddr=/10.250.0.4:58050]
Jun 03 18:27:04 quote-service-us-deployment-5d874d8546-psbcs org.apache.ignite.internal.processors.odbc.ClientListenerNioListener: Site: WARN - Unable to perform handshake within timeout [timeout=10000, remoteAddr=/10.250.0.4:58051]
Jun 03 18:27:09 quote-service-uk-deployment-d644cbc86-7xcvw org.apache.ignite.internal.processors.odbc.ClientListenerNioListener: Site: WARN - Unable to perform handshake within timeout [timeout=10000, remoteAddr=/10.250.0.4:58114]
Jun 03 18:27:09 quote-service-us-deployment-5d874d8546-psbcs org.apache.ignite.internal.processors.odbc.ClientListenerNioListener: Site: WARN - Unable to perform handshake within timeout [timeout=10000, remoteAddr=/10.250.0.4:58118]

我没有在我的应用程序中直接使用ODBC或JDBC,并且该应用程序在虚拟网络的Kubernetes集群中运行。有趣的是,在所有情况下,连接另一端的IP(在本例中为10.250.0.4)都属于kube-proxy pod。我对此有些困惑。

UPD:
据报告,相同的IP地址也属于以下Pod:
azure-ip-masq-agent和azure-cni-networkmonitor
(我猜这些都属于我用来运行K8s群集的Azure Kubernetes服务)

因此,网络监视器可能正在尝试访问ODBC端口(只是猜测)。是否有任何机会抑制该警告或完全禁用ODBC连接?我不使用ODBC,但由于偶尔使用DBeaver连接到Ignite实例,所以我想保持JDBC连接启用。谢谢!

最佳答案

如果您已定义服务并打开端口10800,则K8将通过kube-proxy执行运行状况检查。这会导致Ignite在该端口日志上收到不完整的握手消息,即“无法执行握手”消息。

ClientListenerNioListener:站点:WARN-无法在超时内执行握手
[超时= 10000,远程地址= / 10.250.0.4:58050]

在这里,客户端连接器侦听器(ClientListenerNioListener)表示无法在10秒内建立成功的握手,以达到remoteAddr = / 10.250.0.4:58050

配置客户端连接器:https://apacheignite.readme.io/docs/binary-client-protocol#connectivity
客户端连接器握手:https://apacheignite.readme.io/docs/binary-client-protocol#connection-handshake

打开端口10800的服务示例:

kind: Service
metadata:
# The name must be equal to TcpDiscoveryKubernetesIpFinder.serviceName
name: ignite
# The name must be equal to TcpDiscoveryKubernetesIpFinder.namespaceName
namespace: ignite
spec:
type: LoadBalancer
ports:
- name: rest
port: 8080
targetPort: 8080
- name: sql
port: 10800
targetPort: 10800

您可以重新定义服务以不打开端口或将服务定义更新为
使用不同的端口进行运行状况检查:
https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip

从文档:
service.spec.healthCheckNodePort-指定服务的运行状况检查节点端口(数字端口号)。如果未指定healthCheckNodePort,则服务 Controller 将从群集的NodePort范围分配一个端口。您可以通过设置API服务器命令行选项--service-node-port-range来配置该范围。如果客户端指定,它将使用用户指定的healthCheckNodePort值。仅在将类型设置为LoadBalancer并将externalTrafficPolicy设置为Local时,此选项才有效。

关于kubernetes - Apache Ignite:日志中添加了数千条 “Unable to perform handshake within timeout”警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62180592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com