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

(k8s)Kubernetes本地存储接入

hostpath也是本地存储,为什么要使用local模式的存储呢?

因为创建deployment时,无需指定调度具体节点。会自动调度到pv所在的节点运行。

Tip:local模式存储节点异常后,意味着pod启动不起来

1、创建local模式存储类

$ cat <<EOF | kubectl apply -f -
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
EOF

2、创建pv

$ cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolume
metadata:name: test
spec:capacity:storage: 10GivolumeMode: FilesystemaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: DeletestorageClassName: local-storagelocal:path: /data/test-local-pvnodeAffinity:required:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- k8s-node01
EOF

3、创建pvc

$ cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: test-local-pvcnamespace: default
spec:storageClassName: local-storagevolumeMode: FilesystemaccessModes: - ReadWriteOnceresources:requests:storage: 10G
EOF

Tip:local模式存储,创建好pv和pvc并不会马上绑定。因为local模式的存储类volumeBindingMode 的值必须是 WaitForFirstConsumer ,所以只有当pod使用pvc时,pv和pvc才进行绑定的。

4、创建业务容器并挂载

$ cat <<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:name: tools
spec:replicas: 1selector:matchLabels:app: toolstemplate:metadata:labels:app: toolsspec:containers:- name: toolsimage: registry.cn-guangzhou.aliyuncs.com/jiaxzeng6918/tools:v1.1volumeMounts:- name: datamountPath: /datavolumes:- name: datapersistentVolumeClaim:claimName: test-local-pvc
EOF

5、查看运行pod运行节点

$ kubectl get pod -owide
NAME                     READY   STATUS    RESTARTS   AGE     IP             NODE         NOMINATED NODE   READINESS GATES
tools-6f6f7cd4bf-jjlbg   1/1     Running   0          3m16s   10.244.0.209   k8s-node01   <none>           <none>

6、验证pod是否挂载成功

$ kubectl exec -it tools-6f6f7cd4bf-jjlbg -- df -h /data
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        62G  4.1G   58G   7% /data

Tip:local模式存储不能限制存储大小

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • PostgreSQL LSN 详解及转换工具
  • [linux 驱动]misc设备驱动详解与实战
  • 【Bean】BeanPostProcessor的前置方法和后置方法的作用和使用
  • clip论文阅读(Learning Transferable Visual Models From Natural Language Supervision)
  • 探索Go语言中的随机数生成、矩阵运算与数独验证
  • 代理IP池纯净度对数据抓取有影响吗?
  • flink on k8s
  • Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题
  • MongoDB高可用和分片集群知识
  • 【C++】标准库IO查漏补缺
  • CORS漏洞及其防御措施:保护Web应用免受攻击
  • 看Threejs好玩示例,学习创新与技术(三)
  • `character_set_server` 和 `collation_server`
  • Nuxt Kit 组件管理:注册与自动导入
  • 一. Unity实现虚拟摇杆及屏幕自适应功能
  • 2017-09-12 前端日报
  • dva中组件的懒加载
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JAVA SE 6 GC调优笔记
  • node-glob通配符
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • SOFAMosn配置模型
  • STAR法则
  • sublime配置文件
  • Swoft 源码剖析 - 代码自动更新机制
  • Webpack 4 学习01(基础配置)
  • 力扣(LeetCode)357
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • raise 与 raise ... from 的区别
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​批处理文件中的errorlevel用法
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (SpringBoot)第七章:SpringBoot日志文件
  • (蓝桥杯每日一题)love
  • (七)Java对象在Hibernate持久化层的状态
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (算法)Game
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET C# 操作Neo4j图数据库
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET Core中的去虚
  • .Net Remoting常用部署结构
  • .NET Standard 的管理策略
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .net 微服务 服务保护 自动重试 Polly
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .net生成的类,跨工程调用显示注释