feat(gateway): integrate Kubernetes service discovery in YarpGateway

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
sam 2026-02-15 10:39:50 +08:00
parent 71a15fd9fb
commit ebd1dc3264
2 changed files with 13 additions and 0 deletions

View File

@ -10,6 +10,8 @@ using YarpGateway.LoadBalancing;
using YarpGateway.Middleware;
using YarpGateway.Services;
using StackExchange.Redis;
using Fengling.ServiceDiscovery.Extensions;
using Fengling.ServiceDiscovery.Kubernetes.Extensions;
var builder = WebApplication.CreateBuilder(args);
@ -64,6 +66,15 @@ builder.Services.AddSingleton<IProxyConfigProvider>(sp => sp.GetRequiredService<
builder.Services.AddHostedService<PgSqlConfigChangeListener>();
// 添加 Kubernetes 服务发现
builder.Services.AddKubernetesServiceDiscovery(options =>
{
options.LabelSelector = "app.kubernetes.io/managed-by=yarp";
options.UseInClusterConfig = false; // 本地调试设为 false生产环境设为 true
});
builder.Services.AddServiceDiscovery();
var corsSettings = builder.Configuration.GetSection("Cors");
builder.Services.AddCors(options =>
{

View File

@ -25,3 +25,5 @@
<ProjectReference Include="..\Fengling.ServiceDiscovery\Fengling.ServiceDiscovery.Kubernetes\Fengling.ServiceDiscovery.Kubernetes.csproj" />
<ProjectReference Include="..\Fengling.ServiceDiscovery\Fengling.ServiceDiscovery.Static\Fengling.ServiceDiscovery.Static.csproj" />
</ItemGroup>
</Project>