$ nano 00-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: mysql-pass
type: Opaque
data:
password: YWRtaW4 =
$ nano 01-pv-mysql.yml
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-persistent-storage
labels:
app: wordpress
tier: mysql
spec:
capacity:
storage: 2Gi
accessModes:
- ReadWriteMany
nfs:
server: 10.75.168.100
# Exported path of your NFS server
path: "/nfs/mysql"
$ nano 01-pv-wordpress.yml
# Create PersistentVolume
# change the ip of NFS server
apiVersion: v1
kind: PersistentVolume
metadata:
name: wordpress-persistent-storage
labels:
app: wordpress
tier: frontend
spec:
capacity:
storage: 2Gi
accessModes:
- ReadWriteMany
nfs:
server: 10.75.168.100
# Exported path of your NFS server
path: "/nfs/html/wordpress"
$ 02-pvc-mysql.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-persistent-storage
labels:
app: wordpress
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
$ 02-pvc-wordpress.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wordpress-persistent-storage
labels:
app: wordpress
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
$ 03-mysql-deploy.yml
apiVersion: v1
kind: Service
metadata:
name: wordpress-mysql # will be used as a value in
labels: # WORDPRESS_DB_HOST in wordpress-deploy.yml
app: wordpress
spec:
ports:
- port: 3306
selector:
app: wordpress
tier: mysql
clusterIP: None
---
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: mysql:5.6
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass # the one generated before in secret.yml
key: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage # which data will be stored
mountPath: "/var/lib/mysql"
volumes:
- name: mysql-persistent-storage # PVC
persistentVolumeClaim:
claimName: mysql-persistent-storage
$ 03-wordpress-deploy.yaml
# create a service for wordpress
apiVersion: v1
kind: Service
metadata:
name: wordpress
labels:
app: wordpress
spec:
type: ClusterIP
selector:
app: wordpress
tier: frontend
ports:
- protocol: TCP
port: 80
targetPort: 80
---
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:4.8-apache
- image: wordpress:apache
name: wordpress
env:
- name: WORDPRESS_DB_HOST
value: wordpress-mysql
- name: WORDPRESS_DB_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass # generated before in secret.yml
key: password
ports:
- containerPort: 80
name: wordpress
volumeMounts:
- name: wordpress-persistent-storage
mountPath: "/var/www/html" # which data will be stored
volumes:
- name: wordpress-persistent-storage
persistentVolumeClaim:
claimName: wordpress-persistent-storage
$ ingress.yaml
apiVersion: extensions/ v1beta1
kind: Ingress
metadata:
name: wordpress
annotations:
kubernetes.io/ ingress.class: nginx
spec:
rules:
- host: wordpress.oowy.fr
http:
paths:
- path: /
backend:
serviceName: wordpress
servicePort: 80
Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.
OK En savoir plus