Я хочу развернуть Wordpress на GKE. Я написал несколько файлов yaml для этого. Развертывания запускаются, но когда я попадаю в домен, меня перенаправляют на /wp-admin/install.php слишком много раз с http кодом 302. Для своего развертывания я использовал:
- nginx ingress контроллер
- вставлен в мою строку / etc / hosts: ip входящего контроллера example.com
Пожалуйста, найдите ниже yamls:
apiVersion: v1
kind: Namespace
metadata:
name: wordpress
---
apiVersion: v1
kind: Secret
metadata:
name: database-secret
labels:
app: database
namespace: wordpress
data:
ROOT_PASSWORD: xxx
USER: zzz
PASSWORD: yyy
---
apiVersion: v1
kind: ConfigMap
metadata:
name: database-config
labels:
app: database
namespace: wordpress
data:
DATABASE: wordpress-db
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: database-deployment
labels:
app: database
namespace: wordpress
spec:
selector:
matchLabels:
app: database
serviceName: database
replicas: 1
template:
metadata:
labels:
app: database
spec:
containers:
- env:
- name: MYSQL_DATABASE
valueFrom:
configMapKeyRef:
name: database-config
key: DATABASE
- name: MARIADB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: database-secret
key: ROOT_PASSWORD
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: database-secret
key: USER
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: database-secret
key: PASSWORD
image: mariadb/server:10.4
volumeMounts:
- name: wordpress-data
mountPath: /var/lib/mysql
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3306
name: db-server
volumeClaimTemplates:
- metadata:
name: wordpress-data
labels:
app: database
namespace: wordpress
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 5Gi
---
apiVersion: v1
kind: Service
metadata:
name: database-service
labels:
app: database
namespace: wordpress
spec:
type: NodePort
selector:
app: database
ports:
- port: 3306
targetPort: 3306
protocol: TCP
---
apiVersion: v1
kind: ConfigMap
metadata:
name: wordpress-config
labels:
app: wordpress
namespace: wordpress
data:
DATABASE_URL: database-service:3306
WORDPRESS_TABLE_PREFIX: wp_
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: wordpress-themes
namespace: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
storageClassName: standard
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: wordpress-plugins
namespace: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
storageClassName: standard
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress-deployment
labels:
app: wordpress
namespace: wordpress
spec:
replicas: 1
selector:
matchLabels:
app: wordpress
template:
metadata:
labels:
app: wordpress
spec:
volumes:
- name: wordpress-themes
persistentVolumeClaim:
claimName: wordpress-themes
- name: wordpress-plugins
persistentVolumeClaim:
claimName: wordpress-plugins
containers:
- name: wordpress
image: wordpress:php7.4-fpm-alpine
volumeMounts:
- name: wordpress-themes
mountPath: /var/www/html/wp-content/themes/
- name: wordpress-plugins
mountPath: /var/www/html/wp-content/plugins/
ports:
- name: fastcgi
containerPort: 9000
protocol: TCP
env:
- name: WORDPRESS_DB_USER
valueFrom:
secretKeyRef:
name: database-secret
key: USER
- name: WORDPRESS_DB_PASSWORD
valueFrom:
secretKeyRef:
name: database-secret
key: PASSWORD
- name: WORDPRESS_DB_HOST
valueFrom:
configMapKeyRef:
name: wordpress-config
key: DATABASE_URL
- name: WORDPRESS_TABLE_PREFIX
valueFrom:
configMapKeyRef:
name: wordpress-config
key: WORDPRESS_TABLE_PREFIX
- name: WORDPRESS_DB_NAME
valueFrom:
configMapKeyRef:
name: database-config
key: DATABASE
---
apiVersion: v1
kind: Service
metadata:
name: wordpress-service
labels:
app: wordpress
namespace: wordpress
spec:
type: NodePort
selector:
app: wordpress
ports:
- protocol: TCP
port: 9000
targetPort: 9000
name: fastcgi
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-wordpress-configuration
namespace: wordpress
data:
SCRIPT_FILENAME: "/var/www/html/index.php"
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/backend-protocol: "FCGI"
nginx.ingress.kubernetes.io/fastcgi-index: "index.php"
nginx.ingress.kubernetes.io/fastcgi-params-configmap: "wordpress/nginx-wordpress-configuration"
name: wordpress-service
labels:
app: wordpress
namespace: wordpress
spec:
rules:
- host: example.com
http:
paths:
- backend:
serviceName: wordpress-service
servicePort: fastcgi