В случае YAML-файла Kubernetes я создал StatefulSet для MongoDB и развертывания. для приложения ASP.NET, а также я создал их уважаемые службы и ConfigMap. Я приложил полный код ниже.
Даже я вижу, что все данные загружаются в базу данных Mongo, когда я использую развертывание Mongo-Express. Итак, я уверен, что MongoDB StatefulSet работает нормально. Теперь единственная проблема заключается в том, что приложение .NET выдает исключение под названием «Ресурс временно недоступен».
О проблеме: сборка работает нормально при выполнении Docker-Compose. Но в случае развертывания кластера Kubernetes выдается следующее исключение:
fail:
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1 ]
Во время выполнения запроса произошло необработанное исключение.
System.TimeoutException: тайм-аут произошел после 30 000 мс при выборе сервера с помощью CompositeServerSelector{ Selectors = MongoDB.Driver.MongoClient+AreSessionsSupportedServerSelector, LatencyLimitingServerSelector {AllowedLatencyRange = 00:00:00.0150000 } }. Клиентское представление состояния кластера: { ClusterId: "1", ConnectionMode: "Автоматический", Тип: "Неизвестно", Состояние: "Отключено", Серверы: [{ ServerId: "{ ClusterId: 1, EndPoint: "Не указано/монго: 27017" }", EndPoint: "Unspecified/mongo:27017", ReasonChanged: "Heartbeat", Состояние: "Отключено", ServerVersion: , TopologyVersion: , Тип: "Unknown", HeartbeatException: "MongoDB.Driver.MongoConnectionException: исключение произошло при открытии соединения с сервером.
System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (00000001, 11): ресурс временно недоступен
at System.Net.Dns.InternalGetHostByName(String hostName)
at System.Net.Dns.ResolveCallback(контекст объекта)
--- Конец трассировки стека из предыдущего места, где было создано исключение ---
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw(источник исключения)
в System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult)
at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult)
at System.Net.Dns.c.b__25_1(IAsyncResult asyncResult)
в System.Threading.Tasks.TaskFactory
Код: Выделить всё
1.FromAsyncCoreLogic(IAsyncResult iar, Func
Код: Выделить всё
1 endAction, Task
--- Конец трассировки стека из предыдущего места, где было создано исключение ---
в MongoDB.Driver.Core. Connections.TcpStreamFactory.ResolveEndPointsAsync(EndPoint Initial)
в MongoDB.Driver.Core.Connections.TcpStreamFactory.CreateStreamAsync(EndPoint endPoint, CancellationToken cancelToken)
в MongoDB.Driver.Core .Connections.BinaryConnection.OpenHelperAsync(CancellationToken cancelToken)
--- Конец внутренней трассировки стека исключений ---
в MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync (CancellationToken cancelToken)
в MongoDB.Driver.Core.Servers.ServerMonitor.InitializeConnectionAsync(CancellationToken cancelToken)
в MongoDB.Driver.Core.Servers.ServerMonitor.HeartbeatAsync(CancellationToken cancelToken)", LastHeartbeatTimestamp: "2022-06-26T16:04:05.7393346Z", LastUpdateTimestamp: "2022-06-26T16:04:05.7393356Z" }] }.
at MongoDB.Driver.Core.Clusters.Cluster.ThrowTimeoutException( Селектор IServerSelector, описание ClusterDescription)
в MongoDB.Driver.Core.Clusters.Cluster.WaitForDescriptionChangedHelper.HandleCompletedTask(Задание завершено)
в MongoDB.Driver.Core.Clusters.Cluster.WaitForDescriptionChanged(селектор IServerSelector, описание ClusterDescription) , Описание задачиChangedTask, тайм-аут TimeSpan, CancellationToken cancelToken)
в MongoDB.Driver.Core.Clusters.Cluster.SelectServer(селектор IServerSelector, CancellationToken cancelToken)
в MongoDB.Driver.MongoClient.AreSessionsSupportedAfterServerSelection(CancellationToken cancelToken)at MongoDB.Driver.MongoClient.AreSessionsSupported(CancellationToken cancelToken)
at MongoDB.Driver.MongoClient.StartImplicitSession(CancellationToken cancelToken)
at MongoDB.Driver.OperationExecutor.StartImplicitSession(CancellationToken cancelToken)
>в MongoDB.Driver.MongoCollectionImpl
Код: Выделить всё
1.UsingImplicitSession[TResult](Func
в MongoDB.Driver.MongoCollectionImpl
Код: Выделить всё
1.FindSync[TProjection](FilterDefinition
Код: Выделить всё
2 options, CancellationToken cancellationToken) at MongoDB.Driver.FindFluent
at MongoDB.Driver.IAsyncCursorSourceExtensions.FirstOrDefault[TDocument](источник IAsyncCursorSource`1, CancellationToken cancelToken)
Подробнее здесь: https://stackoverflow.com/questions/727 ... sing-compo