amazon-web-services - Kubernetes 无法在 AWS-EBS 上创建 PersistentVolumeClaim

标签 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-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

enter image description here

得到的错误信息是:

Failed to provision volume with StorageClass "generic": Failed to get AWS Cloud Provider. GetCloudProvider returned <nil> instead

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

kubectl get pv
No resources found.

有什么解决办法吗?

谢谢。

最佳答案

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

kubeadm --cloud-provider=aws init ...

或者,您应该将云提供商信息 (cloudProvider) 放入您的配置文件中,它会在初始化期间将云提供商标志添加到 api 和 Controller 管理器:

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"

更多信息:https://medium.com/jane-ai-engineering-blog/kubernetes-on-aws-6281e3a830fe

关于amazon-web-services - Kubernetes 无法在 AWS-EBS 上创建 PersistentVolumeClaim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57876648/

相关文章:

kubernetes - 如果持久卷被删除并重新创建,Kubernetes 持久卷声明是否会再次绑定(bind)?

kubernetes - 如何将 PV 和 PVC 用于*可靠的*持久卷?

amazon-web-services - AWS : APIGateway custom response regex fails to match

docker - 为什么镜像在Kubernetes中的运行方式与在Docker中的运行方式不同?

kubernetes - 监视持久卷性能

azure - Kubernetes 内部唯一入口

python - Stocktwits API - 从脚本获取访问 token ,无需用户交互

amazon-web-services - 在 Golang 中获取用于 AWS S3 图像上传的 S3_REGION

javascript - 在将文件上传到 S3 之前重命名文件

Kubernetes NFS 持久卷 - 同一卷上的多个声明? claim 停滞不前?