Delen via


Aspire Kubernetes hostingintegratie

Inclusief:Hostingintegratie inbegrepen Alleen hostingintegratie — Client integratie niet inbegrepenClient integratie niet inbegrepen

Met de AspireKubernetes hostingintegratie kunt u implementatiemanifesten genereren Kubernetes op basis van uw Aspire toepassingsmodel. Met deze integratie kunt u de infrastructuur en implementatieconfiguratie van uw toepassing definiëren met behulp van de vertrouwde Aspire AppHost en deze vervolgens publiceren als Kubernetes YAML-manifesten voor implementatie naar elk Kubernetes cluster.

Hostingintegratie

Als u aan de slag wilt met de AspireKubernetes hostingintegratie, installeert u het 📦Aspire.Hosting.Kubernetes NuGet-pakket in het project AppHost.

dotnet add package Aspire.Hosting.Kubernetes

Zie dotnet-pakket toevoegen of pakketafhankelijkheden beheren in .NET toepassingen voor meer informatie.

Omgeving toevoegen Kubernetes

Voeg na de installatie van het pakket een Kubernetes omgeving toe aan uw AppHost-project met behulp van de AddKubernetesEnvironment methode:

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();

Aanbeveling

Als de k8s variabele is toegewezen, kunt u deze doorgeven aan de WithComputeEnvironment API om rekenresources niet eenduidig te maken voor oplossingen die meer dan één definiëren. Anders is de k8s variabele niet vereist.

Omgevingseigenschappen configureren Kubernetes

U kunt de Kubernetes omgeving aanpassen met behulp van de WithProperties methode:

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();

Met WithProperties de methode kunt u verschillende aspecten van de Kubernetes implementatie configureren, inclusief de Helm-grafieknaam die wordt gebruikt voor het genereren van de Kubernetes resources.

Manifesten genereren Kubernetes

Om Kubernetes manifesten te genereren vanuit uw Aspire applicatie, gebruikt u de aspire publish opdracht.

aspire publish -o k8s-artifacts

Zie aspire publish command reference voor meer informatie.

Met deze opdracht wordt een volledige set Kubernetes YAML-manifesten gegenereerd in de opgegeven uitvoermap (k8s-artifacts in dit voorbeeld). De gegenereerde artefacten zijn onder andere:

  • Deployments of StatefulSets voor uw applicatieservices.
  • Services voor netwerkconnectiviteit.
  • ConfigMaps voor toepassingsconfiguratie .
  • Geheimen voor gevoelige gegevens.
  • Helm-grafieken voor eenvoudiger implementatiebeheer.

Ondersteunde middelen

De Kubernetes hostingintegratie ondersteunt het converteren van verschillende Aspire resources naar hun Kubernetes equivalenten:

  • Projectbronnen → Deployments of StatefulSets.
  • Containerbronnen → Implementaties of StatefulSets.
  • Connection strings → ConfigMaps and Secrets.
  • Omgevingsvariabelen → ConfigMaps en Geheimen.
  • Eindpunten → Services en de configuratie voor inkomend verkeer.
  • Volumes → PersistentVolumes en PersistentVolumeClaims.

Overwegingen bij de implementatie

Houd bij de Kubernetesimplementatie rekening met het volgende:

Containerafbeeldingen

Zorg ervoor dat uw toepassingsprojecten zijn geconfigureerd voor het bouwen van containerinstallatiekopieën. De Kubernetes uitgever verwijst naar de containerafbeeldingen voor uw projecten. Als u geen aangepaste containerinstallatiekopieën hebt opgegeven, gebruikt de integratie geparameteriseerde Helm-waarden die u tijdens de implementatie kunt overschrijven.

Resourcenamen

Resourcenamen in Kubernetes moeten de DNS-naamconventies volgen. De integratie converteert Aspire resourcenamen automatisch naar geldige Kubernetes resourcenamen door:

  • Converteren naar kleine letters.
  • Ongeldige tekens vervangen door afbreekstreepjes.
  • Ervoor zorgen dat namen niet beginnen of eindigen met afbreekstreepjes.

Omgevingsspecifieke configuratie

Gebruik externe parameters om omgevingsspecifieke waarden te configureren die moeten verschillen tussen ontwikkel- en productieomgevingen.

Zie ook