[英]GKE ingress is not working with WordPress deployment
我正在尝试在 GKE 上部署 Wordpress,除了入口外一切正常,入口无法连接到后端服务,显示“某些后端服务处于不健康状态”如果有人帮助我,我将不胜感激。
Wordpress 部署 yaml 文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress-deployment
labels:
app: wordpress
spec:
replicas: 1
selector:
matchLabels:
app: wordpress
template:
metadata:
labels:
app: wordpress
spec:
containers:
- name: wordpress
image: wordpress
ports:
- containerPort: 80
volumeMounts:
- name: wordpress-persistent-storage
mountPath: /var/www/html
env:
- name: WORDPRESS_DB_HOST
value: mysql-service
- name: WORDPRESS_DB_USER
value: wpuser
- name: WORDPRESS_DB_PASSWORD
value: pass@123
- name: WORDPRESS_DB_NAME
value: wpdb
- name: WORDPRESS_DEBUG
value: "1"
volumes:
- name: wordpress-persistent-storage
persistentVolumeClaim:
claimName: wordpress-volumeclaim
服务 yaml 文件
apiVersion: v1
kind: Service
metadata:
name: wordpress-service
spec:
type: NodePort
selector:
app: wordpress
ports:
- name: portname
nodePort: 30100
port: 80
targetPort: 80
入口 yaml 文件
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: wordpress-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: my-address
networking.gke.io/managed-certificates: managed-cert
kubernetes.io/ingress.class: "gce"
spec:
rules:
- host: example.com
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: wordpress-service
port:
number: 80
在你的规格
spec:
rules:
- host: example.com
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: wordpress-service
port:
number: 80
你不小心有两个不同的后端:一个用于“example.com”,一个基于路径“/”用于其他任何东西。 由于您没有为“example.com”指定后端,Ingress 使用默认后端,它永远不会返回健康状态。
我的猜测是您实际上并不想要“example.com”,因此从规范中删除它应该可以解决您的问题:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: wordpress-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: my-address
networking.gke.io/managed-certificates: managed-cert
kubernetes.io/ingress.class: "gce"
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: wordpress-service
port:
number: 80
你可以试试go到https://console.cloud.google.com/compute/healthChecks/然后修改wordpress后端的健康检查。 例如,将其从/
更改为/wp-admin/images/wordpress-logo.svg
解决了我的问题。 这在这篇文章https://serverfault.com/questions/826719/how-to-create-a-url-in-a-wordpress-that-will-return-code-200中有所描述。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.