Skip to content

Instantly share code, notes, and snippets.

@JamborJan
Created October 4, 2019 05:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JamborJan/5f435d61d44ce77383f045a68bc92e72 to your computer and use it in GitHub Desktop.
Save JamborJan/5f435d61d44ce77383f045a68bc92e72 to your computer and use it in GitHub Desktop.
Full WP example
---
###
# cat > pv-wordpress.yml
# kubectl create -f pv-wordpress.yml
apiVersion: v1
kind: PersistentVolume
metadata:
name: wordpress-persistent-storage
labels:
app: wordpress
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
nfs:
path: /html
server: nfs01
---
###
# cat > pv-mysql.yml
# kubectl create -f pv-mysql.yml
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-persistent-storage
labels:
app: mysql
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
nfs:
path: /mysql
server: nfs01
---
###
# cat > pvc-wordpress.yml
# kubectl create -f pvc-wordpress.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wordpress-persistent-storage
labels:
app: wordpress
spec:
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 1Gi
selector:
matchLabels:
app: wordpress
---
###
# cat > pvc-mysql.yml
# kubectl create -f pvc-mysql.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-persistent-storage
labels:
app: mysql
spec:
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 1Gi
selector:
matchLabels:
app: mysql
---
###
# cat > secret-mysql.yml
# kubectl create -f secret-mysql.yml
apiVersion: v1
kind: Secret
metadata:
name: mysql-pass
labels:
app: mysql
type: Opaque
data:
password: YWRtaW4=
---
###
# cat > deploy-mysql.yml
# kubectl create -f deploy-mysql.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
labels:
app: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.7
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
volumeMounts:
- mountPath: /var/lib/mysql
name: mysql-persistent-storage
volumes:
- name: mysql-persistent-storage
---
###
# cat > service-mysql.yml
# kubectl create -f service-mysql.yml
apiVersion: v1
kind: Service
metadata:
name: wordpress-mysql
labels:
app: mysql
spec:
selector:
app: mysql
ports:
- protocol: TCP
port: 3306
targetPort: 3306
---
###
# cat > deploy-mysql.yml
# kubectl create -f deploy-mysql.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
labels:
app: wordpress
spec:
replicas: 2
selector:
matchLabels:
app: wordpress
template:
metadata:
labels:
app: wordpress
spec:
containers:
- name: wordpress
image: wordpress
env:
- name: WORDPRESS_DB_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
- name: WORDPRESS_DB_HOST
value: wordpress-mysql
volumeMounts:
- mountPath: /var/www/html
name: wordpress-persistent-storage
volumes:
- name: wordpress-persistent-storage
---
###
# cat > service-wordpress.yml
# kubectl create -f service-wordpress.yml
apiVersion: v1
kind: Service
metadata:
name: wordpress
labels:
app: wordpress
spec:
selector:
app: wordpress
type: NodePort
ports:
- name: 80-80
nodePort: 31004
port: 80
protocol: TCP
targetPort: 80
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment