簡単なプロジェクトを立ち上げて実行しようとしている GKE と kubernetes の初心者。単一のクラスタ、単一のノード プール、単一の名前空間で GKE で達成しようとしているのは次のとおりです。
ポート 80 で HTTP トラフィックを受け入れ、ポート 8000 でそれを渡す LoadBalancer サービスの背後にある nginx 展開
ポート 8000 でトラフィックを受け入れる ClusterIP サービスの背後にあるフロントエンド展開 (python Django)。
フロントエンドは、Postgres データベースを実行している StatefulSet と既に正常に通信しています。フロントエンドは、サービスを LoadBalancer から ClusterIP に切り替える前に、Http (gunicorn) を正常に処理していることが確認されました。
フロントエンド展開のためにトラフィックを ClusterIP サービスに渡すように Nginx 構成を適切にセットアップする方法がわかりません。私が持っているものは機能していません。
アドバイス/提案をいただければ幸いです。セットアップファイルは次のとおりです。
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
---