Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Kubernetes未能在AWS-EBS上创建PersistentVolumeClaim_Amazon Web Services_Kubernetes_Persistent Volumes - Fatal编程技术网

Amazon web services Kubernetes未能在AWS-EBS上创建PersistentVolumeClaim

Amazon web services Kubernetes未能在AWS-EBS上创建PersistentVolumeClaim,amazon-web-services,kubernetes,persistent-volumes,Amazon Web Services,Kubernetes,Persistent Volumes,我使用kubeadm设置了一个带有四个EC2实例的Kubernetes集群。Kubernetes集群工作正常,但在尝试创建一个PersistentVolumeClaim时失败 首先,我用下面的YAML创建了一个StorageClass,效果很好 kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: generic annotations: storageclass.kubernetes.io/is-def

我使用
kubeadm
设置了一个带有四个EC2实例的Kubernetes集群。Kubernetes集群工作正常,但在尝试创建一个
PersistentVolumeClaim
时失败

首先,我用下面的YAML创建了一个
StorageClass
,效果很好

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: generic
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
  encrypted: "false"
然后,我尝试使用以下YAML创建一个
PersistentVolumeClaim

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: slow
  labels:
    app: nginx
spec:
  storageClassName: generic
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

其中获取了以下错误消息:

未能使用StorageClass“generic”配置卷:未能获取AWS云提供程序。改为返回GetCloudProvider

顺便说一下,似乎从未创建过
PersistentVolume

kubectl get pv
No resources found.
有什么办法解决这个问题吗


谢谢。

这是因为您在运行kubeadm init时没有使用选项
--cloud provider=aws

kubeadm --cloud-provider=aws init ...
或者,您应该将云提供商信息(cloudProvider)放入配置文件中,它将在初始化期间向api和controller manager添加云提供商标志:

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
etcd:
  endpoints:
  - "http://my-etcd1"
  - "http://my-etcd2"
  - "http://my-etcd3"
cloudProvider: aws
apiServerExtraArgs:
  apiserver-count: 3
apiServerCertSANs:
- "my-master-hostname1"
- "my-master-hostname2"
- "my-master-hostname3"
- "10.10.0.50"
- "10.10.0.51"
- "10.10.0.52"
- "127.0.0.1"
token: "my-kube-token"
tokenTTL: "0"

更多信息:

这是因为在运行kubeadm init时没有使用选项
--cloud provider=aws

kubeadm --cloud-provider=aws init ...
或者,您应该将云提供商信息(cloudProvider)放入配置文件中,它将在初始化期间向api和controller manager添加云提供商标志:

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
etcd:
  endpoints:
  - "http://my-etcd1"
  - "http://my-etcd2"
  - "http://my-etcd3"
cloudProvider: aws
apiServerExtraArgs:
  apiserver-count: 3
apiServerCertSANs:
- "my-master-hostname1"
- "my-master-hostname2"
- "my-master-hostname3"
- "10.10.0.50"
- "10.10.0.51"
- "10.10.0.52"
- "127.0.0.1"
token: "my-kube-token"
tokenTTL: "0"

更多信息:

您是否尝试在Internet上搜索“未能获取AWS云提供程序。GetCloudProvider返回了nil”。如果您尝试这些搜索结果中的某些内容,有什么帮助吗?您是否尝试在Internet上搜索“未能获取AWS云提供程序。GetCloudProvider返回了nil”。如果您尝试这些搜索结果中的某些内容,有什么帮助吗?如果我需要插入此功能以从我的Kubernetes连接到EBS卷,该功能已经启动并运行,该怎么办?我的平台已经有很多东西在运行,我不想拆掉它并重新初始化它。。。有没有办法将云提供商添加到其中?如果我需要插入此功能以从我的Kubernetes连接到EBS卷,该功能已经启动并运行,该怎么办?我的平台已经有很多东西在运行,我不想拆掉它并重新初始化它。。。有没有办法将云提供商添加到其中?