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?
#1 楼
https://www.mongodb.com/blog/post/running-mongodb-as-a-microservice-with-docker-and-kubernetesMongoDB数据库节点具有状态。如果容器
发生故障并重新计划,则数据丢失是不希望的
(可以从副本集中的其他节点恢复,但是
需要时间) 。为了解决这个问题,可以使用诸如Kubernetes中的Volume抽象之类的功能将容器中的临时性
MongoDB数据目录映射到容器中数据持久存在的持久位置。故障和重新安排。
像@Tensibai指出,该问题与复制有关。根据此博客,可以按以下方法解决。
评论
问题不在于扩展Pod,问题在于mongodb如何用于复制,并且不适用于共享存储...(总之,这与kubernetes无关,这是mongodb特有的架构问题) >@Tensibai请将此评论作为答案