在AKS群集中运行时,应将Kestrel与反向代理一起使用吗?

时间:2019-04-12 11:44:09

标签: azure docker asp.net-core kubernetes

我已经阅读了很多有关kubernetes,docker和容器的文章。网络上有很多材料。问题是一些具体但重要的信息很难获得。

现在,kestrel是asp.net核心的默认Web服务器,但是它有一些限制(功能不足),建议的托管选项是使用反向代理的服务器。 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2

这可以在本地环境中轻松实现,例如使用IIS。现在我的问题是,它应如何在Azure AKS中工作?如果我现在没有记错的话,如果我们使用下面的docker kubernetes脚本进行部署,则Kestrel将成为Azure中的托管服务器。

Docker:

FROM microsoft/dotnet:sdk AS build-env
WORKDIR /app

RUN mkdir /output

# Copy project and publish

COPY . /app

WORKDIR /app/WebApi
RUN dotnet publish --configuration Release --output /output -nowarn:1701,1702,1591;

# Build runtime image
FROM microsoft/dotnet:aspnetcore-runtime

ENV ASPNETCORE_URLS http://*:5100

WORKDIR /app

COPY --from=build-env /output .
EXPOSE 5100

ENTRYPOINT ["dotnet", "WebApi.dll"]

Kubernetes:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-api
spec:
  replicas: 1
  selector:
    matchLabels:
      app: web-api
  template:
    metadata:
      labels:
        app: web-api
    spec:
      containers:
      - name: web-api
        image: azureadress.io/web-api:latest 
        env:
          - name: ASPNETCORE_ENVIRONMENT
            value: "Azure_Development"
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 250m
            memory: 256Mi
        ports:
        - containerPort: 5100 
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/load-balancer-source-ranges:  
  name: web-api
spec:
  loadBalancerIP: xxxxx.xxx.xxx
  type: LoadBalancer 
  ports:
  - port: 5100
  selector:
    app: web-api

在这种情况下也应该使用反向代理吗?我找不到有关生产设置外观的任何材料。

0 个答案:

没有答案