清理localstorage_Kubernetes v1.14.0 Local Storage初探(一)

0b5a1428193046e1ad6a7432152cb196.png

近日kubernetes v1.14.0正式发布了,这个版本带来的一个新特性就是本地持久化管理( Local StorageManagement)特性正式GA(稳定)了。

Local存储最早是在1.7版本引入的,最早是为了替换hostPath volume。

由于Local Storage目前还不支持动态分配使用,本文主要介绍Local Storage的静态使用方式。

集群部署

在开始之前,我们先需要部署一套Kubernetes集群环境。这里使用Nebulogy平台部署程序,帮助我们快速部署最新的v1.14.0集群。

d1142e205bdc509b0abb188df5bca6fa.png 6cc589f1a2c74e9d19eec0ef3cf94287.png ba57048bb4726d4d4102d33198d2ac7c.png

手动-静态使用

集群环境准备好之后,我们就可以开始使用Local Storage了。在开始之前我们先下载好示例代码文件。

下载示例文件

git clonehttps://github.com/lusyoe/k8s-local-storage.git

进入static子目录,示例文件介绍:

1. default_example_storageclass.yamllocal-storage的storageclass定义,通过该文件,可以延迟绑定pv-pvc,只有当消费PVC时,才去绑定PV;

2. manual-pv.yaml
local-storage定义声明,标识使用的本地目录,并且运行所在的节点;

3. simple-pvc.yaml
消费PV的PVC,通过该文件可以提供给Pod消费,也可以绑定Local PV。

在部署之前,我们还需要到指定的运行节点上面去创建本地目录,否则POD将会启动失败,提示以下错误:

MountVolume.NewMounter initialization failed for volume "example-local-pv":

path "/mnt/disks/ssd1" does not exist

示例部署

修改完pv配置,并且提前创建到local目录,就可以开始部署了。执行以下命令完成部署:

kubectl apply -f static/

最后到指定节点的对应目录上,查看是否生成了SUCCESS文件,文件内容应该为:hello k8s localstorage。

73ea1a79aa6fa47bcaa727d58f8adbfc.png

延迟绑定测试

通过上面步骤,我们直接就完成了所有的部署,但是并没有看到延迟绑定的过程,我们这次可以一步步的部署,查看是否有延迟绑定。

清理部署

我们先清理掉先前部署的Local Storage:

kubectl delete -f static/

部署StorageClass

必须要先部署StorageClass,通过其中的

volumeBindingMode:WaitForFirstConsumer来实现PVC的延迟绑定。

使得PV Controller并不会立刻为PVC做Bound,而是等待某个需要使用该local pv的Pod完成调度后,才去做Bound。

kubectl apply -f static/

default_example_storageclass.yaml

部署PV

部署Local Storage,声明使用的本地存储路径和运行的节点,并且指定Local StorageClass。

kubectl apply -f static/manual-pv.yaml

部署PVC

现在再来部署PVC,查看PVC是否会出现延迟绑定:

kubectl apply -f static/simple-pvc.yaml

d603a62f517525bec4bff807214c2bc5.png

通过上图,可以看到,现在PVC确实是处于Pending状态,我们最后再部署Pod,测试PVC是否在Pod调度完成,运行时,开始绑定的。

部署Pod

测试Pod中消费了PVC,PVC在被消费的时候就会去绑定消费PV了。

kubectl apply -f static/pod-example.yaml

f8ddaadcdb85a2d0adba6e90c75403fc.png

这里使用的Local Storage还比较简单,但是也看出来跟hostPath的区别了,一是延迟消费,二是自动调度漂移到PV申明的节点上去了,无需我们再在Pod中指定了。

但是也看出了,Local Storage的使用还是稍显麻烦,每次都要去手动创建PV、创建本地路径。那是否有更方便的方式呢?

肯定是有的,

下一篇将会介绍Local StorageProvisioner,帮助我们自动创建PV并维护生命周期。

相关阅读

云服务平台的架构及优势

[新型容器+Kubernetes]GPDB on PKS:容器化的MPP数据库

d2033b9f8a20812e0d31a924c54cfe5d.png

戳“

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值