Есть ли способ использовать лидеры Kubernetes в нескольких кластерах?C#

Место общения программистов C#
Anonymous
Есть ли способ использовать лидеры Kubernetes в нескольких кластерах?

Сообщение Anonymous »

мы используем нативное лидеры Kubernetes, но, похоже, он работает только в кластере. Есть ли способ сделать эту работу в нескольких кластерах?/* EXAMPLE CODE */
public Task StartAsync(CancellationToken cancellationToken)
{
_cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);

var kubeCfg = KubernetesClientConfiguration.BuildDefaultConfig();
var client = new Kubernetes(kubeCfg);
var leaderLock = new LeaseLock(client, kubeCfg.Namespace, "leader-lock", Environment.GetEnvironmentVariable("HOSTNAME"));

var config = new LeaderElectionConfig(leaderLock)
{
LeaseDuration = TimeSpan.FromSeconds(15),
RenewDeadline = TimeSpan.FromSeconds(10),
RetryPeriod = TimeSpan.FromSeconds(2)
};
_leaderElector = new LeaderElector(config);
_leaderElector.OnStartedLeading += () => _logger.LogInformation("Got Leader Lock");
_leaderElector.OnNewLeader += leader => _logger.LogInformation("Leader changed to: {leader}", leader);
_leaderElector.OnStoppedLeading += () => _logger.LogInformation("Lost Leader Lock");

_leaderElectorTask = Task.Run(async () =>
{
while (!_cts.IsCancellationRequested)
{
try
{
await _leaderElector.RunAsync(_cts.Token);
}
catch (TaskCanceledException)
{
}
catch (Exception ex)
{
await Task.Delay(TimeSpan.FromSeconds(10), _cts.Token);
}
}
});
return Task.CompletedTask;
}


Подробнее здесь: https://stackoverflow.com/questions/719 ... e-clusters

Вернуться в «C#»