我使用的是minicube,我只有一个节点。
我正在使用本地存储来存储数据。
存储类和持久卷
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: local-storage
namespace: app
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: mongodb-pv
namespace: app
spec:
persistentVolumeReclaimPolicy: Delete
storageClassName: local-storage
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /data/mongodb
有状态集
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mongodb
namespace: app
spec:
serviceName: mongodb-service
replicas: 2
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
terminationGracePeriodSeconds: 30
serviceAccount: mongodb-account
containers:
- name: mongodb
image: mongo
ports:
- containerPort: 27017
volumeMounts:
- name: mongo-data
mountPath: /data/db
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
secretKeyRef:
name: secrets
key: mongodb-root-username
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: secrets
key: mongodb-root-password
command: ["/bin/sh"]
args: ["-c", "mongod --replSet=rs0 --bind_ip_all"]
volumeClaimTemplates:
- metadata:
name: mongo-data
spec:
storageClassName: local-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
第一个副本运行良好,但第二个副本仍处于挂起状态。
描述打印此消息:
警告 FailedScheduling 4m56s(x2 over 9m56s)默认调度程序 0/1 个节点可用:1 个节点未找到可绑定的可用持久卷。抢占:0/1 个节点可用:1 抢占对调度没有帮助..
可能是什么问题?
根据文档,当前本地卷不支持动态配置
StorageClass: local-storage
,即使您可以创建 StorageClass。或者,您可以使用 StorageClass: standard
作为您的有状态集,或者您也可以按照 有关如何管理 Kubernetes 中的本地卷的操作。