Kubernetes 中使用 NEST 的 ElasticSearch

问题描述 投票:0回答:1

我正在学习 Kubernetes 并尝试部署 ElasticSearch 和 Kibana。在 ElasticSearch v8 中。 https 是默认值。

https://www.elastic.co/guide/en/elasticsearch/client/net-api/7.17/connecting-to-elasticsearch-v8.html

我尝试为这样的文档建立索引

var settings = new ConnectionSettings(new Uri("https://localhost:9200"))
                        .BasicAuthentication("elastic", "0fjaNokbmHSeS4kXeFV")
                        .DefaultIndex("people")
                        .RequestTimeout(TimeSpan.FromSeconds(300));

var client = new ElasticClient(settings);

var person = new Person
{
    Id = 1,
    FirstName = "Abc",
    LastName = "Abc"
};

var indexResponse = client.IndexDocument(person);

if (!indexResponse.IsValid)
{
    var debugInfo = indexResponse.DebugInformation;
    var error = indexResponse.OriginalException;
}

但这不起作用。即使我也可以使用此凭据浏览 https://localhost:9200 elastic/0fjaNokbmHSeS4kXeFV

我尝试为我的入口添加 https 并将服务调用到 IndexDocument,但它也不起作用。

有人遇到过这个问题吗?可以帮我运行一下吗?

NEST 抛出的异常

从 PUT 上不成功的 () 低级调用构建的无效 NEST 响应:/platforms/_doc/1

此 API 调用的审计跟踪:

  • 1 ProductCheckOnStartup:拍摄:00:00:00.0501715
  • [2] ProductCheckFailure:节点:https://localhost:9200/ 获取:00:00:00.0484845

OriginalException:Elasticsearch.Net.ElasticsearchClientException:由于产品检查调用不成功,客户端无法验证服务器是否为 Elasticsearch。如果服务器运行不受支持的产品,某些功能可能不兼容。呼叫:状态代码未知,来自:GET /

---> Elasticsearch.Net.PipelineException:由于产品检查调用不成功,客户端无法验证服务器是否为 Elasticsearch。如果服务器运行不受支持的产品,某些功能可能不兼容。 ---> System.Net.Http.HttpRequestException: 无法建立 SSL 连接,请参阅内部异常。 ---> System.Security.Authentication.AuthenticationException:根据验证过程,远程证书无效:RemoteCertificateNameMismatch、RemoteCertificateChainErrors 在 System.Net.Security.SslStream.SendAuthResetSignal(ProtocolToken 消息,ExceptionDispatchInfo 异常) 在 System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter 适配器,布尔值 receiveFirst,字节 [] reAuthenticationData,布尔值 isApm) 在 System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(布尔异步,流流,SslClientAuthenticationOptions sslOptions,CancellationToken取消令牌) --- 内部异常堆栈跟踪结束 --- 在 System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(布尔异步,流流,SslClientAuthenticationOptions sslOptions,CancellationToken取消令牌) 在System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage请求,布尔异步,CancellationToken取消令牌) 在System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage请求,布尔异步,CancellationToken取消令牌) 在 System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage 请求,布尔异步,CancellationToken CancellationToken) 在 System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage 请求,布尔异步,布尔 doRequestAuth,CancellationToken CancellationToken) 在System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage请求,布尔异步,CancellationToken取消令牌) 在 System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage 请求,布尔异步,CancellationToken CancellationToken) 在System.Net.Http.HttpClient.SendAsyncCore(HttpRequestMessage请求,HttpCompletionOption完成选项,布尔异步,布尔emitTelemetryStartStop,CancellationToken取消令牌) 在 Elasticsearch.Net.HttpConnection.RequestAsync[TResponse](RequestData requestData, CancellationToken CancellationToken) --- 内部异常堆栈跟踪结束 --- 在 Elasticsearch.Net.RequestPipeline.ThrowIfTransientProductCheckFailure() 在Elasticsearch.Net.RequestPipeline.PingAsync(节点节点,CancellationToken取消令牌) 在Elasticsearch.Net.Transport

1.PingAsync(IRequestPipeline pipeline, Node node, CancellationToken cancellationToken) at Elasticsearch.Net.Transport
1.RequestAsync[TResponse](HttpMethod方法,字符串路径,CancellationToken取消令牌,PostData数据,IRequestParameters requestParameters) --- 内部异常堆栈跟踪结束 ---

要求:

回应:

谢谢并致以诚挚的问候,

asp.net-core elasticsearch kubernetes https kibana
1个回答
0
投票

你找到解决办法了吗?

© www.soinside.com 2019 - 2024. All rights reserved.