[英]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.