amazon-web-services - Kubernetes 无法在 AWS-EBS 上创建 PersistentVolumeClaim
问题描述
我使用kubeadm
. Kubernetes 集群工作正常,但是当我尝试创建一个PersistentVolumeClaim
.
首先,我StorageClass
使用以下 YAML 创建了一个,它工作正常。
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"
然后我尝试PersistentVolumeClaim
使用以下 YAML 创建一个:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: slow
labels:
app: nginx
spec:
storageClassName: generic
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
收到以下错误消息:
无法使用 StorageClass“通用”预置卷:无法获取 AWS 云提供商。GetCloudProvider 改为返回 <nil>
顺便说一句,似乎PersistentVolume
从未创建过。
kubectl get pv
No resources found.
任何想法如何解决这个问题?
谢谢。
解决方案
--cloud-provider=aws
这是因为您在运行 kubeadm init 时没有使用该选项
kubeadm --cloud-provider=aws init ...
或者,您应该将云提供商信息( cloudProvider )放入您的配置文件中,它会在初始化期间将云提供商标志添加到 api 和控制器管理器:
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
推荐阅读
- qt - qt:无效的属性名称“进度”。(M16)
- c++ - 是不是不能在 CHtmlView 上下文菜单中添加我们自己的菜单项?
- google-cloud-platform - BigQuery UI 中的 Cloud DataFlow SQL 无法读取 Cloud Storage 文件集:“找不到表:datacatalog.entry”
- drupal-7 - Drupal 7 添加字段以显示在分类的 RSS 提要中
- angular - Angular编译xml就像它会是html
- cordova - 为什么 Cordova (PhoneGap) 不从 canvas.toDataURL() 返回任何数据,而相同的代码在 Cordova 之外工作?
- spring-integration - http:outbound-gateway 跟随重定向
- json - ADF V2 - 使用动态内容和变量的 Web POST 方法
- javascript - 如何在eval中使用动态字符串
- java - 如何在 JsonRPC 参数的函数中切换表?