本文解释了如何在集群中安装和配置持久化存储。
本文假设您已经有一个用 Juju 部署、正在运行的集群。
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,不同的云有不同的存储池名称。
以 “名字,大小,数量”的格式往 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 需要关联一个持久卷申领,这超出了本文档的讨论范围。 参见持久卷获取更多信息。
此页是否对您有帮助?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.