我想远程调试我的自定义连接器,这是我在Kubernetes上部署Strimzi Kafka操作员的一部分。
在本地(例如,使用docker映像(,这可以通过添加JAVA_TOOL_OPTIONS
作为具有以下值的环境参数来完成:-agentlib:jdwp=transport=dt_socket,address=*:5005,server=y,suspend=n
,并在docker运行命令中暴露5005端口。
然而,在k8s中,我还应该将端口5005添加到部署中,这样我就可以使用nodeport(或其他东西(在集群之外公开部署的调试端口(5005((这样我的IDE就可以连接到它(。
但是,我没有能力更改已创建的KafkaConnect部署的暴露端口(毕竟,您只能应用KafkaConnection自定义资源,并且部署是作为其一部分创建的(。
有没有远程调试此连接器的解决方法?或者斯特里姆齐有什么配置值?
一旦停止strimzi协调,就可以像通常进行远程调试一样进行。
完成后,删除strimzi.io/ause-recommission:"真";从Kafka Connect资源,这将把集群恢复到原始状态
- 调整Kafka Connect资源1.1向Kafka Connect资源添加新的环境变量
-name:JAVA_TOOL_OPTIONS
值:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
1.2应用更改并等待部署结束
1.3添加新的注释
strimzi.io/ause-recommission:"真">
1.4应用更改 - 更新Kafka Connect部署并添加新端口(与JAVA_TOOL_OPTIONS中的端口匹配(
- 名称:调试
容器端口:5005
协议:TCP
- 名称:调试
- 创建一个NodePort服务,将Kafka Connect的端口5005映射到某个NodePort(比如35005(
- 添加远程调试配置3.1主机应该是k8s节点之一
3.2端口与您在NodePort中定义的端口相同(在我们的示例中为35005(
3.3应用
现在您可以使用创建的配置进行调试。