При отображении службы через inging inginx на kubernetes единственным кодом ответа http при запросе чего-либо является 200.
В основном, веб-приложение представляет собой форму, которая загружает изображения, хранит их где-то и отвечает следующим образом:для кодирования (например, неверный запрос или созданный с URI-адресом в заголовке).Он ожидает запрос с multipart / form-data на адрес API следующим образом: "http://{anyAddress}/api/images?directory={whereToStore}?processing={someProcessingTags}"
Веб-приложение работает, как ожидается, локально и в виде одного контейнера в Docker.
Поэтому, когда служба работаетдоступ через вход, сначала он отвечает с формой, как и ожидалось. Вы можете указать параметры и изображение для загрузки. После отправки запроса файл правильно загружен в веб-приложение и обработан, веб-приложение затем отправляет ожидаемый 201 созданный, ноответ, возвращаемый в браузер, всегда равен 200. Я понятия не имею, почему.
Это на докере для рабочего стола + локальный сервер kubernetes.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/proxy-body-size: 25m
spec:
rules:
- http:
paths:
- path: /image-upload
backend:
serviceName: image-upload-service
servicePort: http
---
apiVersion: v1
kind: Service
metadata:
name: image-upload-service
spec:
type: LoadBalancer
selector:
run: image-upload
ports:
- name: http
port: 80
targetPort: api
protocol: TCP
- name: https
port: 443
targetPort: api
protocol: TCP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: image-upload-cluster
labels:
run: image-upload
spec:
selector:
matchLabels:
run: image-upload
replicas: 2
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 0
template:
metadata:
labels:
run: image-upload
spec:
volumes:
- name: shared-volume
hostPath:
path: /exports
containers:
- name: image-upload
image: calyxa/image-service
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: /exports
name: shared-volume
resources:
requests:
cpu: 10m
ports:
- containerPort: 3000
name: api
readinessProbe:
httpGet:
path: /
port: 3000
initialDelaySeconds: 5
periodSeconds: 5
successThreshold: 1
Я ожидаюпосле отправки запроса с файлом изображения для получения ответа с кодом состояния, то есть 400 неправильных запросов или 201 созданный (с расположением в заголовке).
Ответ всегда 200 OK, дажекогда происходит сбой веб-приложения из-за запроса.
Если само веб-приложение не запущено (например, из-за его сбоя), якак и ожидалось, получить услугу 503.