我进行了以下设置:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      labels:
        name: mongo-claim0
      name: mongo-claim0
      namespace: my-app
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 100Mi
    status: {}



apiVersion: v1
kind: ReplicationController
metadata:
  labels:
    name: mongo
  name: mongo-controller
  namespace: my-app
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: mongo
    spec:
      containers:
      - image: mongo
        name: mongo
        ports:
        - name: mongo
          containerPort: 27017
        volumeMounts:
        - mountPath: /data/db
          name: mongo-claim0
      restartPolicy: Always
      volumes:
      - name: mongo-claim0
        persistentVolumeClaim:
          claimName: mongo-claim0



apiVersion: v1
kind: Service
metadata:
  name: mongo
  namespace: my-app
  labels:
    name: mongo
spec:
  ports:
  - port: 27017
    targetPort: 27017
  selector:
    name: mongo


当我尝试缩放此Pod,Minikube UI显示: br />
我在新的pod上出错:


initAndListen中的异常:98无法锁定文件:
/ data / db / mongod。锁定资源暂时不可用


能否帮助我扩展具有持久性存储的Pod?

评论

问题不在于扩展Pod,问题在于mongodb如何用于复制,并且不适用于共享存储...(总之,这与kubernetes无关,这是mongodb特有的架构问题) >
@Tensibai请将此评论作为答案

#1 楼

https://www.mongodb.com/blog/post/running-mongodb-as-a-microservice-with-docker-and-kubernetes


MongoDB数据库节点具有状态。如果容器
发生故障并重新计划,则数据丢失是不希望的
(可以从副本集中的其他节点恢复,但是
需要时间) 。为了解决这个问题,可以使用诸如Kubernetes中的Volume抽象之类的功能将容器中的临时性
MongoDB数据目录映射到容器中数据持久存在的持久位置。故障和重新安排。


像@Tensibai指出,该问题与复制有关。根据此博客,可以按以下方法解决。