zoukankan      html  css  js  c++  java
  • Kubernetes(二十二)Volumes

    容器中的磁盘文件是临时存放的,如果容器销毁、停止数据也将丢失。同时在一个pod运行多个容器的时候,常常需要在容器之间共享数据。kubernetes抽象出voleme对象来解决这2个问题。
     
    • Volume类型
    • emptyDir
      • 当pod指定到某个节点上时,首先创建的是一个emptyDir,并且pod只要一直在这个node上运行,emptyDir就一直存在。当pod从节点删除时,emptydir卷也会被永久删除。它的主要用途如下:
        • 缓存空间,例如基于磁盘的归并排序。
        • 为耗时较长的任务提供检查点,以便于任务能够方便的从崩溃前恢复执行。
        • 在web服务器容器服务数据时,保存内容管理器获取的文件。
      • 应用场景:多容器之间的数据共享。
      • 示例 emptyDir.yaml
        apiVersion: v1
        kind: Pod
        metadata:
          name: test-pd
        spec:
          containers:
          - image: k8s.gcr.io/test-webserver #写入的容器
            name: test-container-write
            volumeMounts:
            - mountPath: /cache
              name: cache-volume #使用的数据卷名称,跟volumes:name要能匹配上
          
          - image: k8s.gcr.io/test-webserver #读取的容器
            name: test-container-read
            volumeMounts:
            - mountPath: /cache
              name: cache-volume #使用的数据卷名称,跟volumes:name要能匹配上
              
          volumes: #定义数据卷来源,支持定义多个数据卷
          - name: cache-volume #定义数据卷的名称1
            emptyDir: {}

          - name: cache-volume2 #定义数据卷的名称2
            emptyDir: {}
      • kubectl apply -f emptyDir.yaml #创建带volume的pod

      •  
    • hostPath
      • hostpath挂载和docker原理是一样的;就是将卷挂载在node节点物理磁盘上。
      • 支持以下type类型
        • 空 空字符串(默认)用于向后兼容,这意味着在安装 hostPath 卷之前不会执行任何检查。
        • DirectoryOrCreate 如果在给定路径上什么都不存在,那么将根据需要创建空目录,权限设置为 0755,具有与 Kubelet 相同的组和所有权。
        • Directory 在给定路径上必须存在的目录。
        • FileOrCreate 如果在给定路径上什么都不存在,那么将在那里根据需要创建空文件,权限设置为 0644,具有与 Kubelet 相同的组和所有权。
        • File 在给定路径上必须存在的文件。
        • Socket 在给定路径上必须存在的 UNIX 套接字。
        • CharDevice 在给定路径上必须存在的字符设备。
        • BlockDevice 在给定路径上必须存在的块设备。    
      • 应用场景:pod容器需要访问宿主机文件。
      • 示例 hostPath.yaml
      • apiVersion: v1
        kind: Pod
        metadata:
          name: test-pd
        spec:
          containers:
          - image: k8s.gcr.io/test-webserver
            name: test-container #pod容器名称
            volumeMounts:
            - mountPath: /test-pd #容器内的目录
              name: test-volume #使用的数据卷名称,跟volumes:name要能匹配上
          volumes:
          - name: test-volume #定义数据卷的名称
            hostPath:
              # 宿主机的路径
              path: /data
              # type类型
              type: Directory

      •  
      • kubectl apply -f emptyDir.yaml #创建带volume的pod
    • nfs
      • nfs网络卷可以不受容器销毁、节点销毁而永久存储数据在其他的服务端云服务器上。
      • githup https://github.com/kubernetes/examples/tree/master/staging/volumes/nfs
      • 安装客户端
        • 挂载nfs需要node支持客户端的库nfs-utils
        • yum install nfs-utils -y #安装nfs
        • systemctl start nfs #启动nfs
      • 安装服务端
        • yum install nfs-utils -y #安装nfs
        • vi /etc/exports
        • /data/nfs *(rw,no_root_squash) #暴露/data/nfs 目录,支持所有的IP来访问,支持读写权限;
        • systemctl start nfs #启动nfs     
      • nfs.yaml
        apiVersion: apps/v1beta1
        kind: Deployment
        metadata:
          name: nginx-deployment
        spec:
          replicas: 3
          selector:
            matchLabels:
              app: nginx
          template:
            metadata:
              labels:
                app: nginx
            spec:
              containers:
              - name: nginx
                image: nginx
                volumeMounts:
                - name: wwwroot
                  mountPath: /usr/share/nginx/html #网站根目录
                ports:
                - containerPort: 80
              volumes:
              - name: wwwroot
                nfs:
                  server: 192.168.31.61  #nfs服务地址
                  path: /data/nfs #nfs暴露的目录
        • kubectl apply -f nfs.yaml #创建nfs的pod  
     
     
  • 相关阅读:
    【系统安全性】一、背景、原理与解决思路
    Spring Boot使用阿里云证书启用HTTPS
    图片上传前先在本地预览
    gulp的使用以及Gulp新手入门教程
    bootstrap datetimepicker、bootstrap datepicker日期组件对范围的简单封装
    作为程序员,你关注哪些国外 IT 网站?
    sql server 2014安装后用sa登录问题
    win server2012r2上发布网站常见错误 "HTTP 错误 500.19 请求的页面的相关配置数据无效" 解决办法
    dapper使用时性能优化
    解决Web部署 svg/woff/woff2字体 404错误
  • 原文地址:https://www.cnblogs.com/TSir/p/12272917.html
Copyright © 2011-2022 走看看