Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save sanjaynaikwadi/ce31f1293428655bd84ca9fafc15361e to your computer and use it in GitHub Desktop.
Save sanjaynaikwadi/ce31f1293428655bd84ca9fafc15361e to your computer and use it in GitHub Desktop.
################################################################################
# Create volume for DB server
# https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_atomic_host/7/html/getting_started_with_kubernetes/get_started_provisioning_storage_in_kubernetes
# https://kubernetes.io/docs/getting-started-guides/minikube/#configuring-kubernetes
# https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims
kind: PersistentVolume
apiVersion: v1
metadata:
name: mysql001
labels:
type: local
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/data/mysql001"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: mysql001-1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
################################################################################
---
# https://github.com/kubernetes/examples/blob/master/guestbook/all-in-one/guestbook-all-in-one.yaml
# https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
apiVersion: apps/v1beta2 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: dbserver-deployment
labels:
app: dbserver
spec:
replicas: 1
selector:
matchLabels:
app: dbserver
template:
metadata:
labels:
app: dbserver
spec:
containers:
- name: dbserver
image: mariadb
resources:
requests:
cpu: 400m
memory: 600Mi
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: "my-secret-pw"
# https://kubernetes.io/docs/concepts/storage/persistent-volumes/#claims-as-volumes
volumeMounts:
- mountPath: "/var/lib/mysql"
name: mysqlstorage
volumes:
- name: mysqlstorage
persistentVolumeClaim:
claimName: mysql001-1
---
# Use services to export my app
# https://kubernetes.io/docs/concepts/services-networking/service/
apiVersion: v1
kind: Service
metadata:
name: my-dbserver-service
labels:
app: dbserver
spec:
type: NodePort
ports:
- port: 3306
targetPort: 3306
selector:
app: dbserver
################################################################################
---
# https://github.com/kubernetes/examples/blob/master/guestbook/all-in-one/guestbook-all-in-one.yaml
# https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
apiVersion: apps/v1beta2 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: dbclient-deployment
labels:
app: dbclient
spec:
replicas: 2
selector:
matchLabels:
app: dbclient
template:
metadata:
labels:
app: dbclient
spec:
containers:
- name: dbclient
# Docker Image: https://hub.docker.com/_/adminer/
image: adminer
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 8080
---
# Use services to export my app
# https://kubernetes.io/docs/concepts/services-networking/service/
apiVersion: v1
kind: Service
metadata:
name: my-dbclient-service
labels:
app: dbclient
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
selector:
app: dbclient
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment