3つのレプリカを作成する以下のmongodb statefulsetを作成していますが、コードを実行すると、以下のエラーが発生し、すべてのポッドがCrashLoopBackOff状態になります。
これは、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
は最新のモンゴ(4.2)ではサポートされていません doc で確認できます。イメージタグを指定していないため、この場合、最新のlatest
がプルされます。
image: mongo:4.0
を設定した場合、構成は正しいはずです。
小さなファイルを削除するか、提供されている以下のブロックを試してください。
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