k8s pod使用iscsi块存储

为k8s部署openebs的cstor分布式存储及nfs实现rwx OpenEBS 是一款使用 Go 语言编写的基于容器的块存储开源软件。 OpenEBS 使得在容器中运行关键性任务和需要数据持久化的负载变得更可靠。 阅读详情

k8s pod使用iscsi块存储

一、iscsi设备建立块存储

本例子iscsi设备为tgtd+lvm

lvcreate -V 1G -T volgrp/lvpool -n node4   #添加块设备
[root@target ~]# lvs
node4  volgrp Vwi-aotz--   1.00g lvpool        4.79 

配置/etc/tgt/targets.conf添加以下配置

<target iqn.2001-04.com.example:storage.kube.sys1.xyz>
    backing-store /dev/volgrp/node4
    initiator-address 192.168.3.71
    initiator-address 192.168.3.74
    initiator-address 192.168.3.75
</target>

重启服务

systemctl restart tgtd.service

二、k8s pod挂载

编辑yaml文件iscsipod.yaml

---
apiVersion: v1
kind: Pod
metadata:
  name: iscsipd
spec:
  containers:
  - name: iscsipd-rw
    image: httpd
    volumeMounts:
    - mountPath: "/mnt"
      name: iscsipd-rw
  volumes:
  - name: iscsipd-rw
    iscsi:
      targetPortal: 192.168.3.4:3260
      portals: ['192.168.3.4:3260']
      iqn: iqn.2001-04.com.example:storage.kube.sys1.xyz
      lun: 1
      fsType: ext4
      readOnly: true

执行:

kubectl apply -f iscsipod.yaml

查看pod的信息:

 kubectl describe pod iscsipd
Name:         iscsipd
Namespace:    default
Priority:     0
Node:         k8s-worker02/192.168.3.75
Start Time:   Tue, 23 Feb 2021 16:53:19 +0800
Labels:       <none>
Annotations:  cni.projectcalico.org/podIP: 10.255.2.9/32
Status:       Running
IP:           10.255.2.9
IPs:
  IP:  10.255.2.9
