C# 从领事处注销kubernetes吊舱
我正在使用C# 从领事处注销kubernetes吊舱,c#,kubernetes,asp.net-core-3.1,consul,C#,Kubernetes,Asp.net Core 3.1,Consul,我正在使用IHostedService在k8s集群中注册我的POD。它运行得很好,但当我需要更新或扩展我的部署时,我会在Concur中看到僵尸吊舱 MyIHostedService实现了StopAsync,如下所示: public async Task StopAsync(CancellationToken cancellationToken) { _cts.Cancel(); _logger.LogInformation(&quo
IHostedService
在k8s集群中注册我的POD。它运行得很好,但当我需要更新或扩展我的部署时,我会在Concur中看到僵尸吊舱
MyIHostedService
实现了StopAsync
,如下所示:
public async Task StopAsync(CancellationToken cancellationToken)
{
_cts.Cancel();
_logger.LogInformation("De-registering from Consul");
try
{
await _consulClient.Agent.ServiceDeregister(_registrationId, cancellationToken);
}
catch (Exception ex)
{
_logger.LogError(ex, $"De-registration failed");
}
}
我还尝试注入IHostApplicationLifetime
并注册ApplicationStopping
,但这是相同的交易-除非我实际按下ctrl+c,否则这些函数永远不会被调用,这显然不是k8s内部发生的
每个人是如何注销他们的播客的
我用的是netcore 3.1当你说僵尸豆荚时,你能解释一下吗?你能发布kubectl get pods的输出吗?在清理之前,一个终止的位置停留一段时间可能是正常的。所以说它们被缩放到零-豆荚被从k8s中移除,但领事仍然认为它们在那里-只是对运行状况没有响应-因为它们从未注销-因为从未调用StopAsync