我在Kubernetes中有以下PersistentVolumeClaim
和Deployment
:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: my-app-storage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 25Gi
storageClassName: "gp2"
...
containers:
...
volumeMounts:
- name: my-app-storage
mountPath: /var/my-app/storage
readOnly: false
...
volumes:
- name: my-app-storage
persistentVolumeClaim:
claimName: my-app-storage
问题是,这只会创建一个安装到每个吊舱中的单个卷。不过我有replicas: 3
。如何为每个吊舱创建卷?我需要继续使用Deployment
,不能迁移到使用StatefulSet
。这可能吗?目前,这是在一个单独的Kubernetes工作节点上调度所有pod,因为卷是共享的,并且只装载到一个Kubernete工作节点上。
我最终将Deployment
转换为StatefulSet
,这就成功了。关键是删除PersistentVolumeClaim
并将Deployment更新为StatefulSet,并使用以下道具:
volumeClaimTemplates:
- metadata:
name: storage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 16Gi