GCP 中的 Kubernetes PersistentVolume 问题(部署停留在待定状态)
Kubernetes PersistentVolume issues in GCP ( Deployment stuck in pending )
您好,我正在尝试在 google 云平台上的 kubernetes 上为我的 mongoDB 创建一个持久卷,但我卡在待定状态
这是我的清单:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: account-mongo-depl
labels:
app: account-mongo
spec:
replicas: 1
serviceName: 'account-mongo'
selector:
matchLabels:
app: account-mongo
template:
metadata:
labels:
app: account-mongo
spec:
volumes:
- name: account-mongo-storage
persistentVolumeClaim:
claimName: account-db-bs-claim
containers:
- name: account-mongo
image: mongo
volumeMounts:
- mountPath: '/data/db'
name: account-mongo-storage
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: account-db-bs-claim
spec:
storageClassName: do-block-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: account-mongo-srv
spec:
type: ClusterIP
selector:
app: account-mongo
ports:
- name: account-db
protocol: TCP
port: 27017
targetPort: 27017
这是我的 pods 列表
我的 pods 卡在待定状态直到失败
如果您使用的是 GKE,您应该已经设置了动态配置。
storageClassName: do-block-storage
accessModes:
- ReadWriteOnce
"do-block-storage"?你之前在 Digital Ocean 上 运行 吗?您应该能够删除 storageClassName
行并使用 Google 提供的默认供应商。
例如,这是我自己的状态集之一的片段
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: [ "ReadWriteOnce" ]
## Specify storage class to use nfs (requires nfs provisioner. Leave unset for dynamic provisioning)
#storageClassName: "nfs"
resources:
requests:
storage: 10G
我在这里没有指定存储 class,所以它使用默认存储,它在 GCP 上作为永久磁盘提供
$ kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
standard (default) kubernetes.io/gce-pd Delete Immediate false 2y245d
您好,我正在尝试在 google 云平台上的 kubernetes 上为我的 mongoDB 创建一个持久卷,但我卡在待定状态
这是我的清单:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: account-mongo-depl
labels:
app: account-mongo
spec:
replicas: 1
serviceName: 'account-mongo'
selector:
matchLabels:
app: account-mongo
template:
metadata:
labels:
app: account-mongo
spec:
volumes:
- name: account-mongo-storage
persistentVolumeClaim:
claimName: account-db-bs-claim
containers:
- name: account-mongo
image: mongo
volumeMounts:
- mountPath: '/data/db'
name: account-mongo-storage
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: account-db-bs-claim
spec:
storageClassName: do-block-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: account-mongo-srv
spec:
type: ClusterIP
selector:
app: account-mongo
ports:
- name: account-db
protocol: TCP
port: 27017
targetPort: 27017
我的 pods 卡在待定状态直到失败
如果您使用的是 GKE,您应该已经设置了动态配置。
storageClassName: do-block-storage
accessModes:
- ReadWriteOnce
"do-block-storage"?你之前在 Digital Ocean 上 运行 吗?您应该能够删除 storageClassName
行并使用 Google 提供的默认供应商。
例如,这是我自己的状态集之一的片段
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: [ "ReadWriteOnce" ]
## Specify storage class to use nfs (requires nfs provisioner. Leave unset for dynamic provisioning)
#storageClassName: "nfs"
resources:
requests:
storage: 10G
我在这里没有指定存储 class,所以它使用默认存储,它在 GCP 上作为永久磁盘提供
$ kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
standard (default) kubernetes.io/gce-pd Delete Immediate false 2y245d