包括: 僅限託管整合 —
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 資源名稱:
- 轉換為小寫。
- 將無效字元取代為連字號。
- 確保名稱不以連字符開頭或結尾。
環境特定的設定
使用 外部參數 來設定開發和生產環境之間應該不同的環境特定值。