美文网首页
【kubernetes】k8s数据卷,pod挂载本地路径

【kubernetes】k8s数据卷,pod挂载本地路径

作者: 熊本猫 | 来源:发表于2019-08-23 09:34 被阅读0次

    环境:Linux服务器

    配置挂载目录

    思路:在部署pod的节点(宿主机)配置同样的挂载路径到一个固定的服务器(目标服务器),这样不管pod在哪里跑,文件的保存路径都是不变的

    1.安装sshfs

    yum install -y sshfs
    

    2.添加ssh认证

    把节点的ssh公钥拷贝到目标服务器的~/.ssh/authorizedkeys中

    3.挂载目录

    在节点服务器执行:

    sshfs  USER@目标服务器IP:/path/to/other/server   /path/to/local
    

    如果遇到错误
    fuse: mountpoint is not empty
    fuse: if you are sure this is safe, use the 'nonempty' mount option
    执行

    sshfs  USER@目标服务器IP:/path/to/other/server   /path/to/local  -o nonempty
    

    配置deploy的挂载目录

    注意:挂载目录应该跟你要使用的路径一致

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: volume-test               #Deployment名称
    spec:
      replicas: 2 #目标副本数量
      minReadySeconds: 50  # 这里需要估一个比较合理的值,从容器启动到应用正常提供服务
      strategy:
        rollingUpdate:
          maxSurge: 1      #滚动升级时最大同时升级1个pod
          maxUnavailable: 1 #滚动升级时最大允许不可用的pod个数
      template:
        metadata:
          labels:
            app: volume-test  #模板名称
        spec: #定义容器模板,该模板可以包含多个容器
          containers:
            - name: volume-test
              image: 10.0.0.1:5000/volume-test:v1
              args: ["--spring.profiles.active=test"]  #给ENTRYPOINT命令的传参
              imagePullPolicy: Always
              volumeMounts:        #容器内挂载点
              - mountPath: /data/resources/header
                name: pangu-data        #必须有名称
          nodeSelector:  #节点选择器
              type: volume-data  #节点的label,将根据这个label去选择节点
          volumes:
             - name: volume-data        #跟上面的名称对应
               hostPath:
                  path: /data/resources/header      #宿主机挂载点
      selector:
          matchLabels:
             app: volume-test
    

    然后kubectl create -f deploy.yaml完成部署,进入pod检查挂载是否成功~

    相关文章

      网友评论

          本文标题:【kubernetes】k8s数据卷,pod挂载本地路径

          本文链接:https://www.haomeiwen.com/subject/kwxzsctx.html