当前位置: 首页 > news >正文

k8s1.19使用ceph14

一、静态 pv (rbd)方式

1、所有k8s节点安装依赖组件

注意:安装ceph-common软件包推荐使用软件包源与Ceph集群源相同,软件版本一致。

cat > /etc/yum.repos.d/ceph.repo << EOF
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
enabled=1
gpgcheck=0
priority=1[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
enabled=1
gpgcheck=0
priority=1[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
enabled=1
gpgcheck=0
priority=1
EOFyum install ceph-common -y

2、同步配置文件

[root@ceph1 ~]# ssh-copy-id master
[root@ceph1 ~]# ssh-copy-id node1
[root@ceph1 ~]# ssh-copy-id node2[root@ceph1 /etc/ceph]# ceph-deploy --overwrite-conf admin ceph1 ceph2 ceph3 master node1 node2

3、创建存储池并开启rbd功能

创建kube池给k8s

ceph osd pool create kube 128 128

4、创建ceph用户,提供给k8s使用

#查看ceph集群中的认证用户及相关的key
# ceph auth list删除集群中的一个认证用户
ceph auth del osd.0 #(这里只是给个删除用户命令,请勿执行啊!!)#创建用户
ceph auth get-or-create client.kube mon 'allow r' osd 'allow class-read object_prefix rbd_children,allow rwx pool=kube'

5、创建secret资源

ceph auth get-key client.admin | base64ceph auth get-key client.kube | base64
#base64 单向加密一下,k8s不以明文方式存储账号密码

mkdir jtpv && cd jtpv

cat > ceph-admin-secret.yaml << EOF
apiVersion: v1
kind: Secret
metadata:name: ceph-admin-secretnamespace: default
data:key:  #( admin 的key)
type:kubernetes.io/rbd
EOF
cat > ceph-kube-secret.yaml << EOF
apiVersion: v1
kind: Secret
metadata:name: ceph-kube-secretnamespace: default
data:key:  #( kube 的key)
type:kubernetes.io/rbd
EOF
cat > pv.yaml << EOF
apiVersion: v1
kind: PersistentVolume
metadata:name: ceph-pv-test
spec:capacity:storage: 5GiaccessModes:- ReadWriteOncerbd:monitors:- 10.100.100.115:6789- 10.100.100.116:6789- 10.100.100.117:6789pool: kubeimage: ceph-imageuser: adminsecretRef:name: ceph-admin-secretfsType: ext4readOnly: falsepersistentVolumeReclaimPolicy: Retain
EOF

6、创建镜像(说白了就是划出一块空间给它用的意思)

#创建镜像
rbd create -p kube -s 5G ceph-image# rbd ls -p kube
ceph-image
# rbd info ceph-image -p kube

7、k8s创建pv

cat > pvc.yaml << EOF
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: ceph-test-claim
spec:accessModes:- ReadWriteOncevolumeName: ceph-pv-testresources:requests:storage: 5Gi
EOF
cat > pod.yaml << EOF
apiVersion: v1
kind: Pod
metadata:name: ceph-pod
spec:containers:- name: test-podimage: busybox:1.24command: ["sleep", "60000"]volumeMounts:- name: pvcmountPath: /usr/share/busyboxreadOnly: falsevolumes:- name: pvcpersistentVolumeClaim:claimName: ceph-test-claim
EOF
[root@ceph1 ceph]# rbd ls -p kube
ceph-image
[root@ceph1 ceph]# rbd info ceph-image -p kube#发现是由于k8s集群和ceph集群 kernel版本不一样,k8s集群的kernel版本较低,rdb块存储的一些feature 低版本kernel不支持,需要disable。通过如下命令disable
[root@ceph1 ceph]# rbd feature disable kube/ceph-image object-map fast-diff deep-flatten

#验证

kubectl exec -it ceph-pod  -- df -h |grep /dev/rbd0

二、使用cephfs官方的ceph-csi插件

1、ceph 操作部分

在 ceph1 部署节点上同步配置文件,并创建至少一个 mds 服务

使用 cephfs 必须保证至少有一个节点提供 mds 服务

[root@ceph1 /etc/ceph]# ceph-deploy --overwrite-conf admin ceph1 ceph2 ceph3#这里做三个mds
[root@ceph1 /etc/ceph]# ceph-deploy mds create ceph1 ceph2 ceph3[root@ceph1 /etc/ceph]# ceph -s

2、创建存储池 、文件系统

1、创建 cephfs 存储池 :fs_metadata 、fs_data
2、创建 cephfs 文件系统:命名为 cephfs

3、一个 ceph 文件系统需要至少两个 RADOS 存储池,一个用于数据,一个用于元数据。

[root@ceph1 /etc/ceph]# ceph osd pool create cephfs_pool 64
pool 'cephfs_pool' created
[root@ceph1 /etc/ceph]# ceph osd pool create cephfs_metadata 64
pool 'cephfs_metadata' created
[root@ceph1 /etc/ceph]# ceph fs new cephfs cephfs_metadata cephfs_pool[root@ceph1 /etc/ceph]# ceph fs ls

获取集群信息和查看 admin 用户 key(秘钥)

# ceph mon dump# ceph auth get client.admin

注意:这里不需要 base64 加密

3、k8s 操作部分

0.0、所有 k8s节点安装依赖组件

cat > /etc/yum.repos.d/ceph.repo << EOF
[ceph]
name=ceph
baseurl=http://mirrors

相关文章:

k8s1.19使用ceph14

一、静态 pv (rbd)方式 1、所有k8s节点安装依赖组件 注意:安装ceph-common软件包推荐使用软件包源与Ceph集群源相同,软件版本一致。 cat > /etc/yum.repos.d/ceph.repo << EOF [ceph] name=ceph baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_…...

Leetcode 50. Pow(x, n)

文章目录 题目代码&#xff08;9.19 首刷看解析&#xff09; 题目 Leetcode 50. Pow(x, n) 代码&#xff08;9.19 首刷看解析&#xff09; 快速幂 class Solution { public:double myPow(double x, int n) {if(n 0)return 1;if(n 1)return x;if(n INT_MIN) { // 避免-n整…...

hive分区表的元数据信息numRows显示为0

创建分区表 CREATE TABLE `dept_partition`(`deptno` int, `dname` string, `loc` string) PARTITIONED BY (...

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C++)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切&#xff08;ROI&#xff09;功能&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的图像剪切&#xff08;ROI&#xff09;功能的技术背景CameraExplorer如何使用图像剪切&#xff08;ROI&#xff09;功…...

【云原生】聊聊为什么需要docker以及其基础架构

为什么需要docker 在没有docker之前&#xff0c;我们开发、测试、生产其实是根据不同的服务器进行配置的&#xff0c;很可能因为软件配置不同而导致的生产事故&#xff0c;那么如果能较好的解决软件和配置等封装成一个可运行的软件&#xff0c;无需关注配置&#xff0c;那么是…...

“高级前端开发技术探索路由的使用及Node安装使用“

目录 引言1. Vue路由的使用2. VueNode.js的安装使用总结 引言 在当今互联网时代&#xff0c;前端开发技术日新月异&#xff0c;不断涌现出各种新的框架和工具。作为一名前端开发者&#xff0c;我们需要不断学习和探索新的技术&#xff0c;以提升自己的开发能力。本文将深入探讨…...

LeetCode 494.目标和 (动态规划 + 性能优化)二维数组 压缩成 一维数组

494. 目标和 - 力扣&#xff08;LeetCode&#xff09; 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2…...

[36c3 2019]includer

[36c3 2019]includer 题目描述&#xff1a;Just sitting here and waiting for PHP 8.0 (lolphp). 首先来了解一下临时文件包含之PHP - compress.zlib:// 在 php-src 里可以找到和 compress.zlib:// 有关的代码 | code 注意到 STREAM_WILL_CAST&#xff0c;涉及到 cast 经常…...

Python150题day10

④continue练习 从列表 Ist [1,3,5,2,7,9,10] 中输出所有的奇数&#xff0c;代码如下 lst [1, 3, 5, 2, 7, 9, 10] for item in lst: if item % 2 0: continue print(item) 在上述代码中&#xff0c;当遇到偶数时&#xff0c;continue 语句会跳过当前迭代&…...

Autosar工具-Davinci Developer

文章目录 前言一、Davinci Developer简介二、导航栏File(主要是用于保存、打开工程等操作)HomeProject(主要用于导入、导出arxml文件)Graphic(主要在SWC设计时使用,包含对图形界面下的设计工具)Window(主要就是对我们的Dev界面外形修改用的,使得界面更加方便我们使用(比如隐…...

js中的数据结构:栈,队列,链表,字典哈希表,树

栈&#xff1a;先进后出 队列&#xff1a;先进先出 链表&#xff1a; 单链表&#xff1a; 双链表&#xff1a; 环形链表&#xff1a;最后一个数据的next指针不是指向null&#xff0c;指向的是任意之间的一个数据&#xff0c;形成一个环 数组和链表的区别&#xff1a; 字典和哈…...

Verdi实现信号的平移

在Verilog/System verilog中&#xff0c;# xxx可以实现延迟指定时间的功能&#xff0c;而在使用verdi查看信号波形并进行分析时&#xff0c;同样也可以实现类似的功能。 (注&#xff1a;这种信号平移是有其应用场景的&#xff0c;例如&#xff0c;在某些仿真模型中&#xff0c;…...

Leetcode算法入门与数组丨6. 数组双指针、滑动窗口

文章目录 1 双指针基础知识1.1 双指针简介1.2 左右指针&#xff08;对撞指针&#xff09;1.3 快慢指针1.4 分离双指针 2 滑动窗口基础知识2.1 滑动窗口算法介绍2.2 滑动窗口适用范围2.3 固定长度滑动窗口2.4 不固定长度滑动窗口 1 双指针基础知识 1.1 双指针简介 双指针&…...

推荐一本书《横向领导力》

大家好&#xff0c;这里是大话硬件。 今天想给大家推荐一本我近期正在阅读的书籍《横向领导力》。 这本书很早就买了&#xff0c;但是在去年就看了前面3章的内容&#xff0c;而且也没做笔记&#xff0c;仅仅是在书本上写写画画&#xff0c;也没有什么体会&#xff0c;感觉看不懂…...

React实战过程的知识了解

做项目用到react和antd&#xff0c;没办法循序渐进的学习&#xff0c;只能把一些点记录在这里&#xff0c;希望大家指正。 1.杂七杂八 正文 //actionRef&#xff0c;操作表单的预设方法&#xff0c;包括&#xff1a;刷新、重置所有项并刷新、重置到默认项、加载更多、清空选…...

F对象和Q对象

F对象和Q对象 F对象 一个F对象代表数据库中某条记录的字段的信息 作用: 通常是对数据库中的字段值在不获取的情况下进行操作 用于类属性(字段)之间的比较 语法 from django.db.models import F F(列名)解决一种极端事件的产生&#xff0c;比如用户对一条微博的点赞&#xf…...

Visio——绘制倾斜线段

一、形状 -> 图表和数学图形 -> 多行 二、放置多行线&#xff0c;可以发现存在两个折点 三、选择多行线&#xff0c;右键选择删除点&#xff0c;即可得到倾斜线段...

Linux复习-安装与熟悉环境(一)

这里写目录标题 虚拟机ubuntu系统配置镜像Linux命令vi编辑器3个模式光标命令vi模式切换命令vi拷贝与粘贴命令vi保存和退出命令vi的查找命令vi替换命令 末行模式复制、粘贴、剪切gcc编译器 虚拟机 VMware16 官网下载&#xff1a;vmware官网 网盘下载&#xff1a; 链接&#xff…...

Go基础语法:map

9 map Go 语言中提供的映射关系容器为 map &#xff0c;其内部使用 散列表&#xff08;hash&#xff09; 实现。它是一种无序的基于 key-value 的数据结构。 Go 语言中的 map 是引用类型&#xff0c;必须初始化之后才能使用。 9.1 map 定义 Go 语言中 map 的定义语法为&…...

开发板TFTP调试

问题描述 开发板和host(此处指虚拟机linux)可以平通&#xff0c;但是通过uboot tftp下载请求时一直显示T T T, 即超时 使用wireshark抓包也显示超时 措施 关闭windows和linux的防火墙 重新进行下载成功...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

微服务通信安全:深入解析mTLS的原理与实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言&#xff1a;微服务时代的通信安全挑战 随着云原生和微服务架构的普及&#xff0c;服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...