I am creating the below mongodb statefulset which creates 3 replicas but when I run the code I get the below error and all pods are in CrashLoopBackOff state.
This is the error which I get when I try kubectl create -f
Error parsing command line: unrecognised option '--smallfiles'
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: mongo
namespace: microservice1
spec:
serviceName: "mongo"
replicas: 3
template:
metadata:
labels:
role: mongo
environment: test
spec:
terminationGracePeriodSeconds: 10
containers:
- name: mongo
image: mongo
command:
- mongod
- "--replSet"
- rs0
- "--smallfiles"
- "--noprealloc"
ports:
- containerPort: 27017
volumeMounts:
- name: mongo-persistent-storage
mountPath: /data/db
- name: mongo-sidecar
image: cvallance/mongo-k8s-sidecar
env:
- name: MONGO_SIDECAR_POD_LABELS
value: "role=mongo,environment=test"
volumes:
- name: mongo-persistent-storage
flexVolume:
driver: rook.io/rook
fsType: ceph
options:
fsName: myfs # name of the filesystem specified in the filesystem CRD.
clusterNamespace: rook # namespace where the Rook cluster is deployed
clusterName: rook
--smallfiles
is not supported in newest mongo (4.2) you can check it in doc, you are not specifying image tag so newest latest
is pull in this case mongo 4.2.
If you set image: mongo:4.0
your configuration should be correct.
Try removing the small file or else please try the block below i have provided.
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app: mongodb-replicaset
name: logs-mongodb-replicaset
spec:
podManagementPolicy: OrderedReady
replicas: 3
revisionHistoryLimit: 10
selector:
matchLabels:
app: mongodb-replicaset
serviceName: logs-mongodb-replicaset
template:
metadata:
creationTimestamp: null
labels:
app: mongodb-replicaset
spec:
containers:
- args:
- --config=/data/configdb/mongod.conf
- --dbpath=/data/db
- --replSet=rs0
- --port=27017
- --bind_ip=0.0.0.0
command:
- mongod
image: mongo:3.6
imagePullPolicy: IfNotPresent
livenessProbe:
exec:
command:
- mongo
- --eval
- db.adminCommand('ping')
failureThreshold: 3
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
name: mongodb-replicaset
ports:
- containerPort: 27017
name: peer
protocol: TCP
readinessProbe:
exec:
command:
- mongo
- --eval
- db.adminCommand('ping')
failureThreshold: 3
initialDelaySeconds: 5
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /data/db
name: datadir
- mountPath: /data/configdb
name: configdir
- mountPath: /work-dir
name: workdir