当前位置: 首页 > 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模式存储不能限制存储大小


http://www.mrgr.cn/news/27519.html

相关文章:

  • Go-RPC框架分层设计
  • SpringBoot3全面复习
  • 【ChatGPT】让ChatGPT生成批判性思维问题的回答
  • GPT-5 要来了:抢先了解其创新突破
  • 关于 MSVCP110.dll 缺失的解决方案
  • Ubuntu 20.04配置ollama并下载安装调用本地大语言模型
  • [C语言]第九节 函数一基础知识到高级技巧的全景探索
  • 【css】网页颜色设计没有灵感?看看我推荐的几调色个网站 吧
  • 使用python进行网络爬虫豆瓣影评
  • 分页查询标准流程
  • 本地不能訪問linux的kafka服務
  • 【物联网】一篇文章带你认识RFID(射频识别技术)
  • 【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】004 - Kernel 启动引导代码head.S 源码逐行分析
  • 白手套公司
  • supermap Iclient3d for cesium加载地形并夸大地形
  • SpringCloudAlibaba:Seata
  • 《C++代码高度优化之双刃剑:避免过度优化引发的“暗雷”》
  • 基于SSM的银发在线教育云平台的设计与实现
  • SpringCloud的学习,Consul服务注册与发现、分布式配置,以及 服务调用和负载均衡
  • JavaDS —— B树
  • 【测试报告】博客系统
  • 24年9月通信基础知识补充2
  • S32K3 工具篇7:如何使用VScode编译EB MCAL工程
  • 超链接/表格/表单的复习(课后作业)
  • 进程vs线程:高效并发编程的基石
  • [Python学习日记-22] Python 中的字符编码(下)