如何在 Kubernetes 中部署 .NET 微服务?

来源:这里教程网 时间:2026-02-21 17:26:30 作者:

在 Kubernetes 中部署 .NET 微服务需要将应用容器化,然后通过配置清单部署到集群。整个过程包括编写 Dockerfile、构建镜像、推送到镜像仓库,最后使用 YAML 配置文件部署服务。

准备 .NET 应用并容器化

确保你的 .NET 微服务项目可以正常运行,并添加一个 Dockerfile 来定义容器镜像。

示例 Dockerfile(适用于 .NET 8):
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 80
<p>FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY . .
RUN dotnet restore
RUN dotnet publish -c Release -o /app/publish</p><p>FROM base AS final
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "YourMicroservice.dll"]

执行以下命令构建镜像:

docker build -t your-registry/microservice:v1 .

推送镜像到容器仓库

Kubernetes 需要从镜像仓库拉取镜像。你可以使用 Docker Hub、Azure Container Registry 或其他私有仓库。

登录并推送镜像:

docker login
docker push your-registry/microservice:v1

编写 Kubernetes 部署和服务配置

创建 deployment.yaml 文件来定义微服务的部署和暴露方式。

示例 deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: microservice-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: microservice
  template:
    metadata:
      labels:
        app: microservice
    spec:
      containers:
      - name: microservice
        image: your-registry/microservice:v1
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: microservice-service
spec:
  type: LoadBalancer
  selector:
    app: microservice
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

这个配置会启动两个副本,并通过负载均衡器对外暴露服务。

应用配置到 Kubernetes 集群

使用 kubectl 将配置应用到集群:

kubectl apply -f deployment.yaml

查看部署状态:

kubectl get pods
kubectl get services

如果一切正常,你应该能看到运行中的 Pod 和分配的外部 IP(如果是 LoadBalancer 类型)。

基本上就这些。只要镜像能正确构建并推送到可访问的仓库,Kubernetes 就能拉取并运行你的 .NET 微服务。后续可以结合 Helm、Ingress 或配置健康检查进一步优化部署。不复杂但容易忽略细节,比如镜像标签、网络端口或权限设置。

相关推荐