27.17.3.6. GlusterFS 对象定义
glusterfs-storageclass.yaml
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: slow provisioner: kubernetes.io/glusterfs parameters: 1 resturl: http://127.0.0.1:8081 2 restuser: admin 3 secretName: heketi-secret 4 secretNamespace: default 5 gidMin: "40000" 6 gidMax: "50000" 7 volumeoptions: group metadata-cache, nl-cache on 8 volumetype: replicate:3 9 volumenameprefix: custom 10
- 1
- 列出是必须的,以及几个可选参数。如需了解更多参数,请参阅 注册 存储类。
- 2
- heketi (用于 Gluster 的卷管理 REST 服务)URL,可按需置备 GlusterFS 卷。常规格式应为
{http/https}://{IPaddress}:{Port}
。这是 GlusterFS 动态置备程序强制参数。如果 heketi 服务作为可路由的服务在 OpenShift Container Platform 中公开,它将具有可解析的完全限定域名 (FQDN) 和 heketi 服务 URL。 - 3
- heketi 用户有权访问创建卷。通常为 "admin"。
- 4
- 识别包含与 heketi 对话时使用的用户密码的 Secret。可选;当省略
secretNamespace
和secretName
时,将使用空密码。提供的 secret 必须是"kubernetes.io/glusterfs"
类型。 - 5
- 上述
secretName
的命名空间。可选;当省略secretNamespace
和secretName
时,将使用空密码。提供的 secret 必须是"kubernetes.io/glusterfs"
类型。 - 6
- 可选。这个 StorageClass 的卷的 GID 范围最小值。
- 7
- 可选。这个 StorageClass 的卷的 GID 范围的最大值。
- 8
- 可选。新创建的卷的选项。它允许性能调整。如需了解更多 GlusterFS 卷选项,请参阅调整 卷选项。
- 9
- 可选。要使用的卷类型。
- 10
- 可选。启用自定义卷名称支持,其格式如下:
<volumenameprefix>_<namespace>_<claimname>_UUID
。如果您使用这个 storageClass 在项目project1
中创建一个名为myclaim
的新 PVC,则卷名称是custom-project1-myclaim-UUID
。
注意
如果没有指定 gidMin
和 gidMax
值,其默认值分别为 2000 和 2147483647。每个动态置备的卷都将获得这个范围中的 GID(gidMin-gidMax
)。当相应的卷被删除时,池中会发布这个 GID。GID 池为每个 StorageClass 使用。如果两个或多个存储类具有 GID 范围,则置备程序可能会分配重复的 GID。
当使用 heketi 身份验证时,包含 admin 键的 Secret 也应存在:
heketi-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: heketi-secret
namespace: default
data:
key: bXlwYXNzd29yZA== 1
type: kubernetes.io/glusterfs
- 1
- base64 编码的密码,例如
echo -n "mypassword" | base64
注意
当 PV 被动态置备时,GlusterFS 插件会自动创建一个 Endpoints 和一个无头服务,名为 gluster-dynamic-<claimname>
。删除 PVC 时,这些动态资源会被自动删除。