новичок в GKE и kubernetes, просто пытаясь запустить и запустить простой проект. Вот что я пытаюсь выполнить в GKE в одном кластере, пуле одного узла и одном пространстве имен:
Развертывание nginx за службой LoadBalancer, принимающей Http-трафик на порт 80, передавая его на порт 8000 на
внешнее развертывание (python Django) за службой ClusterIP, принимающей трафик на порт 8000.
Интерфейс уже успешно взаимодействует с StatefulSet, на котором запущена база данных Postgres. Интерфейс был замечен успешно обслуживающим Http (gunicorn) до того, как я переключил его службу с LoadBalancer на ClusterIP.
Я не знаю, как правильно настроить конфигурацию Nginx для передачи трафика службе ClusterIP для внешнего развертывания. То, что у меня есть, не работает.
Любые советы / предложения будут оценены. Вот установочные файлы:
nginx - и т.д. / nginx / conf.d / nginx.conf
upstream front-end {
server front-end:8000;
}
server {
listen 80;
client_max_body_size 2M;
location / {
proxy_pass http://front-end;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /static/ {
alias /usr/src/app/static/;
}
}
развертывание / обслуживание nginx
---
apiVersion: v1
kind: Service
metadata:
name: "web-nginx"
labels:
app: "nginx"
spec:
type: "LoadBalancer"
ports:
- port: 80
name: "web"
selector:
app: "nginx"
---
apiVersion: "apps/v1"
kind: "Deployment"
metadata:
name: "nginx"
namespace: "default"
labels:
app: "nginx"
spec:
replicas: 1
selector:
matchLabels:
app: "nginx"
template:
metadata:
labels:
app: "nginx"
spec:
containers:
- name: "my-nginx"
image: "us.gcr.io/my_repo/my_nginx_image" # this is nginx:alpine + my staicfiles & nginx.conf
ports:
- containerPort: 80
args:
- /bin/sh
- -c
- while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g "daemon off;"
внешнее развертывание / обслуживание
---
apiVersion: v1
kind: Service
metadata:
name: "front-end"
labels:
app: "front-end"
spec:
type: "ClusterIP"
ports:
- port: 8000
name: "django"
targetPort: 8000
selector:
app: "front-end"
---
apiVersion: "apps/v1"
kind: "Deployment"
metadata:
name: "front-end"
namespace: "default"
labels:
app: "front-end"
spec:
replicas: 1
selector:
matchLabels:
app: "front-end"
template:
metadata:
labels:
app: "front-end"
spec:
containers:
- name: "myApp"
image: "us.gcr.io/my_repo/myApp"
ports:
- containerPort: 8000
args:
- /bin/sh
- -c
- python manage.py migrate && gunicorn smokkr.wsgi:application --bind 0.0.0.0:8000
---