前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes 入门实战 Part3

Kubernetes 入门实战 Part3

作者头像
Yifans_Z
发布2023-08-23 19:00:03
1110
发布2023-08-23 19:00:03
举报

24 PersistentVolume 数据持久化

PersistentVolume 属于集群的系统资源,是和 Node 平级的一种对象,Pod 对它没有管理权,只有使用权。

StorageClass 它抽象了特定类型的存储系统(比如 Ceph、NFS),在 PVC 和 PV 之间充当“协调人”的角色,帮助 PVC 找到合适的 PV。

代码语言:javascript
复制
# vim host-path-pv-pvc.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  # 只有 10MB 容量的存储设备
  name: host-10m-pv
spec:
  # kubectl explain PersistentVolume.spec.storageClassName
  storageClassName:
    host-vol
    # kubectl explain PersistentVolume.spec.accessModes
  accessModes:
    # ReadWriteOnce:存储卷可读可写,但只能被一个节点上的 Pod 挂载。
    # ReadOnlyMany:存储卷只读不可写,可以被任意节点上的 Pod 多次挂载。
    # ReadWriteMany:存储卷可读可写,也可以被任意节点上的 Pod 多次挂载。
    - ReadWriteOnce
  capacity:
    #  Ki/Mi/Gi
    storage: 10Mi
  hostPath:
    path: /tmp/host-10m-pv/

---
# PVC 不表示实际的存储,而是一个“申请”或者“声明”
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: host-5m-pvc
spec:
  storageClassName: host-vol
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Mi
代码语言:javascript
复制
mkdir /tmp/host-10m-pv
kubectl apply -f host-path-pv-pvc.yml
kubectl get pv
# NAME          CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                 STORAGECLASS   REASON   AGE
# host-10m-pv   10Mi       RWO            Retain           Bound    default/host-5m-pvc   host-vol                4s
kubectl get pvc
# NAME          STATUS   VOLUME        CAPACITY   ACCESS MODES   STORAGECLASS   AGE
# host-5m-pvc   Bound    host-10m-pv   10Mi       RWO            host-vol       6s
代码语言:javascript
复制
# vim host-pvc-pod.yml
apiVersion: v1
kind: Pod
metadata:
  name: host-pvc-pod
spec:
  volumes:
    - name: host-pvc-vol
      persistentVolumeClaim:
        claimName: host-5m-pvc
  containers:
    - name: ngx-pvc-pod
      image: nginx:alpine
      ports:
        - containerPort: 80
      volumeMounts:
        - name: host-pvc-vol
          mountPath: /tmp
代码语言:javascript
复制
kubectl apply -f host-pvc-pod.yml
kubectl get pod -o wide
kubectl exec -it host-pvc-pod -- sh
cd /tmp && touch a.md
# check in worker node
/tmp/host-10m-pv/

25 NFS 网络共享存储

References

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 24 PersistentVolume 数据持久化
  • 25 NFS 网络共享存储
  • References
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档