美文网首页
2020-08-06 Volume(数据卷)

2020-08-06 Volume(数据卷)

作者: 阿丧小威 | 来源:发表于2020-08-06 22:24 被阅读0次

    1. Volume

    • Kubernetes中的Volume提供了在容器中挂载外部存储的能力
    • Pod需要设置卷来源(spec.volume)和挂载点(spec.containers.volumeMounts)两个信息后才可以使用相应的Volume

    2. emptyDir

    创建一个空卷,挂载到Pod中的容器。Pod删除该卷也会被删除。
    应用场景:Pod中容器之间数据共享。

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
    spec:
      containers:
      - name: write
        image: centos
        command: ["bash","-c","for i in {1..100};do echo $i >> /data/hello;sleep 1;done"]
        volumeMounts:
        - name: data    ---使用的数据卷名称,跟volumes:name要能匹配上
          mountPath: /data
    
      - name: read
        image: centos
        command: ["bash","-c","tail -f /data/hello"]
        volumeMounts:
        - name: data
          mountPath: /data
    
    volumes:    ---定义数据卷来源,支持定义多个数据卷
      - name: data
        emptyDir: {}
    

    3. hostPath

    挂载Node文件系统上文件或者目录到Pod中的容器。
    应用场景:Pod中容器需要访问宿主机文件。

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
    spec:
      containers:
      - name: busybox
        image: busybox
        args:
        - /bin/sh
        - -c
        - sleep 36000
        volumeMounts:
        - name: data
          mountPath: /data    ---容器上的/data目录
      volumes:
      - name: data
        hostPath:
          path: /tmp    ---宿主机上的/tmp目录
          type: Directory    ---挂载的是一个目录
    

    4. NFS(网络存储)

    安装服务端(最好另外找一台机器专门做存储)

    yum install nfs-utils -y
    vi /etc/exports
    /data/nfs *(rw,no_root_squash)    ---暴露/data/nfs 目录,支持所有的IP来访问,支持读写权限
    systemctl start nfs
    

    安装客户端(node节点都要安装)

    yum install nfs-utils -y
    systemctl start nfs
    

    nfs.yaml

    apiVersion: apps/v1beta1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 3
      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.9.61   ---nfs服务地址
              path: /data/nfs    ---nfs暴露的目录
    

    kubectl apply -f nfs.yaml ---创建nfs的pod

    相关文章

      网友评论

          本文标题:2020-08-06 Volume(数据卷)

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