• kubernets之卷


    一 卷的由来以及种类和常用的卷的类型

      前面介绍了大部分都是pod的管理以及在集群内部和集群外部如何访问pod,但是我们也了解到,pod是有生命周期的,当pod所在节点下线,或者等其他原因原因导致pod需要中止服务,此时

    之前pod里面存储的数据也会随之而消失,所以这里就需要一个持久化存储手段,kubernets提供了一种持久化存储的方式称之为卷,并且根据可存储的内容分为很多种类

    • emptyDir---用于存储临时数据的简单空目录
    • hostPath---用于将目录从工作节点的文件系统挂载到pod中
    • gitRepo---用于检出Git仓库的内容来初始化的卷
    • nfs---挂载到pod中的NFS共享卷
    • configMap,secret,downwardAPI---用于将集群部分资源和集群信息公开个给pod的特殊类型的卷
    • (persistentVolumeClaim)pvc---一种使用预置或者动态配置的持久化存储类型(应用的较为多)

    二 emptyDir的应用以及介绍

      2.1  emptyDir最大的特点就是与之关联的pod可以写入任何形式的文件,并且它的生命周期和pod的生命周期保持一致,当pod消失之后该卷也会随之消失,而最大的作用其实是在pod的不同的

    容器之间共享数据,可以将一个或若干个emptyDir挂载在一个pod的多个容器上,由于容器之间是相互隔离的,所以无法通信,但是通过这种挂载卷的形式就使得数据能够流通。

      2.2 一个pod里面带有2个容器,并且通过挂载卷的方式使其相互通信的配置如下

    apiVersion: v1
    kind: Pod
    metadata:
      name: fortune
    spec:
      containers:
      - image: luksa/fortune
        name: html-generator
        volumeMounts:
        - name: html
          mountPath: /var/htdocs
      - image: nginx:alpine
        name: web-server
        volumeMounts:
        - name: html
          mountPath: /usr/share/nginx/html
          readOnly: true
        ports:
        - containerPort: 80
          protocol: TCP
      volumes:
      - name: html
        emptyDir: {}
    • 这个pod里面定义了2个容器,并且还挂载了一个名为html的空白卷
    • 分别挂载在nginx容器和fortune容器的文件系统上面某个位置,如此就可以让本来互相隔离的容器通过这个来通信

      

      2.3查看pod的状态

    [root@node01 ~]# k get po
    NAME      READY   STATUS    RESTARTS   AGE
    fortune   2/2     Running   0          4h21m
    [root@node01
    ~]# curl http://127.1:8080 You are only young once, but you can stay immature indefinitely.
    [root@node01
    ~]# curl http://127.1:8080 The secret source of humor is not joy but sorrow; there is no humor in Heaven. -- Mark Twain
    • 这2个容器的作用,第一个是每10秒产生一个html并存储在空白卷里面
    • 第二个容器用来展示该空白卷里面的html文件
    • 而结果也很好的展示了通过这个空白卷将这一个pod里面的容器相互通信

    三 hostPath卷的介绍以及应用

      3.1  首先了解一下,hospath区别于其他类型的卷的地方,顾名思义,hostpath的卷是依赖于node节点的,就是将pod的数据持久化存储在节点上面,这个是区别于emptyDir卷的存在

    但是有一个缺点是,众所周知,pod是有生命周期的,一旦pod由于任何原因消失,kubernets就会重新调度到节点上,但是会随机的调度到集群的任一节点,所以当第一个pod消失之后,很有可能

    会调度到其他节点上,所以这个类型的卷不适合存储应用级别的卷,而是适合存储由daemonSet创建的pod,因为DaemonSet的pod属于系统级别的pod,每个节点都会存在一个

      

  • 相关阅读:
    Django 06. django框架模型之表关系ForeignKey,ManyToManyField与OneToOneField
    Django 05. django框架模型之models常用字段、属性及异常处理
    Django 04. django框架模型之生成数据表
    Django 03. django框架之路由系统
    Django 02. Django框架之基础
    Django 01. python Web 框架
    Python 操作 MySQL
    MySQL 常见数据类型
    MySQL 命令整理2
    MySQL 命令整理1
  • 原文地址:https://www.cnblogs.com/wxm-pythoncoder/p/14201434.html
Copyright © 2020-2023  润新知