Я много читал о kubernetes, докере и контейнерах в целом.В сети масса материалов.Проблема в том, что некоторую конкретную, но важную информацию трудно найти.
В настоящее время kestrel является веб-сервером по умолчанию для ядра asp.net, но имеет некоторые ограничения (отсутствие функциональности), и рекомендуемый вариант хостинга - один сиспользование обратного прокси.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
Следует ли в этом случае использовать обратный прокси-сервер?Я не смог найти никаких материалов о том, как должна выглядеть производственная установка.