Kubernetes云原生存储解决方案openebs部署实践-3.10.0版本(helm部署)

Kubernetes云原生存储解决方案openebs部署实践-3.10.0版本(helm部署)

记录在k8s 1.19.0集群环境下安装openebs 3.10.0。

环境信息如下:

[root@k8s-master ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[root@k8s-master ~]# uname -a
Linux k8s-master 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@k8s-master ~]# kubectl get node
NAME         STATUS   ROLES    AGE   VERSION
k8s-master   Ready    master   16d   v1.19.0
k8s-node1    Ready    worker   16d   v1.19.0
k8s-node2    Ready    worker   16d   v1.19.0
[root@k8s-master ~]# helm version
version.BuildInfo{Version:"v3.6.1", GitCommit:"61d8e8c4a6f95540c15c6a65f36a6dd0a45e7a2f", GitTreeState:"clean", GoVersion:"go1.16.5"}

1. 安装openebs

openebs支持kubectl基于yaml安装,也可以使用helm进行安装。本文基于helm方式。

  1. 配置helm仓库
[root@k8s-master ~]# helm repo add openebs https://openebs.github.io/charts[root@k8s-master ~]# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "grafana" chart repository
...Successfully got an update from the "ingress-nginx" chart repository
...Successfully got an update from the "bitnami" chart repository
...Successfully got an update from the "prometheus-community" chart repository
...Successfully got an update from the "openebs" chart repository
Update Complete. ⎈Happy Helming!
  1. 安装 openebs chart
[root@k8s-master ~]# helm install openebs --namespace openebs openebs/openebs --create-namespace
NAME: openebs
LAST DEPLOYED: Fri Jun 28 15:14:46 2024
NAMESPACE: openebs
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Successfully installed OpenEBS.Check the status by running: kubectl get pods -n openebsThe default values will install NDM and enable OpenEBS hostpath and device
storage engines along with their default StorageClasses. Use `kubectl get sc`
to see the list of installed OpenEBS StorageClasses.**Note**: If you are upgrading from the older helm chart that was using cStor
and Jiva (non-csi) volumes, you will have to run the following command to include
the older provisioners:helm upgrade openebs openebs/openebs \--namespace openebs \--set legacy.enabled=true \--reuse-valuesFor other engines, you will need to perform a few more additional steps to
enable the engine, configure the engines (e.g. creating pools) and create
StorageClasses.For example, cStor can be enabled using commands like:helm upgrade openebs openebs/openebs \--namespace openebs \--set cstor.enabled=true \--reuse-valuesFor more information,
- view the online documentation at https://openebs.io/docs or
- connect with an active community on Kubernetes slack #openebs channel.
  1. 检查部署的资源:
# 部署的chart
[root@k8s-master ~]# helm ls -n openebs
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
openebs openebs         1               2024-06-28 15:14:46.982427602 +0800 CST deployed        openebs-3.10.0  3.10.0# pods
[root@k8s-master ~]# kubectl get pod -n openebs -o wide
NAME                                           READY   STATUS    RESTARTS   AGE     IP             NODE         NOMINATED NODE   READINESS GATES
openebs-localpv-provisioner-685b678c88-lq57l   1/1     Running   0          9m49s   10.244.0.232   k8s-master   <none>           <none>
openebs-ndm-bxzwv                              1/1     Running   0          9m49s   192.168.0.51   k8s-master   <none>           <none>
openebs-ndm-d54bt                              1/1     Running   1          9m49s   192.168.0.53   k8s-node2    <none>           <none>
openebs-ndm-hjnpx                              1/1     Running   2          9m49s   192.168.0.52   k8s-node1    <none>           <none>
openebs-ndm-operator-c959d9d77-dscd2           1/1     Running   0          9m49s   10.244.0.233   k8s-master   <none>           <none># 存储类
[root@k8s-master ~]# kubectl get sc
NAME               PROVISIONER        RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
openebs-device     openebs.io/local   Delete          WaitForFirstConsumer   false                  16d
openebs-hostpath   openebs.io/local   Delete          WaitForFirstConsumer   false                  16d

本文安装的openebs版本较低,3.10.0版本,较新版本的chart仓库已经变更,详情参考官方文档:

官方文档:https://openebs.netlify.app/docs/quickstart-guide/installation

官方仓库:https://github.com/openebs/openebs

2. demo测试

openebs部署完成后会自动创建存储类,我们使用openebs-hostpath这个StorageClass来创建PVC

创建一个示例应用挂载openebs提供的存储进行测试。资源清单文件openebs-test.yaml,包括pvc和pod:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: local-hostpath-pvc
spec:storageClassName: openebs-hostpathaccessModes:- ReadWriteOnceresources:requests:storage: 5Gi
---
apiVersion: v1
kind: Pod
metadata:name: hello-local-hostpath-pod
spec:volumes:- name: local-storagepersistentVolumeClaim:claimName: local-hostpath-pvccontainers:- name: hello-containerimage: busyboxcommand:- sh- -c- 'while true; do echo "`date` [`hostname`] Hello from OpenEBS Local PV." >> /mnt/store/greet.txt; sleep $(($RANDOM % 5 + 300)); done'volumeMounts:- mountPath: /mnt/storename: local-storage

