zoukankan      html  css  js  c++  java
  • kubernetes学习 做持久化存储

    本节演示如何为 MySQL 数据库提供持久化存储,步骤:

      1、创建 PV 和 PVC

      2、部署 MySQL

      3、向 MySQL 添加数据

      4、模拟节点宕机故障,Kubernetes 将 MySQL 自动迁移到其他节点。

      5、验证数据一致性

    一、创建 PV 和 PVC

      Pod 通常是由应用的开发人员维护,而 Volume 则通常是由存储系统的管理员维护。开发人员要获取上面的信息,要么询问管理员,要么自己就是管理员。

      这就带来了一个管理问题:应用开发人员和系统管理员的指责偶合在一起了。如果系统规模小或者对于开发环境,这种情况还可以接受。但是对于大规模项目,生产环境考虑到安全性和效率,这就成了必须要解决的问题。

      Kubernetes 给出的两个解决方案就是:PersistentVolume 和 PersistentVolumeClaim。

        * PV(PersistentVolume)是对外部存储系统中的一块存储空间,有管理员创建和维护。与 Volume 一样,PV 具有持久性,生命周期独立于Pod。

        * PVC(PersistentVolumeClaim是对 PV 的申请(Claim)。PVC 通常由普通用户创建和维护,需要为 Pod分配存储资源是,用户可以创建一个 PVC,指明存储资源的容量大小和访问模式(比如只读)等信息,Kubernetes 会查找并提供满足条件的 PV。

      

      好,科普完,开始创建:

      mypv1.yml:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: mypv1
    spec:
      accessModes:
        - ReadWriteOnce
      capacity:
        storage: 1Gi
      persistentVolumeReclaimPolicy: Recycle
      storageClassName: nfs
      nfs:
        path: /nfsdata/mysql-pv
        server: 192.168.43.112

       mypvc.yml:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: mypvc
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: nfs
  • 相关阅读:
    作为一个 .NET 开发者 应该了解哪些知识?
    服务器扩容,新加一上硬盘,是否要重做raid
    DB2常见错误
    Eclipse快捷键与Notepad++ 快捷建冲突的问题
    Java+MySql图片数据保存
    也谈设计模式Facade
    MyBatis入门级Demo
    Python中的字符串与字符编码
    Python流程控制语句
    Python中的运算符
  • 原文地址:https://www.cnblogs.com/gzxbkk/p/10330945.html
Copyright © 2011-2022 走看看