023 云原生之 Kubernetes 的存储
Kubernetes 中的存储是以卷来描述的。卷有静态卷和动态卷两种。云原生基础架构下,大多数场景需要使用动态卷。
ConfigMap 资源提供了一种将配置数据注入 Pod 的方法。存储在 ConfigMap 对象中的数据可以直接映射到 Pod 中。
emptyDir 是与 Pod 生命周期相同的卷。在 Pod 创建时会先创建卷,在 Pod 销毁时,该卷也会被销毁。因此,emptyDir 主要用作临时空间。默认情况下,emptyDir 可以存储在任何介质上,也可以为了性能而将其创建在内存中。如果创建在内存中,则耗费的内存空间将计入该 Pod 的内存限制中。
glusterfs 是 RedHat 公司推出的集群文件系统,性价比高于存储厂商的方案。
hostPath 卷是指将在主机节点的文件系统中的文件或目录加载到 Pod 中。一般情况下,为了能够自动管理 Pod,不建议使用这种卷,但在一些特定情况下,可以使用系统的文件,例如要访问/var/lib/docker,/sys 等目录时。
在有些场景下,需要在单个 Pod 中共享一个卷用于多个用途。例如用一个 Pod 包含一个 Drupal 站点,内有 Web 站点和 MySql 数据库两个容器。如果不用 subPath 方式,管理人员需要创建两个持久卷,如果采用 subPath 方式,则只需要创建一个持久卷,并在其中创建两个子目录 html 和 mysql 即可。
持久卷声明(persistentVolumeClaim)是指在创建 Pod 时根据 storageClass 动态申请卷,然后加载到 Pod 中。这是在云原生架构下强烈建议的方式。
基于角色的访问控制(Role-based access control, RBAC)是 Kubernetes 基于某个用户的角色来控制对资源访问的方法。在 RBAC 中,角色包含表示一组权限的规则。角色是指在某个命名空间下的权限规则集合,而集群角色则是面向整个集群的权限规则集合。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/aa83715a3e56b0d0c4363d2ad】。文章转载请联系作者。
评论