5d5c7619a1
* zh-trans: add docs/getting-started-guides/ubuntu/storage.md * zh-trans: updates per comments
3.9 KiB
3.9 KiB
title, content_template
| title | content_template |
|---|---|
| 存储 | templates/task |
{{% capture overview %}}
本文解释了如何在集群中安装和配置持久化存储。
{{% /capture %}}
{{% capture prerequisites %}}
本文假设您已经有一个用 Juju 部署、正在运行的集群。
{{% /capture %}}
{{% capture steps %}}
Ceph 持久卷
Canonical 的 Kubernetes 发行版允许添加持久化存储设备,例如 Ceph。 配合 Juju Storage功能, 可以跨云平台,添加持久化存储。
部署一个至少有三个 ceph-mon 和三个 ceph-osd 单元的存储池。
juju deploy cs:ceph-mon -n 3
juju deploy cs:ceph-osd -n 3
关联这些单元:
juju add-relation ceph-mon ceph-osd
列出云上 Juju 可用的存储池:
juju storage-pools
输出:
Name Provider Attrs
ebs ebs
ebs-ssd ebs volume-type=ssd
loop loop
rootfs rootfs
tmpfs tmpfs
{{< note >}}
注意列表使用的是 AWS,不同的云有不同的存储池名称。
{{< /note >}}
以 “名字,大小,数量”的格式往 ceph-osd charm 中添加存储池:
juju add-storage ceph-osd/0 osd-devices=ebs,10G,1
juju add-storage ceph-osd/1 osd-devices=ebs,10G,1
juju add-storage ceph-osd/2 osd-devices=ebs,10G,1
接下来将 Kubernetes 和存储集群相关联:
juju add-relation kubernetes-master ceph-mon
现在我们可以在 Kubernetes 中列举可用的持久卷, 集群中的负载可以通过 PVC 申领来使用这些持久卷。
juju run-action kubernetes-master/0 create-rbd-pv name=test size=50
本例中创建了 50 MB 大小的 “test” Rados 块设备 (rbd)。
在 Kubernetes 集群上使用如下所示的 watch 命令,可以看到 PV 加入列表,并被标记可用的过程:
watch kubectl get pv
输出:
NAME CAPACITY ACCESSMODES STATUS CLAIM REASON AGE
test 50M RWO Available 10s
要使用这些持久卷,pods 需要关联一个持久卷申领,这超出了本文档的讨论范围。 参见持久卷获取更多信息。
{{% /capture %}}