Containers:
  iscsipd-rw:
    Container ID:   docker://bc10d08edcca5a04ba423dfe9b3932dad73da2174641d78d95a8b2abe778490e
    Image:          httpd
    Image ID:       docker-pullable://httpd@sha256:2fab99fb3b1c7ddfa99d7dc55de8dad0a62dbe3e7c605d78ecbdf2c6c49fd636
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Tue, 23 Feb 2021 16:53:50 +0800
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /mnt from iscsipd-rw (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-88ss9 (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  iscsipd-rw:
    Type:               ISCSI (an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod)
    TargetPortal:       192.168.3.4:3260
    IQN:                iqn.2001-04.com.example:storage.kube.sys1.xyz
    Lun:                1
    ISCSIInterface      default
    FSType:             ext4
    ReadOnly:           true
    Portals:            [192.168.3.4:3260]
    DiscoveryCHAPAuth:  false
    SessionCHAPAuth:    false
    SecretRef:          nil
    InitiatorName:      <none>
  default-token-88ss9:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-88ss9
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type    Reason                  Age    From                     Message
  ----    ------                  ----   ----                     -------
  Normal  Scheduled               8m5s   default-scheduler        Successfully assigned default/iscsipd to k8s-worker02
  Normal  SuccessfulAttachVolume  8m5s   attachdetach-controller  AttachVolume.Attach succeeded for volume "iscsipd-rw"
  Normal  Pulling                 7m36s  kubelet, k8s-worker02    Pulling image "httpd"
  Normal  Pulled                  7m35s  kubelet, k8s-worker02    Successfully pulled image "httpd"
  Normal  Created                 7m34s  kubelet, k8s-worker02    Created container iscsipd-rw
  Normal  Started                 7m34s  kubelet, k8s-worker02    Started container iscsipd-rw
  
 kubectl get pod -o wide
iscsipd                                      1/1     Running             0          9m31s   10.255.2.9     k8s-worker02   <none>           <none>

在k8s-worker02查看挂载情况

[root@k8s-worker02 ~]# lsscsi 
[2:0:0:0]    disk    ATA      QEMU HARDDISK    3     /dev/sda 
[8:0:0:0]    storage IET      Controller       0001  -        
[8:0:0:1]    disk    IET      VIRTUAL-DISK     0001  /dev/sdb 

# lsblk 
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   200G  0 disk 
├─sda1            8:1    0     1G  0 part /boot
└─sda2            8:2    0 153.9G  0 part 
  ├─centos-root 253:0    0   150G  0 lvm  /
  └─centos-swap 253:1    0   3.9G  0 lvm  
sdb               8:16   0     1G  0 disk /var/lib/kubelet/pods/c1fee497-392f-4a9e-b9ab-cc49d3cb2538/volumes/kubernetes.io~iscsi/iscsipd-rw

df -hT | grep iscsi
/dev/sdb                ext4      976M  2.6M  958M    1% /var/lib/kubelet/pods/c1fee497-392f-4a9e-b9ab-cc49d3cb2538/volumes/kubernetes.io~iscsi/iscsipd-rw

进入pod

# kubectl exec -it iscsipd bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl kubectl exec [POD] -- [COMMAND] instead.
root@iscsipd:/usr/local/apache2# 
root@iscsipd:/usr/local/apache2# 
root@iscsipd:/usr/local/apache2# ls
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  modules
root@iscsipd:/usr/local/apache2# ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@iscsipd:/usr/local/apache2# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   200G  0 disk 
|-sda1            8:1    0     1G  0 part 
`-sda2            8:2    0 153.9G  0 part 
  |-centos-root 253:0    0   150G  0 lvm  /etc/hosts
  `-centos-swap 253:1    0   3.9G  0 lvm  
sdb               8:16   0     1G  0 disk /mnt
root@iscsipd:/usr/local/apache2# cd /mnt
root@iscsipd:/mnt# echo "wangjinxiong" >> wangjinxiong.txt 
root@iscsipd:/mnt# cat wangjinxiong.txt 
wangjinxiong

Kubernetes接入iSCSI存储 本文简单介绍了k8s集群集成外部iSCSI存储的过程。数据存储使用的是浪潮AS5300G2设备。该设备是以iSCSI接口对外提供存储服务。 阅读详情

相关推荐

云原生时代:块存储在Kubernetes中的集成与应用

在云原生技术栈中,Kubernetes(K8s)已成为容器编排的事实标准。随着微服务架构和分布式系统的普及,状态化应用(如数据库、大数据平台)对存储的需求从简单文件存储转向高性能、低延迟的块存储。本文聚焦块存储在K8s中的集成机制,解析容器存储接口(CSI)如何实现存储厂商与K8s的解耦,探讨动态卷供应、多租户管理、性能优化等核心问题,为企业级云原生应用提供存储层设计指南。核心概念:解析块存储特性、K8s存储模型及CSI架构技术原理:动态卷供应算法、存储性能数学模型实战指南。

AI天才研究院 881

k8s集群新增计算节点使用华为iscsi存储创建的pvc存储挂载报错:FailedMount

k8s集群新增计算节点使用华为iscsi存储创建的pvc存储挂载报错:FailedMount

jiang0615csdn的博客 1245

Kubernetes+iscsi轻量级有状态服务实战:containerd与Calico部署指南

Kubernetes 是云原生时代容器编排的事实标准,而有状态应用(如数据库、监控系统)的可靠运行依赖于稳定、低延迟的块存储抽象。iscsi 作为成熟稳定的 SCSI 协议网络化实现,相比 NFS 更适合高并发写入与数据一致性要求严格的场景;结合 containerd 运行时(轻量、原生、无 dockershim 依赖)和 Calico 网络插件(纯三层、策略精细、单节点零损耗),可构建资源受限环境下的生产级微型云平台。该技术组合广泛应用于职业院校技能大赛、国产化信创适配及中小企业边缘私有云建设,尤其适合单

weixin_32715349的博客 346

智汇华云 | 通过iscsi为容器提供存储

介绍 将远端的存储通过iscsi协议为容器提供块存储,是一种通用的容器存储解决方案,下面将通过kubernetes中的in-tree方式来演示该例子,并分析其中的细节。 iSCSI协议是C/S架构,client是iSCSI initiator,server端为iSCSI target。iSCSI协议的主要功能是利用TCP/IP网络,在主机系统(可称为initiator)和目标存储设备(称为target)之间进行大量的数据封装和可靠传输过程。主要分成两个组成部分,分别为iSCSI服务器端和iSCSI客户端 i

huayun2020的博客 215

【k8s存储--使用OpenEBS做持久化存储】

使用OpenEBS,你可以将有持久化数据的容器,像对待其他普通容器一样来对待。

嘻哈记的运维学习之路 3031

K8s与iSCSI深度协同实战:国赛级存储挂载避坑指南

iSCSI是一种广泛使用的块级网络存储协议,常用于企业核心数据库、ERP等对低延迟和强一致性要求严苛的场景;Kubernetes则通过PersistentVolume抽象层对接外部存储,但原生支持存在诸多隐性断点。当二者在混合云或信创环境中(如麒麟V10、CentOS 7.6)深度集成时,会暴露出Session生命周期错位、CHAP双向认证缺失、Multipath设备识别失败、containerd设备白名单限制、Calico网络策略误杀等关键问题。这些问题直接影响Pod存储挂载成功率与高可用性,尤其在国赛等

weixin_33483304的博客 295

从零开始:在Kubernetes中配置iSCSI存储的完整指南(含避坑技巧)

本文提供了在Kubernetes集群中配置iSCSI存储的完整实战指南。从节点端iSCSI发起端配置、存储设备映射,到K8s中创建持久卷(PV)、持久卷声明(PVC)并挂载至Pod,详细拆解了每一步操作。文章重点分享了网络配置、参数匹配、多路径处理等关键避坑技巧,并探讨了生产环境下的性能调优与监控考量,帮助运维人员高效整合传统企业存储资源。

jj890的博客 185

为什么我不推荐生产环境用MinIO?K8S存储选型深度对比

本文深入对比了MinIO、NFS和Ceph在Kubernetes生产环境中的存储选型。通过性能实测与架构原理分析,指出MinIO作为对象存储,其高延迟和最终一致性模型不适合数据库等核心应用,而应根据具体场景选择Ceph RBD(高性能块存储)或NFS(文件共享)。文章为K8S后端存储选型提供了清晰的决策框架和避坑指南。

potato的博客 1486

Kubernetes 持久化块存储实战:OpenEBS 架构解析与集群部署指南(kubernetes-handbook)

OpenEBS 是一款使用 Go 语言编写的、基于容器的块存储开源软件,本文以 [practice/openebs.md](https://link.gitcode.com/i/21f62431991ad58a0e7c3c62ffb2bfe0) 为核心脉络,结合本仓库 [manifests/openebs](https://link.gitcode.com/i/2942c7158681f7f23f

gitblog_00877的博客 435

docker-iscsi-volume:适用于Docker的ISCSI卷驱动程序插件

docker-iscsi-卷 适用于Docker的ISCSI卷驱动程序插件

SerDes硬件设计原理介绍

接收端:外部差分串行数据------线性均衡器----(CDR从数据中恢复出采样时钟)-----解串器(串行信号转并行信号)-------8B/10B的解码器或解扰器-----FIFO-----FPGA接受差分并行数据。发送端: FPGA发送差分并行数据----FIFO------8B/10B编码器或者扰码器-----串行器(并行信号转串行信号)-----均衡器(滤波)--------TX串行信号差分外发。串行器:8bit的并行数据----2bit的并行数据----1bits的串行数据。

weixin_42304393的博客 1110

Moodle 插件实操手册:6 个高价值插件,把开学季课程一次搭对

开学第一周往往很拧巴:上午要把课件传进课程,下午开始收作业、批作业,晚上还得回讨论区里的学生留言。这些事 Moodle 本体都能干,但三件事挤在一起就是三线作战。省力的做法不是更拼命,而是把重复劳动分派给对口的 Moodle 插件——它们是平台"即插即用"的功能组件,按教学场景各管一摊,全程不需要你碰一行代码。📦 [![Moodle 插件扩展后的课程页面:Boost 主题下的活动导航、课件内容

gitblog_01036的博客 242

扬声器设计避坑指南:用Comsol分析反电动势对THD的影响(附案例文件)

本文深入探讨了扬声器设计中反电动势对总谐波失真的关键影响。通过COMSOL仿真,详细分析了BL值非线性、音圈电感变化等电磁-力-声耦合机制,并提供了从参数化建模到系统级优化的实战指南,帮助工程师精准量化并降低谐波失真,提升扬声器音质。

xx56789的博客 525

taproom 界面导航全解:表格视图、详情面板与状态指示器一栏看懂

taproom 是一款为 Homebrew 打造的终端图形界面(TUI)包管理器,让你在终端里以表格视图快速浏览、搜索、筛选 macOS 软件包,并通过右侧详情面板和状态指示器一眼看清每个包的版本、依赖与安装状态。本文将带你从上到下看懂 taproom 的每一个界面区域,并整理一份完整的快捷键速查表。 [![taproom 终端界面截图:表格视图、详情面板与状态指示器一览](https://ra

gitblog_00050的博客 916

Hypermesh静力学仿真分析与模态分析-02

hypermesh中对较复杂实体进行静力学分析和模态分析,包含材料属性添加,载荷设置等等

Look_forward_的博客 6782

别再死记硬背了!用51单片机的AD/DA和PWM,亲手做个简易示波器信号发生器

本文详细介绍了如何利用51单片机的PWM和AD/DA功能制作简易示波器信号发生器。通过PWM模拟DAC输出波形,结合XPT2046 ADC进行信号测量,实现方波、三角波和正弦波的生成与显示。项目不仅成本低廉,还能帮助电子爱好者深入理解51单片机的核心功能,是理论与实践结合的绝佳案例。

weixin_28675839的博客 265

Longhorn 官方 Helm Chart 部署指南:Kubernetes 分布式块存储的安装、配置与卸载

本文以 Longhorn 项目仓库中的 [chart/app-readme.md](https://link.gitcode.com/i/f06dbbc0e6c835642f29d92dca2fea22) 与 [chart/README.md](https://link.gitcode.com/i/eee0f9a64c0db7c270c50ba24a4f9d49) 为核心,系统讲解如何通过官方 H

gitblog_00900的博客 610

Python 爬虫实战:社交媒体(Facebook)评论数据抓取与情感分析

在当今数字化时代,社交媒体平台如 Facebook 已成为人们日常生活中不可或缺的一部分。它不仅是人们分享生活点滴、交流思想的场所,也为企业和研究人员提供了丰富的数据资源。通过分析社交媒体上的评论数据,我们可以了解用户的情感倾向、产品反馈以及社会热点话题等。本文将详细介绍如何使用 Python 爬虫技术抓取 Facebook 上的评论数据,并进行情感分析。这不仅是一次技术实战,更是一次数据探索之旅。

yansideyucsdn的博客 672

NFS、Ceph、iSCSI 是常见的网络存储方式

使用场景推荐存储类型简单共享目录NFS高性能块存储(数据库)云平台对象/块/文件统一Ceph 全套多Pod共享可写目录云原生弹性动态供给如你有特定的使用场景(例如:Kubernetes 持久化存储、虚拟化平台、备份归档等),我可以进一步按场景给出选择建议或架构设计。需要深入对比某一项也可以告诉我。

喝醉酒的小白 1107

第八章 GPU Scheduler 分析:8.3 drm_sched_entity — 调度实体

本文介绍了DRM GPU调度器中的drm_sched_entity结构,它作为用户提交命令进入调度器的提交通道,解决了归属、排序和公平性问题。文章首先分析了命令提交的归属需求,然后详细阐述了entity的核心模型,包括其职责、进程映射关系和核心字段。接着说明了用户态提交进入内核后的关键节点路径,以及entity内部的FIFO语义和激活机制。entity通过组织同一context的命令提交包为FIFO队列,使调度器能够在多个entity之间进行优先级和公平性调度,同时保证同一提交通道的顺序执行。

图形/计算GPU的驱动与虚拟化技术分享园地 659

《Python入门到精通》函数详解

函数就是一段「封装」起来的「代码」,目的是提高代码的「模块性」和「复用性」。 2、函数的参数 2.1、变量的就近原则 2.2、传递参数 2.3、形参和实参 2.4、位置参数 2.5、缺省参数 2.6、可变类型和不可变类型 2.7、关键字参数 3、匿名函数 4、函数的返回值

wangyuxiang946的博客 1万+

Kubernetes介绍以及核心概念

简单介绍K8S中的重要概念

bltyu2000的博客 1022

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

k8s存储 : volumeMounts

原文:https://blog.51cto.com/forall/2135152 在Docker中就有数据卷的概念,当容器删除时,数据也一起会被删除,想要持久化使用数据,需要把主机上的目录挂载到Docker中去,在K8S中,数据卷是通过Pod实现持久化的,如果Pod删除,数据卷也会一起删除,k8s的数据卷是docker数据卷的扩展,K8S适配各种存储系统,包括本地存储EmptyDir,HostPath,网络存储NFS,GlusterFS,PV/PVC等,下面就详细介绍下K8S的存储如何实现。 一.本地.

yuezhilangniao的博客 2万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: k8s快速入门教程-----2 深入理解Pod
下一篇: k8s快速入门教程-----3 kubernetes架构
cloud_engineer
博客等级 码龄5年 9390粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值