Learning kubernetes, docker and helm; I am diving into a Devops programm, and have been asked to deploy a wordpress mysql with helm at my internship enterprises. Tried to do something but the wordpress is unable to connect to the database and i think the database is not able to write to the mounted nfs volume path; really need help and explanation if possible.. tried everything i saw but did not work.
The error i have from wordpress in web browser is Error connecting to databases
Here is my project manifest files, pods status
Service.yaml
apiVersion: v1
kind: Service
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
ports:
- port: 3306
name: wordpress-mysql
protocol: TCP
selector:
app: wordpress
tier: mysql
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
name: wordpress
labels:
app: wordpress
spec:
ports:
- port: 80
name: wordpress
nodePort: 32000
selector:
app: wordpress
tier: frontend
type: NodePort
Deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: mysql
spec:
containers:
- image: bitnami/mysql
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: root
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-pvc
mountPath: "/var/lib/mysql"
volumes:
- name: mysql-pvc
persistentVolumeClaim:
claimName: mysql-pvc
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: frontend
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: frontend
spec:
containers:
- image: wordpress:5.8-apache
name: wordpress
env:
- name: WORDPRESS_DB_HOST
value: wordpress-mysql
- name: WORDPRESS_DB_NAME
value: wordpressdb
- name: WORDPRESS_DB_PASSWORD
value: test123
ports:
- containerPort: 80
name: wordpress
volumeMounts:
- name: wordpress-pvc
mountPath: "/var/www/html"
volumes:
- name: wordpress-pvc
persistentVolumeClaim:
claimName: wordpress-pvc
Pods status
NAME READY STATUS RESTARTS AGE pod/wordpress-fcf86fbd9-q9csh 1/1 Running 0 34h pod/wordpress-mysql-6dfb484d54-wrlnm 1/1 Running 0 34h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.96.0.1 443/TCP 9d service/wordpress NodePort 10.98.97.25 80:32000/TCP 34h service/wordpress-mysql ClusterIP 10.97.50.98 3306/TCP 34h NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/wordpress 1/1 1 1 34h deployment.apps/wordpress-mysql 1/1 1 1 34h NAME DESIRED CURRENT READY AGE replicaset.apps/wordpress-fcf86fbd9 1 1 1 34h replicaset.apps/wordpress-mysql-6dfb484d54 1 1 1 34h
Thank in advance for your help. Really need it
CodePudding user response:
Check out your DB password and WordPress connection password that you are adding into for connection both are different, ideally, it should be the same.
MYSQL_ROOT_PASSWORD : root but WORDPRESS_DB_PASSWORD: test123 try with updating the password for Wordpress so it can connect to MySQL.
WORDPRESS_DB_NAME you have created this DB into MySQL or just adding name ? directly ? it could be due to Wordpress finding for that db and you have not created it. try following this official tut and check once as it is : https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/ it's mostly same only
