问题描述
我需要将 statefulsets 与副本一起使用,我们需要在我们的 stateful set 中使用在工作节点之间共享的块卷。当它们在多个工作节点上运行时,我没有找到在 statefulsets 副本中使用它们的方法。以下是步骤:
创建基于区块体积的 PV 和 PVC:
---
kind: PersistentVolume
apiVersion: v1
Metadata:
name: block-myapp-disk1-pv-vol1
labels:
myapp_vol: "block-myapp-pv-vol1"
namespace: rac
spec:
volumeMode: Block
capacity:
storage: 50Gi
local:
path: /dev/sdd
accessModes:
- ReadWriteMany
nodeAffinity:
required:
nodeselectorTerms:
- matchExpressions:
- key: "app"
operator: In
values:
- myapp01
---
apiVersion: v1
kind: PersistentVolumeClaim
Metadata:
name: block-myapp-pvc-vol1
namespace: rac
spec:
accessModes:
- ReadWriteMany
volumeMode: Block
resources:
requests:
storage: 50Gi
selector:
matchLabels:
myapp_vol: "block-myapp-pv-vol1"
创建Statefulset,以下是代码片段:
apiVersion: apps/v1
kind: StatefulSet
Metadata:
name: prodapp
namespace: colds
spec:
selector:
matchLabels:
apptype: prodapp
serviceName: prodapp
replicas: 2
template:
Metadata:
labels:
apptype: prodapp
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: apptype
operator: In
values:
- prodapp
topologyKey: "kubernetes.io/hostname"
volumes:
- name: myappvol1
persistentVolumeClaim:
claimName: block-myapp-pvc-vol1
containers:
- name: bprodapp1-dep
image: prodapp:latest
imagePullPolicy: IfNotPresent
securityContext:
privileged: false
command: [/usr/sbin/init]
env:
- name: container
value: "true"
volumeDevices:
- name: myappvol1
devicePath: /dev/myapp-disk1
我无法在所有副本上使用 myappvol1
kubectl describe pvc block-myapp-pvc-vol1 -n colds
Name: block-myapp-pvc-vol1
Namespace: rac
StorageClass:
Status: Pending
Volume:
Labels: <none>
Annotations: <none>
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Block
Used By: prodapp-1
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
normal FailedBinding <invalid> (x182 over <invalid>) persistentvolume-controller no persistent volumes available for this claim and no storage class is set
有没有办法可以在所有 Pod 上使用相同的块卷。就我而言,设备 /dev/sdd
向所有标记为 app:myapp01
的工作节点公开。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)