Не удается получить доступ к контейнерам asp .core веб-API, развернутым в kubernetes? - PullRequest
0 голосов
/ 20 января 2020

Я создал фиктивный контейнерный веб-интерфейс - на самом деле стандартный шаблон 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, кажется, ничего не работает ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...