Я создал фиктивный контейнерный веб-интерфейс - на самом деле стандартный шаблон rest api Visual studio создала файл с прогнозом и развернула изображение, которое его файл docker создает в моем кластере kubernetes.
В моем кластере kubernetes есть входной контроллер, но по какой-то причине мне кажется, что я не могу выставить свой сервис, связанный с модулем, который запускает веб-интерфейс через мой входной контроллер.
Каждый раз, когда я пытаюсь достичь этого, я получаю сообщение об ошибке 503 о том, что служба временно недоступна, что не имеет никакого смысла?
Файл Docker:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["weather/weather.csproj", "weather/"]
RUN dotnet restore "weather/weather.csproj"
COPY . .
WORKDIR "/src/weather"
RUN dotnet build "weather.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "weather.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "weather.dll"]
Kubernetes файл конфигурации:
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: weather
spec:
replicas: 1
template:
metadata:
name: weather
labels:
name: weather
spec:
containers:
- name: weather
image: weather
imagePullPolicy: Always
ports:
- containerPort: 443
env:
- name: "ASPNETCORE_ENVIRONMENT"
value: "Development"
livenessProbe:
httpGet:
path: /WeatherForecast
port: 443
initialDelaySeconds: 3
periodSeconds: 3
---
kind: Service
apiVersion: v1
metadata:
name: weather-service
spec:
ports:
- name: http
port: 443
protocol: TCP
targetPort: 443
selector:
app: weather
sessionAffinity: None
type: ClusterIP
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
name: weather-ingress
spec:
rules:
- host: weather.localhost
http:
paths:
- backend:
serviceName: weather-service
servicePort: 443
path: /app3
Почему это не работает? Я пытался с портом 80, и 443, кажется, ничего не работает ...