kubernetes - Kubernetes Nginx 入口 phpmyadmin 502 错误
问题描述
我正在尝试解决我在使用 Kubernetes 时遇到的一个非常烦人的问题。当我尝试访问服务器上的 PHPMyAdmin 时,它返回 Nginx 502 Bad Gateway错误。
我在集群中的结构如下。我在 DigitalOcean 上使用 Nginx 入口 LoadBalancer 将流量引入我的集群。然后它通过我的入口(在第一个代码块中),它将流量拆分到子域。当流量进入 phpmyadmin 子域时,请求被传递到服务端口 8085 的“phpmyadmin-service”。
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
annotations:
kubernetes.io/ingress.class: nginx
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: "app1.example.com"
http:
paths:
- path: /
backend:
serviceName: app1-service
servicePort: 80
- host: "phpmyadmin.example.com"
http:
paths:
- path: /
backend:
serviceName: phpmyadmin-service
servicePort: 8085
然后,服务接收请求,并将其传递给“phpmyadmin-deployment”部署。这是一个运行 phpmyadmin/phpmyadmin:fpm docker 镜像的部署。
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
name: phpmyadmin-deployment
labels:
app: phpmyadmin
spec:
selector:
matchLabels:
app: phpmyadmin
template:
metadata:
creationTimestamp: null
labels:
app: phpmyadmin
spec:
containers:
- name: phpmyadmin
image: phpmyadmin/phpmyadmin:fpm
ports:
- containerPort: 8087
env:
- name: PMA_ABSOLUTE_URI
value: 'phpmyadmin.example.com'
- name: PMA_HOST
value: mysql
- name: PMA_PORT
value: "3306"
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secrets
key: rootpw
---
apiVersion: v1
kind: Service
metadata:
name: phpmyadmin-service
spec:
type: ClusterIP
selector:
app: phpmyadmin
ports:
- port: 8085
targetPort: 8087
所以有些东西给了我 502 Bad Gateway 错误,我不知道它是什么。提前感谢您的回复!
解决方案
推荐阅读
- ios - 创建圆角时如何添加边框UITextField Swift
- hibernate - 我们什么时候需要 .save() Spring 中的实体?
- python - 值错误转换数组中元素的数据类型
- django - Pycharm 社区版中未解决的引用“地址”
- java - 如何处理 REST API 网络服务验证码验证请求?
- php - mysql insert 在在线服务器上不起作用(Godaddy Linux 主机)
- c# - 如何设置精灵渲染器的 if 条件?
- url - 如何将特定的 url 重定向到不同的域(Nginx)
- c# - 网格中的 WPF ComboBox - 如何在视图模型中指定搜索路径
- c# - 如何在 monobehaviour 类中重用代码?