zoukankan      html  css  js  c++  java
  • 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

    完成调试。

  • 相关阅读:
    解决myeclipse2014 中使用低版本的maven插件
    菜鸟成长之路-------使用过滤器实现自动登录
    动态代理
    JSON资料整理
    转账案例中引入事务
    ThreadLocal来管理事务
    【临窗旋墨-leetcode】0001-两数之和-[简单]
    shiro是如何清除过期session的(源码版本shiro1.6)
    [临窗旋墨]javaMelody初始化以及销毁时的处理逻辑及监控日志丢失问题排查
    Eclipse 的 git 插件操作 "代码提交"以及"代码冲突"
  • 原文地址:https://www.cnblogs.com/supery007/p/13344105.html
Copyright © 2011-2022 走看看