创建资源:kubectl create -f openebs-test.yaml,等待创建完成。

[root@k8s-master openebs]# kubectl get pod -o wide
NAME                       READY   STATUS    RESTARTS   AGE   IP            NODE        NOMINATED NODE   READINESS GATES
hello-local-hostpath-pod   1/1     Running   0          15m   10.244.1.65   k8s-node1   <none>           <none>[root@k8s-master openebs]# kubectl get pvc
NAME                 STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS       AGE
local-hostpath-pvc   Bound    pvc-b240b152-718e-44e2-938f-0255e457ec8f   5Gi        RWO            openebs-hostpath   11m[root@k8s-master openebs]# kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                        STORAGECLASS       REASON   AGE
pvc-b240b152-718e-44e2-938f-0255e457ec8f   5Gi        RWO            Delete           Bound    default/local-hostpath-pvc   openebs-hostpath            8m49s# 检查node1节点的本地路径
[root@k8s-node1 ~]# cat /var/openebs/local/pvc-b240b152-718e-44e2-938f-0255e457ec8f/greet.txt
Fri Jun 28 08:11:00 UTC 2024 [hello-local-hostpath-pod] Hello from OpenEBS Local PV.
Fri Jun 28 08:16:04 UTC 2024 [hello-local-hostpath-pod] Hello from OpenEBS Local PV.
Fri Jun 28 08:21:08 UTC 2024 [hello-local-hostpath-pod] Hello from OpenEBS Local PV.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/865608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【最新鸿蒙应用开发】——用户信息封装

用户管理工具封装 1. 为什么要封装 在进行如下登录功能时&#xff0c; 通常需要将一些用户信息以及token进行持久化保存&#xff0c;以方便下次进行数据请求时携带这些用户信息来进行访问后端数据。下面分享一下鸿蒙当中实用的持久化封装操作。 2. 步骤 封装用户信息管理工具…

Docker系列-Docker镜像分层原理

Docker镜像的分层原理是其实现高效、灵活和可复用性的关键。以下是对Docker镜像分层原理的详细说明&#xff1a; 一、基本概念 Docker镜像是一种轻量级、可执行的独立软件包&#xff0c;它包含运行某个软件所需要的所有内容&#xff0c;如代码、运行时库、环境变量和配置文件…

Mybatis Plus 自动填充注解 @TableField(fill = FieldFill.INSERT_UPDATE)

第一步&#xff1a;在需要自动填充的位置加上注解 通过在创建时间和修改时间上添加 fill 填充字段 进行自动填充 第二步&#xff1a;要想实现自动填充还需要实现MetaObjectHandler接口&#xff0c;在这里实现自动填充的逻辑 Component public class MyMetaObjectHandler …

tinyshop项目部署

参考软件测试之测试用例设计&#xff08;四&#xff09;_管理后台 测试用例-CSDN博客 1、下载xampp 2、修改apache和mysql的端口分别为4431 &#xff0c;8013和3306 3、访问页面&#xff1a;输入ip:端口号&#xff0c;出现以下页面即成功 4、安装tinyshop商城 将解压的tinys…

动态住宅代理IP详细解析

在大数据时代的背景下&#xff0c;代理IP成为了很多企业顺利开展的重要工具。代理IP地址可以分为住宅代理IP地址和数据中心代理IP地址。选择住宅代理IP的好处是可以实现真正的高匿名性&#xff0c;而使用数据中心代理IP可能会暴露自己使用代理的情况。 住宅代理IP是指互联网服务…

Transformation(转换)开发-switch/case组件

一、switch/case组件-条件判断 体育老师要做一件非常重要的事情&#xff1a;判断学生是男孩还是女孩、或者是蜘蛛&#xff0c;然后让他们各自到指定的队伍中 体育老师做的事情&#xff0c;我们同样也会在Kettle中会经常用来。在Kettle中&#xff0c;switch/case组件可以来做类似…

Java 中的字符串替换方法详解:replace, replaceAll 和 replaceFirst

在Java中&#xff0c;字符串的替换是一种常见的操作&#xff0c;特别是在处理文本和格式化输出时。Java提供了几种不同的方法来实现字符串替换&#xff0c;其中包括 replace, replaceAll 和 replaceFirst。本文将详细讨论这些方法的用法、区别以及示例。 1. replace(CharSeque…

被裁了(9年)

那年&#xff08;2015年&#xff09;我刚毕业有一年多&#xff08;20出头&#xff09;&#xff0c;阴差阳错来到了现在的单位。 那时互联网腾起&#xff0c;单位也迅速发展&#xff0c;部门从起初的不到30号人发展到500人&#xff1b;A轮、B轮.....D轮&#xff0c;一轮轮的融资…

