首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在库伯奈特没有发现StorageClass

在库伯奈特没有发现StorageClass
EN

Stack Overflow用户
提问于 2021-06-14 17:12:54
回答 3查看 1.4K关注 0票数 0

我目前正在设置Kubernetes集群,但我注意到没有定义默认的存储类。

代码语言:javascript
复制
u@n:~$ kubectl get sc                                                                         
No resources found in default namespace.

在阅读文档时,有很多在云提供商上部署集群时使用的存储类示例,而不是自托管的。在我的情况下,我需要使用什么样的存储类?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-06-15 06:47:38

如果使用自托管,也意味着您使用的是裸金属Kubernetes集群(也就是您在某些机器上安装了Kubernetes ),那么您可能需要提供自己的存储解决方案(就像您需要提供网络插件和侵入控制器一样)。

当然,您可以使用本地存储,这始终是一种选择。但是,这样的存储无法抵御节点故障,除非使用它的应用程序本身对节点故障具有弹性。

对于某些应用程序(如Kafka、ElasticSearch、多主数据库,如galera等),可以使用本地存储,这意味着数据可以直接从节点选择的路径上获得。只有在那个特定的节点上。

仅在特定节点上拥有数据意味着需要该数据的Pod (也就是需要PV绑定到该路径的PVC )被绑定在该奇异节点上,而不能在任何其他节点上运行。这意味着它根本无法抵御失败。

但是,就像我说过的,如果应用程序是由多个Pods组成的,并且如果大部分的Pods仍然在运行的话,它可能是可以生存的。

https://kubernetes.io/blog/2019/04/04/kubernetes-1.14-local-persistent-volumes-ga/

另一种选择是使用Rook (它是一个存储操作符),使用Ceph,您可以在Kubernetes集群的基础上提供自己的HA存储基础设施。

基本上,您需要提供空磁盘和资源,以便在集群之上运行Ceph基础设施,您将拥有Ceph块存储类(以及更多),这意味着对节点故障的卷弹性(当然取决于Ceph可用节点和磁盘的数量),并且可以从任何节点请求。

它是一个复杂的集群基础设施,但是它非常稳定,对于非测试集群来说也是一个有效的选择。

https://rook.io/

还有很多其他的选项和产品,这些文档可以帮助您根据您的需求来决定要使用什么:https://kubernetes.io/docs/concepts/storage/storage-classes/

票数 1
EN

Stack Overflow用户

发布于 2021-06-14 18:34:05

你需要创建StorageClass对象-

代码语言:javascript
复制
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: standard
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
reclaimPolicy: Retain
allowVolumeExpansion: true
mountOptions:
  - debug
volumeBindingMode: WaitForFirstConsumer

提供程序值将确定用于提供持久卷的卷插件。在这种情况下,它是AWS EBS。这里是提供程序的列表。

参数对于AWS EBS卷类型,gp2是默认的卷类型。

您可以从库伯奈特斯博士获得有关存储类的更多详细信息。

票数 1
EN

Stack Overflow用户

发布于 2021-06-15 06:55:57

通常,您可以从Kubernetes文档开始。这里,您可以找到存储类概念。每个StorageClass都有一个提供程序,用于确定用于配置PV的卷插件。必须指定此字段。本地卷可以帮你。请看下面的例子:

代码语言:javascript
复制
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

本地卷目前不支持动态配置,但是仍然应该创建一个StorageClass来将卷绑定延迟到Pod调度。这是由WaitForFirstConsumer卷绑定模式指定的。

延迟卷绑定允许调度程序在为PersistentVolume选择合适的PersistentVolumeClaim时考虑到Pod的所有调度约束。

如果您正在寻找为裸金属集群配置存储的完整指南,您可以找到它这里。正如我前面提到的,本地卷目前不支持动态配置。但是,如果您正在使用NFS服务器,则可以解决此问题。看看本指南

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67974530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档