apiVersion: apps/v1 kind: StatefulSet metadata: name: mongo spec: replicas: 3 serviceName: mongo selector: matchLabels: app: mongo template: metadata: labels: app: mongo spec: initContainers: - name: init image: busybox imagePullPolicy: IfNotPresent command: - sh - -c - | sysctl -w net.ipv4.tcp_keepalive_time=300 sysctl -w net.ipv4.tcp_keepalive_intvl=10 sysctl -w net.ipv4.tcp_keepalive_probes=3 securityContext: privileged: true containers: - name: mongo image: mongo:6.0 args: - "--auth" - "--bind_ip_all" - "--replSet=bfs-mongo-rs0" imagePullPolicy: IfNotPresent env: - name: MONGO_INITDB_ROOT_USERNAME valueFrom: secretKeyRef: name: mongo key: initdb_root_username - name: MONGO_INITDB_ROOT_PASSWORD valueFrom: secretKeyRef: name: mongo key: initdb_root_password ports: - containerPort: 27017 volumeMounts: - name: mongo-data mountPath: /data/db volumes: - name: mongo-data hostPath: path: /data/mongodb/rs0 affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: "app.kubernetes.io/component" operator: In values: - mongo tolerations: - key: "app.kubernetes.io/component" operator: "Equal" value: "mongo" effect: "NoSchedule" --- apiVersion: v1 kind: Service metadata: name: mongo spec: ports: - name: mongo protocol: TCP port: 27017 targetPort: 27017 type: ClusterIP selector: app: mongo