Kubernetes在部署中为每个pod创建一个persistentVolume



我在Kubernetes中有以下PersistentVolumeClaimDeployment

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

最新更新