我已经阅读了很多有关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
在这种情况下也应该使用反向代理吗?我找不到有关生产设置外观的任何材料。