Requirement:
We have existing docker images for Oracle DB 18.3 which is running fine.We need to move them to kubernetes cluster which is running on the same host.
Solution:
- Label nodes for nodeSelector usages
kubectl label nodes instance-cas-db2 dbhost=livesqlsb
kubectl label nodes instance-cas-mt2 mthost=livesqlsb
- To Create: kubectl create -f <yaml file>
- Create Peresistent Volumes DB NFS Files storage . yaml is like
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: livesqlsb-pv-nfs-volume1
spec:
capacity:
storage: 300Gi
accessModes:
- ReadWriteMany
nfs:
path: "/cas-data"
server: 100.106.148.12
- Create Persistent Volumne Claim for DB NFS file storage. yaml is like
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: livesql-pv-nfs-claim1
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 300Gi
- Create Service for DB to be accessed by other Apps in the K8S cluster. yaml is like
apiVersion: v1
kind: Service
metadata:
labels:
app: livesqlsb-db
name: livesqlsb-db-service
namespace: default
spec:
clusterIP: None
ports:
- port: 1521
protocol: TCP
targetPort: 1521
selector:
app: livesqlsb-db
- Create DB Pod in the K8S cluster. yaml is like
apiVersion: v1
kind: Pod
metadata:
name: livesqlsb-db
labels:
app: livesqlsb-db
spec:
volumes:
- name: livesqlsb-db-pv-storage1
persistentVolumeClaim:
claimName: livesql-pv-nfs-claim1
containers:
- image: oracle/database:18.3v2
name: livesqldb
ports:
- containerPort: 1521
name: livesqldb
volumeMounts:
- mountPath: /opt/oracle/oradata
name: livesqlsb-db-pv-storage1
env:
- name: ORACLE_SID
value: "LTEST"
- name: ORACLE_PDB
value: "ltestpdb"
nodeSelector:
dbhost: livesqlsb
No comments:
Post a Comment