首页 > 解决方案 > Azure 服务总线无法连接到 kubernetes docker

问题描述

当我尝试在本地机器/本地 docker 中访问我的 sb 端点时,它会毫无问题地获取数据,但是当我尝试跨 kubernetes 集群(docker)访问它时,与套接字的连接失败。是否有任何 SDK/configs/依赖项我必须安装在我的 docker 中才能访问 SB。错误如下所示。

Found /start.sh, running...
Initializing Client...
[INFO] [2020-07-14 16:00:06] 'eventhub.pysdk-b0fab61b': Created the Event Hub client
[INFO] [2020-07-14 16:00:06] Connection b'bc610657-4dbf-4bc2-aa39-38b6889e6047' state changed from <ConnectionState.UNKNOWN: 999> to <ConnectionState.START: 0>
[INFO] [2020-07-14 16:00:16] b'Failure: select failure.' (b'/data/src/vendor/azure-uamqp-c/deps/azure-c-shared-utility/adapters/socketio_berkeley.c':b'wait_for_connection':370)
[INFO] [2020-07-14 16:00:16] b'wait_for_connection failed' (b'/data/src/vendor/azure-uamqp-c/deps/azure-c-shared-utility/adapters/socketio_berkeley.c':b'socketio_open':770)
[INFO] [2020-07-14 16:00:16] b'Closing tlsio from a state other than TLSIO_STATE_EXT_OPEN or TLSIO_STATE_EXT_ERROR'
[INFO] [2020-07-14 16:00:16] b'Invalid tlsio_state. Expected state is TLSIO_STATE_OPENING_UNDERLYING_IO.' (b'/data/src/vendor/azure-uamqp-c/deps/azure-c-shared-utility/adapters/tlsio_openssl.c':b'on_underlying_io_open_complete':760)
[INFO] [2020-07-14 16:00:16] b'Failed opening the underlying I/O.' (b'/data/src/vendor/azure-uamqp-c/deps/azure-c-shared-utility/adapters/tlsio_openssl.c':b'tlsio_openssl_open':1258)
[INFO] [2020-07-14 16:00:16] b'xio_open failed' (b'/data/src/vendor/azure-uamqp-c/src/saslclientio.c':b'saslclientio_open_async':1097)
[INFO] [2020-07-14 16:00:16] b'Opening the underlying IO failed' (b'/data/src/vendor/azure-uamqp-c/src/connection.c':b'connection_open':1344)
[INFO] [2020-07-14 16:00:16] Connection b'bc610657-4dbf-4bc2-aa39-38b6889e6047' state changed from <ConnectionState.START: 0> to <ConnectionState.END: 13>
[INFO] [2020-07-14 16:00:16] Connection with ID b'bc610657-4dbf-4bc2-aa39-38b6889e6047' unexpectedly in an error state. Closing: False, Error: None
[INFO] [2020-07-14 16:00:16] b'Begin session failed' (b'/data/src/vendor/azure-uamqp-c/src/link.c':b'link_attach':1282)
[INFO] [2020-07-14 16:00:16] b'Link attach failed' (b'/data/src/vendor/azure-uamqp-c/src/message_receiver.c':b'messagereceiver_open':381)
[INFO] [2020-07-14 16:00:16] b'AMQP management instance not open' (b'/data/src/vendor/azure-uamqp-c/src/amqp_management.c':b'amqp_management_close':1029)
[INFO] [2020-07-14 16:00:16] CBS for connection b'bc610657-4dbf-4bc2-aa39-38b6889e6047' completed opening with status: 1
[INFO] [2020-07-14 16:00:16] b'Failed opening message receiver' (b'/data/src/vendor/azure-uamqp-c/src/amqp_management.c':b'amqp_management_open_async':990)
/start.sh complete - exit status_code=1

标签: azuredockerdockerfileazureservicebusazure-eventhub

解决方案


虽然我不能声称对 docker 非常熟悉(但我是 Python 的 ServiceBus sdk 维护者之一),但这似乎属于“网络完全不可用”错误的广泛类别。我首先要确保标准 AMQP 端口(5671/15671)是开放的,并且对于容器+本地网络正确暴露(可能是双向的)。

抱歉,如果这更适合作为评论,因果报应让我无法这样做,如果这似乎没有帮助,请不要犹豫。


推荐阅读