首页 > 解决方案 > 从 Consul 注销 kubernetes pod

问题描述

我正在使用 aIHostedService在 k8s 集群中注册我的 pod。一切运行良好,但当我需要更新或扩展我的部署时,我会在 Consul 中找到僵尸吊舱。

IHostedService的实现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 中发生

每个人都如何注销他们的 pod?

我正在使用 netcore 3.1

标签: c#kubernetesasp.net-core-3.1consul

解决方案


推荐阅读