共用方式為


Aspire Kubernetes 託管整合

包括:包含託管整合 僅限託管整合 — Client不包含整合Client不包含整合

裝載整合可讓您AspireKubernetes從應用程式模型產生KubernetesAspire部署資訊清單。 此整合可讓您使用熟悉 Aspire 的 AppHost 定義應用程式的基礎結構和部署組態,然後將其發佈為 YAML 資訊清單, Kubernetes 以部署至任何 Kubernetes 叢集。

主機托管整合

要開始使用AspireKubernetes託管整合功能,請在 AppHost 專案中安裝 📦Aspire.託管。Kubernetes NuGet 套件。

dotnet add package Aspire.Hosting.Kubernetes

如需詳細資訊,請參閱 dotnet add package管理 .NET 應用程式中的套件相依性

新增 Kubernetes 環境

安裝套件後,使用AddKubernetesEnvironment方法將Kubernetes環境新增至AppHost專案:

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

小提示

k8s 變數指派後,您可以將該變數傳遞至 WithComputeEnvironment API,以消除包含多個運算資源的解決方案的歧義。 否則,不需要變數 k8s

設定 Kubernetes 環境屬性

您可以使用以下Kubernetes方法自訂WithProperties環境:

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

WithProperties 方法可讓您設定部署的 Kubernetes 各個層面,包括將用來產生 Kubernetes 資源的 Helm 圖表名稱。

產生 Kubernetes 清單

若要從您的Aspire應用程式產生Kubernetes資訊清單,請使用命令aspire publish

aspire publish -o k8s-artifacts

如需相關資訊,請參閱 aspire publish 指令參考

此命令會在指定的輸出目錄中產生一組 Kubernetes 完整的 YAML 資訊清單 (k8s-artifacts 在此範例中)。 產生的構件包括:

  • 應用程式服務的部署項目StatefulSets
  • 網路連線服務
  • 用於應用程式設定的 ConfigMaps
  • 敏感資料的秘密
  • Helm 圖表 可簡化部署管理。

支援的資源

Kubernetes託管整合支援將各種Aspire資源轉換為對Kubernetes等資源:

  • 專案資源 →部署或 StatefulSets。
  • 容器資源 →部署或有狀態集合(StatefulSets)。
  • 連接字串 → ConfigMap 和 Secrets。
  • 環境變數 → ConfigMap 和 Secrets。
  • 端點 → 服務和入口配置。
  • 磁碟→ PersistentVolumes 和 PersistentVolumeClaims。

部署考慮

部署至 Kubernetes時,請考慮下列事項:

容器映像

請確定您的應用程式專案已設定為建置容器映像。 Kubernetes發行者會參考您專案的容器影像。 如果您尚未指定自訂容器映像檔,整合過程將使用參數化的 Helm 變數值,您可以在部署時覆寫這些 Helm 參數值。

資源名稱

中的 Kubernetes 資源名稱必須遵循 DNS 命名慣例。 整合會透過下列方式自動將資源名稱轉換為 Aspire 有效的 Kubernetes 資源名稱:

  • 轉換為小寫。
  • 將無效字元取代為連字號。
  • 確保名稱不以連字符開頭或結尾。

環境特定的設定

使用 外部參數 來設定開發和生產環境之間應該不同的環境特定值。

另請參閱