Files
rsop-k8s/cluster2/deployment-mongo-rs.yaml

172 lines
3.7 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo-rs1
namespace: cluster2
spec:
replicas: 1
selector:
matchLabels:
app: mongo-rs1
template:
metadata:
labels:
app: mongo-rs1
spec:
containers:
- name: mongo
image: mongo:7
command: ["mongod", "--replSet", "rs0", "--bind_ip_all"]
ports:
- containerPort: 27017
volumeMounts:
- name: data
mountPath: /data/db
volumes:
- name: data
persistentVolumeClaim:
claimName: mongo-rs1-data
---
apiVersion: v1
kind: Service
metadata:
name: mongo-rs1
namespace: cluster2
spec:
type: ClusterIP
selector:
app: mongo-rs1
ports:
- name: mongo
port: 27017
targetPort: 27017
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo-rs2
namespace: cluster2
spec:
replicas: 1
selector:
matchLabels:
app: mongo-rs2
template:
metadata:
labels:
app: mongo-rs2
spec:
containers:
- name: mongo
image: mongo:7
command: ["mongod", "--replSet", "rs0", "--bind_ip_all"]
ports:
- containerPort: 27017
volumeMounts:
- name: data
mountPath: /data/db
volumes:
- name: data
persistentVolumeClaim:
claimName: mongo-rs2-data
---
apiVersion: v1
kind: Service
metadata:
name: mongo-rs2
namespace: cluster2
spec:
type: ClusterIP
selector:
app: mongo-rs2
ports:
- name: mongo
port: 27017
targetPort: 27017
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo-rs3
namespace: cluster2
spec:
replicas: 1
selector:
matchLabels:
app: mongo-rs3
template:
metadata:
labels:
app: mongo-rs3
spec:
containers:
- name: mongo
image: mongo:7
command: ["mongod", "--replSet", "rs0", "--bind_ip_all"]
ports:
- containerPort: 27017
volumeMounts:
- name: data
mountPath: /data/db
volumes:
- name: data
persistentVolumeClaim:
claimName: mongo-rs3-data
---
apiVersion: v1
kind: Service
metadata:
name: mongo-rs3
namespace: cluster2
spec:
type: ClusterIP
selector:
app: mongo-rs3
ports:
- name: mongo
port: 27017
targetPort: 27017
---
apiVersion: batch/v1
kind: Job
metadata:
name: mongo-rs-init
namespace: cluster2
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: mongo-rs-init
image: mongo:7
command:
- bash
- -c
- |
echo "Waiting for MongoDB replica set members..."
sleep 30
until mongosh --host mongo-rs1:27017 --eval "db.adminCommand({ping:1})" --quiet; do
echo "Waiting for mongo-rs1..."
sleep 5
done
until mongosh --host mongo-rs2:27017 --eval "db.adminCommand({ping:1})" --quiet; do
echo "Waiting for mongo-rs2..."
sleep 5
done
until mongosh --host mongo-rs3:27017 --eval "db.adminCommand({ping:1})" --quiet; do
echo "Waiting for mongo-rs3..."
sleep 5
done
echo "All nodes ready, initializing replica set..."
mongosh --host mongo-rs1:27017 --eval 'rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "mongo-rs1:27017" },
{ _id: 1, host: "mongo-rs2:27017" },
{ _id: 2, host: "mongo-rs3:27017" }
]
})'