Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Include: Solo integrazione dell'hosting —
Client integrazione non inclusa
L'integrazione AspireKubernetes dell'hosting consente di generare Kubernetes manifesti di distribuzione dal Aspire modello di applicazione. Questa integrazione consente di definire l'infrastruttura e la configurazione di distribuzione dell'applicazione usando il noto Aspire AppHost e quindi pubblicarlo come Kubernetes manifesti YAML per la distribuzione in qualsiasi Kubernetes cluster.
Integrazione del servizio di hosting
Per iniziare con l'integrazione dell'hostingAspireKubernetes, installare il pacchetto NuGet 📦Aspire.Hosting.Kubernetes nel progetto AppHost.
dotnet add package Aspire.Hosting.Kubernetes
Per ulteriori informazioni, consultare dotnet add package o Gestire le dipendenze dei pacchetti nelle applicazioni .NET.
Aggiungere ambiente Kubernetes
Dopo aver installato il pacchetto, aggiungere un Kubernetes ambiente al progetto AppHost usando il AddKubernetesEnvironment metodo :
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();
Suggerimento
Con la k8s variabile assegnata, è possibile passarla all'API WithComputeEnvironment per disambiguare le risorse di calcolo per le soluzioni che definiscono più di una. In caso contrario, la k8s variabile non è obbligatoria.
Configurare Kubernetes le proprietà dell'ambiente
È possibile personalizzare l'ambiente Kubernetes usando il WithProperties metodo :
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();
Il metodo WithProperties consente di configurare vari aspetti della distribuzione Kubernetes, incluso il nome del chart Helm che verrà utilizzato per creare le risorse Kubernetes.
Generare Kubernetes manifesti
Per generare Kubernetes manifesti dall'applicazione Aspire, utilizzare il comando aspire publish:
aspire publish -o k8s-artifacts
Per ulteriori informazioni, vedere riferimento ai comandi di pubblicazione di aspire.
Questo comando genera un set completo di manifesti YAML nella directory di Kubernetes output specificata (k8s-artifacts in questo esempio). Gli artefatti generati includono:
- Distribuzioni o StatefulSets per i servizi dell'applicazione.
- Servizi per la connettività di rete.
- ConfigMaps per la configurazione dell'applicazione.
- Segreti per i dati sensibili.
- Helm charts per semplificare la gestione della distribuzione.
Risorse supportate
L'integrazione Kubernetes dell'hosting supporta la conversione di varie Aspire risorse nei loro Kubernetes equivalenti:
- Risorse del progetto → Deployment o StatefulSet.
- Risorse del contenitore → Distribuzioni o StatefulSet.
- Le stringhe di connessione → ConfigMap e Secret.
- Le variabili di ambiente → ConfigMaps e Secrets.
- Endpoint → Servizi e configurazione di ingresso.
- I volumi → PersistentVolumes e PersistentVolumeClaims.
Considerazioni sulla distribuzione
Quando si esegue la distribuzione in Kubernetes, considerare quanto segue:
Immagini dei contenitori
Verificare che i progetti dell'applicazione siano configurati per generare immagini di container. Il sistema di pubblicazione Kubernetes farà riferimento alle immagini di container per i progetti. Se non sono state specificate immagini di contenitori personalizzate, l'integrazione userà valori Helm parametrizzati che puoi sostituire durante la distribuzione.
Nomi delle risorse
I nomi delle risorse in Kubernetes devono seguire le convenzioni di denominazione DNS. L'integrazione converte automaticamente i Aspire nomi delle risorse in nomi di risorse validi Kubernetes in base a:
- Conversione in minuscolo.
- Sostituzione di caratteri non validi con trattini.
- Assicurarsi che i nomi non inizino o terminano con trattini.
Configurazione specifica dell'ambiente
Usare parametri esterni per configurare valori specifici dell'ambiente che devono essere diversi tra gli ambienti di sviluppo e di produzione.