Dela via


Aspire Kubernetes värdintegrering

Inkluderar: Värdintegrering ingår Endast värdintegrering – Hosting integration included integration not included integrering ingår inte

Med AspireKubernetes värdintegreringen kan du generera Kubernetes distributionsmanifest från din Aspire programmodell. Med den här integreringen kan du definiera programmets infrastruktur och distributionskonfiguration med hjälp av den välbekanta Aspire AppHost och sedan publicera den som Kubernetes YAML-manifest för distribution till alla Kubernetes kluster.

Integrering av värdtjänster

För att komma igång med värdintegreringen AspireKubernetes installera 📦Aspire.Hosting.Kubernetes NuGet-paketet i AppHost-projektet.

dotnet add package Aspire.Hosting.Kubernetes

Mer information finns i dotnet lägg till paket eller Hantera paketberoenden i .NET applikationer.

Lägg till Kubernetes miljö

När du har installerat paketet lägger du till en Kubernetes miljö i ditt AppHost-projekt med hjälp av AddKubernetesEnvironment metoden:

var builder = DistributedApplication.CreateBuilder(args);

// Add Kubernetes environment
var k8s = builder.AddKubernetesEnvironment("k8s");

// Add your application resources
var cache = builder.AddRedis("cache");

var apiService = builder.AddProject<Projects.ApiService>("apiservice")
                        .WithReference(cache);

builder.AddProject<Projects.Web>("webfrontend")
       .WithExternalHttpEndpoints()
       .WithReference(cache)
       .WithReference(apiService);


builder.Build().Run();

Tips/Råd

Med variabeln k8s tilldelad kan du skicka den till API:et WithComputeEnvironment för att skilja beräkningsresurser från lösningar som definierar mer än en. Annars krävs inte variabeln k8s .

Konfigurera Kubernetes miljöegenskaper

Du kan anpassa Kubernetes miljön med hjälp av WithProperties metoden:

var builder = DistributedApplication.CreateBuilder(args);

var api = builder.AddProject<Projects.MyApi>("api");

builder.AddKubernetesEnvironment("k8s")
       .WithProperties(k8s =>
       {
           k8s.HelmChartName = "my-aspire-app";
       });

builder.Build().Run();

Med hjälp av WithProperties-metoden kan du konfigurera olika aspekter av Kubernetes-distributionen, inklusive Helm-chartnamnet som ska användas för att generera Kubernetes-resurserna.

Generera Kubernetes manifest

Om du vill generera Kubernetes manifest från ditt Aspire program använder du aspire publish kommandot:

aspire publish -o k8s-artifacts

För mer information, se aspire publish kommandoreferens.

Det här kommandot genererar en fullständig uppsättning Kubernetes YAML-manifest i den angivna utdatakatalogen (k8s-artifacts i det här exemplet). Bland de genererade artefakterna finns:

  • Distributioner eller StatefulSets för dina programtjänster.
  • Tjänster för nätverksanslutning.
  • ConfigMaps för programkonfiguration.
  • Hemligheter för känsliga data.
  • Helm-diagram för enklare distributionshantering.

Resurser som stöds

Värdintegreringen Kubernetes stöder konvertering av olika Aspire resurser till deras Kubernetes motsvarigheter:

  • Projektresurser → distributioner eller StatefulSets.
  • Containerresurser → Deployments eller StatefulSets.
  • Anslutningssträngar → ConfigMaps och Secrets.
  • Miljövariabler → ConfigMaps och Hemligheter.
  • Ändpunkter → Tjänster och ingresskonfiguration.
  • Volymer → PersistentVolumes och PersistentVolumeClaims.

Distributionsöverväganden

När du distribuerar till Kubernetesbör du tänka på följande:

Containeravbildningar

Se till att dina programprojekt är konfigurerade för att skapa containeravbildningar. Utgivaren Kubernetes refererar till containeravbildningarna för dina projekt. Om du inte har angett anpassade containeravbildningar använder integreringen parameteriserade Helm-värden som du kan åsidosätta under distributionen.

Resursnamn

Resursnamn i Kubernetes måste följa DNS-namngivningskonventioner. Integreringen konverterar Aspire automatiskt resursnamn till giltiga Kubernetes resursnamn genom att:

  • Konverterar till gemener.
  • Ersätter ogiltiga tecken med bindestreck.
  • Se till att namnen inte börjar eller slutar med bindestreck.

Miljöspecifik konfiguration

Använd externa parametrar för att konfigurera miljöspecifika värden som ska skilja sig mellan utvecklings- och produktionsmiljöer.

Se även