我有一个带有Istio的kubernetes集群。
Inside Pod y有一个nodejs项目,配置了App Insight的
appInsights
.setup(process.env.APP_INSIGHT_INSTRUMENTATION_KEY)
.setAutoDependencyCorrelation(true)
.setAutoCollectRequests(true)
.setAutoCollectPerformance(true, true)
.setAutoCollectExceptions(true)
.setAutoCollectDependencies(true)
.setAutoCollectConsole(true)
.setUseDiskRetryCaching(true)
.setSendLiveMetrics(true)
.setDistributedTracingMode(appInsights.DistributedTracingModes.AI)
.start();
当y在本地测试工作正常时,问题是当我将项目上传到k8s时,我有连接拒绝。
ApplicationInsights:CorrelationIdManager[错误:连接ECONNREFUSED 40.71.13.169:443在TCPConnectWrap.afterConnect[完成](net.js:1145:16(在TCPConnectWrap.callbackTrampoline(internal/async_hooks.js:126:14({错误号:"ECONNREFUSED",代码:"ECONNREFUSED",syscall:"connect",地址:'40.71.13.169',端口:443}]
这可能会发生吗?
您需要允许从防火墙向外连接到Application Insights和Log Analytics使用的IP地址。不确定您是否在Azure中托管您的Kubernetes集群。如果是,它将是连接到群集的VNET的网络安全组,在那里您可以允许"AzureMonitor"出站连接的虚拟网络服务标签,以避免对IP地址的硬依赖。
此外,由于您使用的是Istio,请确保允许从网格出口(尽管默认情况下应在代理中启用(。