новичок в GKE и kubernetes просто пытается запустить простой проект. Вот что я пытаюсь выполнить sh в GKE в одном кластере, одном пуле узлов и одном пространстве имен:
nginx развертывание за сервисом LoadBalancer, принимающим трафик Http c на 80-м порту, проходящем через него на порту 8000 -
развертывание интерфейса (python Django) за службой ClusterIP, принимающей трафик c на порту 8000.
интерфейс уже успешно обменивается данными с StatefulSet работает под управлением Postgres базы данных. Было замечено, что интерфейс успешно обслуживает Http (gunicorn), прежде чем я переключил его службу с LoadBalancer на ClusterIP.
Я не знаю, как правильно настроить конфигурацию Nginx для передачи traffi c в служба ClusterIP для внешнего интерфейса. То, что у меня не работает.
Любые советы / предложения будут оценены. Вот установочные файлы:
nginx - etc / 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
---