我试图在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
发布于 2022-10-11 00:44:22
在你的规范里
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
发布于 2022-11-27 08:22:10
您可以尝试转到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中描述。
https://stackoverflow.com/questions/74014422
复制