Skip to content

Instantly share code, notes, and snippets.

@swamibluedata
Last active November 7, 2017 23:20
Show Gist options
  • Save swamibluedata/ace1b4621459725b330d799de6e5b64d to your computer and use it in GitHub Desktop.
Save swamibluedata/ace1b4621459725b330d799de6e5b64d to your computer and use it in GitHub Desktop.
# Create pv and pvc for two directories that epic requires. /opt/bluedata/db and /opt/bluedata/catalog/bundles
# Create two pvs from bd-nas3
NFS_SERVER="10.2.12.27"
NFS_SHARE="/jungle/kubernetes/swami/bd-epic/opt/catalog"
cat >/tmp/bd-epic-catalog.yaml << EOF
kind: PersistentVolume
apiVersion: v1
metadata:
name: bd-epic-catalog
spec:
capacity:
storage: 90Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Delete
nfs:
server: $NFS_SERVER
path: $NFS_SHARE
readOnly: false
EOF
NFS_SERVER="10.2.12.27"
NFS_SHARE="/jungle/kubernetes/swami/bd-epic/opt/db"
cat >/tmp/bd-epic-db.yaml << EOF
kind: PersistentVolume
apiVersion: v1
metadata:
name: bd-epic-db
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Delete
nfs:
server: $NFS_SERVER
path: $NFS_SHARE
readOnly: false
EOF
kubectl create -f /tmp/bd-epic-catalog.yaml -f /tmp/bd-epic-db.yaml
# Create two pvc using the 2 pvs created above
cat >/tmp/bd-epic-catalog-pvc.yaml << EOF
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: bd-epic-catalog-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 90Gi
EOF
cat >/tmp/bd-epic-db-pvc.yaml << EOF
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: bd-epic-db-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
EOF
kubectl create -f /tmp/bd-epic-catalog-pvc.yaml -f /tmp/bd-epic-db-pvc.yaml
# Verify
kubectl get pv
kubectl get pvc
# Create statefulset for epic using pvc created earlier
cat > /tmp/bd-epic-ss.yaml <<EOF
---
apiVersion: v1
kind: Service
metadata:
name: bd-epic
labels:
app: bd-epic
spec:
type=NodePort
ports:
- port: 80
name: http
protocol: TCP
- port: 443
name: https
protocol: TCP
- port: 8080
name: mgmt-rest
protocol: TCP
- port: 4369
name: epmd
protocol: TCP
- port: 9000
name: mgmt-rpc
protocol: TCP
selector:
app: bd-epic
---
apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
name: bd-epic
spec:
serviceName: "bd-epic"
replicas: 1
selector:
matchLabels:
app: bd-epic
template:
metadata:
labels:
app: bd-epic
spec:
terminationGracePeriodSeconds: 10
volumes:
- name: bd-epic-db-pvc
persistentVolumeClaim:
claimName: bd-epic-db-pvc
- name: bd-epic-catalog-pvc
persistentVolumeClaim:
claimName: bd-epic-catalog-pvc
containers:
- name: bd-epic
volumeMounts:
- name: bd-epic-db-pvc
mountPath: /opt/bluedata/db
- name: bd-epic-catalog-pvc
mountPath: /opt/bluedata/catalog/bundles
image: bluedata/bd-epic-k8s:3.2-3400
EOF
# Launch statefulset
kubectl create -f /tmp/bd-epic-ss.yaml
# Expose ports
kubectl expose pods bd-epic-0 --port=22,80,443,8080 --type=NodePort
# Get the physical node
kubectl describe pods bd-epic-0 | grep Node:
kubectl get svc bd-epic-0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment