• K8s之deploy挂载Volumes


    一. 创建Host类型pv

    1.1 创建pv yaml文件

    -bash-4.2# cat  iam_mount_pvc.yaml                        
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      creationTimestamp: null
      labels:
        app: iam
      name: iam
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: iam
      strategy: {}
      template:
        metadata:
          creationTimestamp: null
          labels:
            app: iam
        spec:
          containers:
          - image: registry.ncloud.navinfo.com/iam/iam:1260cd6
            name: iam
            imagePullPolicy: Always
            resources: {}
            volumeMounts:
            - name: iamvolume
              mountPath: /data/static
          volumes:
          - name: iamvolume
            persistentVolumeClaim:
              claimName: mypvc
    status: {}

    本地挂载目录路径: `/data/static` 数据将会持久化到该路径下面

    1.2 kubectl创建pv

    -bash-4.2# kubectl create namespace iam #### 创建namespace做资源隔离
    -bash-4.2# kubectl create -f iam_pv.yaml -n iam
    rsistentvolume/myvolume created
    -bash-4.2# kubectl get pv -n iam
    NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
    myvolume 5Gi RWO,RWX Retain Available normal 4s
    -bash-4.2# 

    二、创建pvc

    2.1 创建pvc yaml文件

    -bash-4.2# vim iam_pvc.yaml
    
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: mypvc
    spec:
      storageClassName: normal
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 3Gi

    2.2 kubectl创建pvc

    -bash-4.2# kubectl create -f iam_pvc.yaml -n iam 
    persistentvolumeclaim/mypvc created
    -bash-4.2# kubectl get pvc -n iam
    NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
    mypvc Bound myvolume 5Gi RWO,RWX normal 6s
    -bash-4.2# 
    -bash-4.2# kubectl get pv -n iam 
    NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
    myvolume 5Gi RWO,RWX Retain Bound iam/mypvc normal 73s
    -bash-4.2# 

    当`STATUS`状态为`Bound`说明`pvc`已经绑定到`pv`上,到这里已完成初步的`pvc`、`pv`的绑定

    三、创建deploy yaml文件

    3.1 挂载pvc

    -bash-4.2# cat  iam_mount_pvc.yaml                        
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      creationTimestamp: null
      labels:
        app: iam
      name: iam
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: iam
      strategy: {}
      template:
        metadata:
          creationTimestamp: null
          labels:
            app: iam
        spec:
          containers:
          - image: registry.ncloud.navinfo.com/iam/iam:1260cd6
            name: iam
            imagePullPolicy: Always
            resources: {}
            volumeMounts:
            - name: iamvolume
              mountPath: /data/static
          volumes:
          - name: iamvolume
            persistentVolumeClaim:
              claimName: mypvc
    status: {}
    -bash-4.2# 

    3.2 kubectl创建deploy

    -bash-4.2# kubectl create -f iam_mount_pvc.yaml -n iam
    deployment.apps/iam created
    -bash-4.2# 
    -bash-4.2# 
    -bash-4.2# kubectl get po -n iam
    NAME READY STATUS RESTARTS AGE
    iam-666475bcf9-gxgfb 1/1 Running 0 8s
    iam-666475bcf9-lcljd 1/1 Running 0 8s
    iam-666475bcf9-t6tbv 1/1 Running 0 8s
    -bash-4.2# 

    3.3 检查是否挂载成功

    a. 进入port检查

    -bash-4.2# kubectl -n iam exec -it iam-666475bcf9-t6tbv -- /bin/sh              
    ~/iam # ls
    AUTHORS                api-ref                doc                    nohup.out              test-requirements.txt
    ChangeLog              babel.cfg              docker                 requirements.txt       tools
    Dockerfile             build                  etc                    setup                  tox.ini
    LICENSE                build.sh               iam                    setup.cfg
    README.rst             build_k8s.sh           iam.egg-info           setup.py
    ~/iam # 

    b. 创建一个文件

    ~/iam # ls /data/static/
    ~/iam # cat /etc/passwd >/data/static/pwd.txt
    ~/iam # ls /data/static/
    pwd.txt

    c. 检查持久化

    -bash-4.2# ll /data/static/
    total 8
    -rw-r--r-- 1 root root 1230 Jul 19 22:44 pwd.txt

    完成调试。

  • 相关阅读:
    Windows、Linux、ARM、Android、iOS全平台支持的RTMP推流组件EasyRTMPAndroid如何修改分辨率和码率
    高稳定性、低延时的网络全终端播放器H5播放器网页直播/点播播放器EasyPlayer.js播放flv格式视频显示跨域问题解决方案
    RTSP播放器网页web无插件直播流媒体音视频播放器EasyPlayerRTSP实现支持H265编码格式过程介绍
    简单、高效、易用的全平台(Windows/Linux/ARM/Android/iOS)web实现RTMP推送组件EasyRTMPAndroid如何开启悬浮窗
    模板学习实践一 accumulationtraits
    模板学习实践二 pointer
    黑客屏保 代码来自网络搜索 做了部分改动
    设计模式之模板模式 template
    CMAKE 教程前两章节学习
    cmake 及make 实践记录
  • 原文地址:https://www.cnblogs.com/supery007/p/13344105.html
Copyright © 2020-2023  润新知