【等保2.0的内容有哪些?】

“在“等保2.0”的基础上&#xff0c;分别增加了云计算安全、移动互联安全、物联网安全、工控系统安全、大数据安全5个拓展需求。 《中华人民共和国刑法》第253条&#xff0c;非法将公民个人资料卖给他人&#xff0c;并处罚金。 违反国家相关法律法规&#xff0c;将其在执行公…

vue2使用use注册自定义指令实现输入控制与快捷复制

使用场景 在一些form表单填写内容的时候&#xff0c;要限制输入的内容必须是数值、浮点型&#xff0c;本来el-input-number就可以实现&#xff0c;但是它本身带那个数值控制操作&#xff0c;等一系列感觉不舒服的地方。如果只是使用el-input该多好&#xff0c;只要监听一下输入…

实习总结 --- 资源位业务

测试范围 测试风险 端风险与服务端风险 — 预防措施&#xff1a;注重埋点规范、使用自动化提效、进行配置检查、做好监控建设。 资源位投放方式 方式一&#xff1a;通过麦哲伦平台投放&#xff0c;麦哲伦1.0和2.0均在使用中 方式二&#xff1a;组件化的方式投放。组件化是指…

如何理解康威定律在软件开发中的应用?

康威定律&#xff08;Conways Law&#xff09;在软件开发中的应用&#xff0c;可以帮助我们理解和优化软件系统的架构&#xff0c;同时也可以指导我们如何组织和管理开发团队。以下是对康威定律在软件开发中的具体应用和理解&#xff1a; 1. 系统架构与组织结构匹配 康威定律…

pycharm无法添加python解释器的解决方法

出现该错误的原因是先前创建过重名的解释器&#xff08;虚拟环境&#xff09;&#xff0c;在pycharm配置中没有完全删除干净。解决方法如下&#xff1a; 首先在文件->设置界面&#xff0c;找到解释器设置。 然后先按图所示点击全部显示虚拟环境&#xff1a; 接着将无法添…

JavaScript 中的 CustomEvent

在 JavaScript 中&#xff0c;CustomEvent 是一种可以让开发者自定义事件的机制。它允许你定义一个具有自定义名称和数据的事件&#xff0c;并将其分发到文档中的任何元素上。这在某些情况下比使用原生事件更为灵活和便捷。 创建 CustomEvent 要创建一个 CustomEvent&#xf…

如何快速掌握一门编程语言

学习一门新的编程语言可能是一个具有挑战性的过程&#xff0c;但通过一些系统的方法&#xff0c;可以大大加快这个过程。 目录 第一步&#xff1a;通过书籍和视频课程掌握基本语法1. **学习编程语言的基础知识**2. **掌握字符串处理**3. **掌握正则表达式和解析器**4. **掌握面…

大数据开发如何快速进阶

目录 1. 个人经验与心得分享1.1 试错的价值与机会把握1.2 投入产出比的考量1.3 刻意练习与技能提升1.4 目标设定与职业规划1.5 自我驱动与成长1.6 第一性原理的应用 2. 大数据开发领域的挑战与机遇2.1 技术革新的挑战2.2 数据治理的难题2.3 人才短缺的问题2.4 投入产出比的考量…

Android InputStage事件处理流程

InputStage事件处理流程 对于java层的按键分发从ViewRootImpl.java的WindowInputEventReceiver中的onInputEvent开始&#xff0c;InputStage将输入事件的处理分成若干个阶段&#xff08;Stage&#xff09;, 如果当前有输入法窗口&#xff0c;则事件处理从 NativePreImeInputSt…

权限类漏洞解析——功能权限篇

上一篇【一文理解权限类漏洞产生的原因之未授权篇】有讲过未授权漏洞产生的原因&#xff0c;但是在我实际的挖洞过程中&#xff0c;其实遇见很少&#xff0c;我有印象的好像只有几个非核心站点的中危。 但是对于另一类权限漏洞&#xff0c;功能及数据权限相关的漏洞就不一样了…

计算机图形学入门23:蒙特卡洛路径追踪

1.前言 前面几篇文章介绍了Whitted-style光线追踪&#xff0c;还介绍了基于物理渲染的基础知识&#xff0c;包括辐射度量学、BRDF以及渲染方程&#xff0c;但并没有给出解渲染方程的方法&#xff0c;或者说如何通过该渲染方程计算出屏幕上每一个坐标的像素值。 Whitted-style光…

Java把秒转换成时分秒的形式

在Java中&#xff0c;将秒数转换为时分秒的格式&#xff08;如02:23:45&#xff09;可以通过简单的数学运算和字符串格式化来实现。 以下是一个示例方法&#xff1a; public class TimeConverter {/*** 将秒数转换为时分秒的格式。** param seconds 秒数&#xff0c;整型数值…