Kubernetes 卷的AttachVolume.NewAttacher失败:无法获取GCE GCECloudProvider,错误为<;零>;

Kubernetes 卷的AttachVolume.NewAttacher失败:无法获取GCE GCECloudProvider,错误为<;零>;,kubernetes,google-compute-engine,Kubernetes,Google Compute Engine,我在GCE上有两个VM实例,kubernetes自行安装(使用以下代码) 我正在尝试创建卷并在我的播客中使用它 我已创建以下磁盘: gcloud compute disks create --type=pd-ssd --size=10GB manual-disk-1 并创建以下yaml文件 pv_manual.yaml: apiVersion: v1 kind: PersistentVolume metadata: name: manually-created-pv spec: acc

我在GCE上有两个VM实例,kubernetes自行安装(使用以下代码)

我正在尝试创建卷并在我的播客中使用它

我已创建以下磁盘:

gcloud compute disks create --type=pd-ssd --size=10GB manual-disk-1
并创建以下yaml文件

pv_manual.yaml:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: manually-created-pv
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 10Gi
  persistentVolumeReclaimPolicy: Retain
  gcePersistentDisk:
    pdName: manual-disk-1
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mypvc
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
pvc_手册.yaml:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: manually-created-pv
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 10Gi
  persistentVolumeReclaimPolicy: Retain
  gcePersistentDisk:
    pdName: manual-disk-1
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mypvc
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
pod.yaml:

apiVersion: v1
kind: Pod
metadata:
   name: sleppypod
spec:
   volumes:
     - name: data
       persistentVolumeClaim:
         claimName: mypvc
   containers:
     - name: sleppycontainer
       image: gcr.op/google_containers/busybox
       command:
         - sleep
         - "5000"
       volumeMounts:
         - name: data
           mountPath: /data
           readOnly: false
当我试图创建pod时,pode get status
ContainerCreating
和on
kubectl get events
我看到:

7s警告失败附加卷附加卷。卷的NewAttacher失败:无法获取GCE GCECloudProvider,错误为

我使用具有计算实例管理员角色(根据)的ServiceAccount运行我的两个实例,并使用
--cloud provider=gce运行我的
kubelet


如何解决此问题?

您需要创建一个storageclass

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  name: standard
provisioner: kubernetes.io/gce-pd
parameters:
  type: pd-standard
  fstype: ext4
  replication-type: none
有关GCE的详细信息


您也可以按照GCE文档操作

是否可以添加
kubectl get sc
的输出?未找到任何资源我只需要创建storageclass?或者我也应该创建磁盘、pv、pvc?请给我看一下使用这个storageclass的pod.yaml文件的示例好吗?您首先需要storageclass。然后,将在创建pv时使用此选项。您不需要创建磁盘。创建storageclass、pv、pvcI创建storageclass,然后创建pvc,但当我运行kubectl get pvc on pending Status时,您是否使用pvc创建了pod?安装到pod计划所在节点的磁盘。如果使用Toleration在主节点上调度pod,则卷将装载在主节点上