包括:仅限于—
Client集成不包括
通过 AspireKubernetes 托管集成,可以从应用程序模型生成 Kubernetes 部署清单 Aspire 。 通过此集成,可以使用熟悉 Aspire 的 AppHost 定义应用程序的基础结构和部署配置,然后将其作为 Kubernetes YAML 清单发布,以便部署到任何 Kubernetes 群集。
托管集成
若要开始AspireKubernetes托管集成,请在AppHost项目中安装📦Aspire.Hosting.Kubernetes NuGet 包。
dotnet add package Aspire.Hosting.Kubernetes
有关详细信息,请参阅 dotnet 添加包 或 管理 .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 环境属性
可以使用 WithProperties 方法自定义 Kubernetes 环境:
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 清单
若要从Kubernetes应用程序生成Aspire清单,请使用aspire publish以下命令:
aspire publish -o k8s-artifacts
有关详细信息,请参阅 aspire publish 命令参考。
此命令在指定的输出目录中生成一组 Kubernetes 完整的 YAML 清单(k8s-artifacts 在此示例中)。 生成的工件包括:
- 应用程序服务的部署或StatefulSet。
- 网络连接服务。
- 应用程序配置使用 ConfigMaps。
- 秘密用于保护敏感数据。
- Helm 图表 可简化部署管理。
支持的资源
托管 Kubernetes 集成支持将各种 Aspire 资源转换为其 Kubernetes 等效资源:
- 项目资源 →部署或 StatefulSet。
- 容器资源 →部署或 StatefulSet。
- 连接字符串 → ConfigMaps 和 Secrets。
- 环境变量 → ConfigMaps 和密钥。
- 终结点 →服务和入口配置。
- 卷 → PersistentVolumes 和 PersistentVolumeClaims。
部署注意事项
部署到 Kubernetes时,请考虑以下事项:
容器映像
确保应用程序项目配置为生成容器映像。 发布工具 Kubernetes 将会引用您的项目所需的容器映像。 如果尚未指定自定义容器映像,集成将使用可在部署期间重写的参数化 Helm 值。
资源名称
资源 Kubernetes 名称必须遵循 DNS 命名约定。 集成会自动将 Aspire 资源名称通过以下方式转换为有效的 Kubernetes 资源名称:
- 转换为小写。
- 将无效字符替换为连字符。
- 确保名称不以连字符开头或结尾。
环境特定的配置
使用 外部参数 来配置在开发环境和生产环境之间需要区分的环境特定值。