Развертывание django с помощью kubernetes ingress
Я не могу настроить path
для приложения django в kubernetes nginx. Приложение работает нормально на локальной разработке, но не в kubernetes. Оно говорит Failed to connect
Минимальный воспроизводимый пример
<values.yaml>
imageName: ingestion-dashboard
replicas: 1
ingressAnnotations:
nginx.ingress.kubernetes.io/use-regex: "true"
ingressRules:
- path: /dashboard
portName: http
<deployment.yaml>
{{ include "ingestion-dashboard.deployment-header" . }}
spec:
{{ include "ingestion-dashboard.workerNodeSelector" . | indent 6 }}
containers:
- name: ingestion-dashboard
{{ include "image" . | nindent 10 }}
env:
- name: SOME_ENV
value: SOME_VAL
ports:
- containerPort: 4781
hostIP: 0.0.0.0
<service.yaml>
apiVersion: v1
kind: Service
metadata:
name: ingestion-dashboard
labels:
{{ include "ingestion-dashboard.labels" . | indent 4 }}
spec:
ports:
- name: http
port: 4781
protocol: TCP
targetPort: 4781
selector:
app.kubernetes.io/name: {{ include "ingestion-dashboard.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
<urls.py> {in django}
urlpatterns = [
path('/dashboard/', include(running_urls.urlpatterns))
]
Port `4781` is configured everywhere (docker file as well)
ниже приведен вывод k get service ingestion-dashboard -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingestion-dashboard ClusterIP 10.69.37.77 <none> 4781/TCP 13h
Это не работает. Эта же установка работает нормально, когда используется для приложения flask
. Но она не работает для django.
У приложений Nginx и django нет ошибок, так как Nginx работает нормально для других (включая flask), а приложение Django работает нормально локально.