django - 为什么我的应用没有在 GKE 的浏览器中加载
问题描述
我的部署脚本运行没有错误。我的服务运行没有错误。但是当我在浏览器中加载外部 IP 时,它会永远加载以下消息: 这是我的 docker 文件:
# pull official base image
FROM python:3.8
EXPOSE 8080
# Install GDAL dependencies
#RUN apt-get update && apt-get install --yes libgdal-dev
#apt-get install binutils libproj-dev gdal-bin
RUN apt-get update && apt-get install --reinstall -y \
binutils \
libproj-dev \
libmemcached11 \
libmemcachedutil2 \
libmemcached-dev \
libz-dev
# Copy the application's requirements.txt and run pip to install all
# dependencies into the virtualenv.
ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
# Add the application source code.
ADD . .
CMD exec gunicorn --bind :8080 --workers 1 --threads 8 main:app --timeout 0 --preload
这是我的部署脚本:
# [START kubernetes_deployment]
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
labels:
app: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: web-app
# Replace with your project ID or use `make template`
image: gcr.io/app-kor/app-kubernetes:v0.0.1
# This setting makes nodes pull the docker image every time before
# starting the pod. This is useful when debugging, but should be turned
# off in production.
#imagePullPolicy: Always
env:
- name: DB_HOST
valueFrom:
secretKeyRef:
key: DB_HOST
name: env
- name: DB_NAME
valueFrom:
secretKeyRef:
key: DB_NAME
name: env
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
key: DB_PASSWORD
name: env
- name: DB_PORT
valueFrom:
secretKeyRef:
key: DB_PORT
name: env
- name: DB_USER
valueFrom:
secretKeyRef:
key: DB_USER
name: env
- name: DEBUG
valueFrom:
secretKeyRef:
key: DEBUG
name: env
- name: GOOGLE_APPLICATION_CREDENTIALS
valueFrom:
secretKeyRef:
key: GOOGLE_APPLICATION_CREDENTIALS
name: env
- name: INSTANCE_CONNECTION_NAME
valueFrom:
secretKeyRef:
key: INSTANCE_CONNECTION_NAME
name: env
- name: POSTGRES_DB
valueFrom:
secretKeyRef:
key: POSTGRES_DB
name: env
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
key: POSTGRES_PASSWORD
name: env
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
key: POSTGRES_USER
name: env
- name: SECRET_KEY
valueFrom:
secretKeyRef:
key: SECRET_KEY
name: env
- name: SENDGRID_API_KEY
valueFrom:
secretKeyRef:
key: SENDGRID_API_KEY
name: env
- name: STATIC_URL
valueFrom:
secretKeyRef:
key: STATIC_URL
name: env
ports:
- containerPort: 8080
# [START proxy_container]
- image: gcr.io/cloudsql-docker/gce-proxy:1.16
name: cloudsql-proxy
command: ["/cloud_sql_proxy", "--dir=/cloudsql",
"-instances=app:asia-northeast2:app-db=tcp:5432",
"-credential_file=/secrets/cloudsql/credentials.json"]
volumeMounts:
- name: cloudsql-oauth-credentials
mountPath: /secrets/cloudsql
readOnly: true
- name: ssl-certs
mountPath: /etc/ssl/certs
- name: cloudsql
mountPath: /cloudsql
# [END proxy_container]
# [START volumes]
volumes:
- name: cloudsql-oauth-credentials
secret:
secretName: cloudsql-oauth-credentials
- name: ssl-certs
hostPath:
path: /etc/ssl/certs
- name: cloudsql
emptyDir: {}
# [END volumes]
# [END kubernetes_deployment]
这是我的部署服务:
apiVersion: v1
kind: Service
metadata:
name: web
labels:
app: web
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 8080
selector:
app: web
# [END service]
解决方案
推荐阅读
- testing - 开玩笑忽略除 1 个包之外的所有 node_modules
- grails - Grails 4:自定义域模型编组器在 Grails 4 上不起作用
- html - 带有“Honey Script”字体文本的跨度没有任何使用字体的高度。怎么修?
- python - 如何编写包含 HTML 实体的 XPath 查询?
- python - 来自不同(测试)文件的一个代码数据与一个文件中的所有数据有何不同?
- python - 如何使用 Python 点击 Spotify Play 按钮
- regex - {First_name 和 First_name Last_name} 模式的正则表达式解决方案:
- html - 将hello world添加到cpanel
- c# - 在尺寸减小时防止图像尺寸增大
- java - 将 Java 对象传递给 Retrofit 无法正确处理