目录贴:Kubernetes学习系列 一.简介 本文在“创建PV,创建PVC挂载PV,创建POD挂载PVC”这个环境的基础上,进行各种删除实验,并记录.分析各资源的状态. 二.实验脚本 实验创建了一个PV.一个PVC挂载了PV.一个POD挂载PVC,并编写了两个简单的小脚本来快速创建和删除环境.对应的脚本如下所示: 需要注意的是在创建PV时,PV并不会去检查你配置的server是否真的存在:也不会检查server上是否有一个可用的NFS服务:当然更不会检查你设置的storage大小是否真有那么大…
像Kubernetes 这样的容器编排工具正在彻底改变应用程序的开发和部署方式.随着微服务架构的兴起,以及基础架构与应用程序逻辑从开发人员的角度解耦,开发人员越来越关注构建软件和交付价值. Kubernetes 对管理的物理机器进行抽象.使用Kubernetes,你可以通过描述获取所需的内存总量和计算能力,而无需担心底层基础架构. 在管理Docker 镜像时,Kubernetes 还让应用程序变得可移植.一旦使用Kubernetes 开发容器化架构,它们就可以部署在任何地方 - 公有云.混合云.…
目录贴:Kubernetes学习系列 一.简介 存储管理与计算管理是两个不同的问题.Persistent Volume子系统,对存储的供应和使用做了抽象,以API形式提供给管理员和用户使用.要完成这一任务,我们引入了两个新的API资源:Persistent Volume(持久卷)和Persistent Volume Claim(持久卷消费者). Persistent Volume(PV)是集群之中的一块网络存储.跟Node一样,也是集群的资源.PV跟Volume(卷)类似,不过会有独立于Pod的…
0. 前言 最近在学习张磊老师的 深入剖析Kubernetes 系列课程,最近学到了 Kubernetes 容器持久化存储部分 现对这一部分的相关学习和体会做一下整理,内容参考 深入剖析Kubernetes 原文,仅作为自己后续回顾方便 希望详细了解的同学可以移步至原文支持一下原作者 参考原文:深入剖析Kubernetes 1. PV.PVC.StorageClass 关系梳理 1.1 相关概念 PV 表示是持久化存储数据卷对象.这个 API 对象定义了一个持久化存储在宿主机上的目录(如 NFS…
本节演示如何为 MySQL 数据库提供持久化存储,步骤: 1.创建 PV 和 PVC 2.部署 MySQL 3.向 MySQL 添加数据 4.模拟节点宕机故障,Kubernetes 将 MySQL 自动迁移到其他节点. 5.验证数据一致性 一.创建 PV 和 PVC Pod 通常是由应用的开发人员维护,而 Volume 则通常是由存储系统的管理员维护.开发人员要获取上面的信息,要么询问管理员,要么自己就是管理员. 这就带来了一个管理问题:应用开发人员和系统管理员的指责偶合在一起了.如果系统规模小…
使用Docker快速部署Ceph集群 , 然后使用这个Ceph集群作为Kubernetes的动态分配持久化存储. Kubernetes集群要使用Ceph集群需要在每个Kubernetes节点上安装ceph-common 1. 为kubernetes创建一个存储池 # ceph osd pool create k8s 128 pool 'k8s' created 2. 创建用户 # ceph auth add client.k8s mon 'allow rx' osd 'allow rwx poo…
在使用容器之后,我们需要考虑的另外一个问题就是持久化存储,怎么保证容器内的数据存储到我们的服务器硬盘上.这样容器在重建后,依然可以使用之前的数据.但是显然存储资源和 CPU 资源以及内存资源有很大不同,为了屏蔽底层的技术实现细节,让用户更加方便的使用,Kubernetes便引入了 PV 和 PVC 两个重要的资源对象来实现对存储的管理. 一.概念 PV 的全称是:PersistentVolume(持久化卷),是对底层的共享存储的一种抽象,PV 由管理员进行创建和配置,它和具体的底层的共享存储技术…
原文链接:https://fuckcloudnative.io/posts/kubernetes-storage-using-ceph-rbd/ 本文详细介绍了如何在 Kubernetes 集群中部署 ceph-csi(v3.1.0),并使用 RBD 作为持久化存储. 需要的环境参考下图: 本文使用的环境版本信息: Kubernetes 版本: $ kubectl get node NAME STATUS ROLES AGE VERSION sealos01 Ready master 23d v…
转载自 https://blog.csdn.net/dkfajsldfsdfsd/article/details/81319735 ConfigMap.Secret.emptyDir.hostPath等属于临时性存储,当pod被调度到某个节点上时,它们随pod的创建而创建,临时占用节点存储资源,当pod离开节点时,存储资源被交还给节点,pod一旦离开它们就失效,不具备持久化存储数据的能力.与此相反,持久化存储拥有独立的生命周期,具备持久化存储能力,其后端一般是独立的存储系统如NFS.iSCSI.…
一.Storage 1.1.Volume 官网网址:https://kubernetes.io/docs/concepts/storage/volumes/ 通过官网说明大致总结下就是这个volumes在docker中的理解就是我仅仅是通过一个volumes技术可以声名一个变量,然后可以通过这个变量将物理主机的路径和虚拟路径进行一个绑定:简单来说这就是一个持久化技术:在k8s中就可以理解是跟pod的绑定持久化:这块内容的实践在前面的yaml文件中有应用到,有兴趣的可以看前面文章.但这玩意还是有问…
从一个例子入手PV.PVC Kubernetes 项目引入了一组叫作 Persistent Volume Claim(PVC)和 Persistent Volume(PV)的 API 对象用于管理存储卷. 简单的说PersistentVolume (PV) 是集群中已由管理员配置的一段网络存储,是持久化存储数据卷:Persistent Volume Claim(PVC)描述的,则是 Pod 所希望使用的持久化存储的属性,比如,Volume 存储的大小.可读写权限等等. 上面的这段文字说明可能过于…
1.mysql持久化存储 [root@pserver78 0415villa]# cat latestmysql.yaml |grep -v '^#' apiVersion: v1 kind: Service metadata: name: villa-mysql01 labels: app: villa-mysql01 spec: ports: - port: protocol: TCP targetPort: selector: app: villa-mysql01 tier: mysql0…
存储卷概述 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题.首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动.其次,在 Pod 中同时运行多个容器时,这些容器之间通常需要共享文件.Kubernetes 中的 Volume 抽象就很好的解决了这些问题.在原docker环境中也有存储卷的概念,但docker环境的存储卷调度在宿主机上的目录,当docker重新创建的时候存储卷还会挂载统一宿主机上,但我们…
使用glusterfs做持久化存储 我们复用kubernetes的三台主机做glusterfs存储. 以下步骤参考自:https://www.xf80.com/2017/04/21/kubernetes-glusterfs/ 安装glusterfs 我们直接在物理机上使用yum安装,如果你选择在kubernetes上安装,请参考:https://github.com/gluster/gluster-kubernetes/blob/master/docs/setup-guide.md # 先安装…
参考文档: Github project:https://github.com/heketi/heketi MANAGING VOLUMES USING HEKETI:https://access.redhat.com/documentation/en-us/red_hat_gluster_storage/3.3/html/administration_guide/ch05s02 StorageClass:https://kubernetes.io/docs/concepts/storage/s…
1.PV和PVC的引入 Volume 提供了非常好的数据持久化方案,不过在可管理性上还有不足. 拿前面 AWS EBS 的例子来说,要使用 Volume,Pod 必须事先知道如下信息: 当前 Volume 来自 AWS EBS. EBS Volume 已经提前创建,并且知道确切的 volume-id. Pod 通常是由应用的开发人员维护,而 Volume 则通常是由存储系统的管理员维护.开发人员要获得上面的信息: 要么询问管理员. 要么自己就是管理员. 这样就带来一个管理上的问题:应用开发人员和…
14-使用glusterfs做持久化存储 https://www.cnblogs.com/guigujun/p/8366558.html 使用glusterfs做持久化存储 我们复用kubernetes的三台主机做glusterfs存储. 以下步骤参考自:https://www.xf80.com/2017/04/21/kubernetes-glusterfs/ 安装glusterfs 我们直接在物理机上使用yum安装,如果你选择在kubernetes上安装,请参考:https://github.…
一,redis概述与实验环境说明 1.1 什么是redis redis是一种内存型的NoSQL数据库,优点是快,常用来做缓存用  redis存储数据的方法是以key-value的形式  value类型支持字符串,列表,哈希等多种类型 1.2 环境说明 主机名 IP 用途 Redis01 10.1.1.146 Redis-master [root@Redis01 ~]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core) [roo…
1. 制作自定义镜像(base基础镜像,搭建共性环境) 基于centos镜像使用commit创建新的镜像文件 基于centos镜像使用Dockerfile文件创建一个新的镜像文件   1.1 使用镜像启动容器   1)在该容器基础上修改yum源 docker_images]# docker run -it centos 345 /]# rm -rf /etc/yum.repos.d/*   345 /]# vi /etc/yum.repos.d/dvd.repo [dvd] name=dvd b…
本文主要学习一下一些高级的HTTP知识,例如Session LocalStorage Cache-Control Expires ETag 其实主要就是涉及到了持久化存储与缓存的技术 在此之前已经学习了Cookie的相关知识,但是Cookie有个缺点是可以人为修改,有一定的安全隐患. 所以,针对这个缺点,诞生了Session Session 一般来说Session是基于Cookie实现的,它利用一个sessionId把用户的敏感数据隐藏起来,除非暴力穷举才有可能获得敏感数据. sessionId…
一.Kubernetes 如何管理存储资源: 理解volume 首先我们学习 Volume,以及 Kubernetes 如何通过 Volume 为集群中的容器提供存储:然后我们会实践几种常用的 Volume 类型并理解它们各自的应用场景(常用的呢就是把本地宿主机的某个目录映射给pod里的容器):最后,我们会讨论 Kubernetes 如何通过 Persistent Volume(简称PV) 和 Persistent Volume Claim(简称PVC) 分离集群管理员与集群用户的职责,并实践…
介 绍 在本文中你将学会如何使用k3s在Civo上运行Longhorn.如果你还没使用过Civo,可以到官网注册(https://www.civo.com/ )还可以申请免费的使用额度.首先,需要一个Kubernetes集群,然后我们将安装Longhorn并通过一个示例来展现如何使用它. 云原生应用程序的原理之一是它们旨在成为无状态的,因此可以直接水平扩展应用程序.然而,实际情况是除非你的网站或应用程序所占内存很小,否则你一定需要在某个地方存储这些东西. 业界巨头(如Google和Amazon)…
环境: 系统 华为openEulerOS(CentOS7) k8s版本 1.17.3 master 192.168.1.244 node1 192.168.1.245 介绍: 在Kubernetes中,当Pod重建的时候,数据是会丢失的,Kubernetes也是通过数据卷挂载来提供Pod数据的持久化的.Kubernetes数据卷是对Docker数据卷的扩展,Kubernetes数据卷是Pod级别的,可以用来实现Pod中容器的文件共享. 部署: 安装nfs 两台节点都需要操作: yum insta…
作者 王成,腾讯云研发工程师,Kubernetes contributor,从事数据库产品容器化.资源管控等工作,关注 Kubernetes.Go.云原生领域. 概述 进入 K8s 的世界,会发现有很多方便扩展的 Interface,包括 CSI, CNI, CRI 等,将这些接口抽象出来,是为了更好的提供开放.扩展.规范等能力. K8s 持久化存储经历了从 in-tree Volume 到 CSI Plugin(out-of-tree) 的迁移,一方面是为了将 K8s 核心主干代码与 Volu…
静态存储   Kubernetes 同样将操作系统和 Docker 的 Volume 概念延续了下来,并且对其进一步细化.Kubernetes 将 Volume 分为持久化的 PersistentVolume 和非持久化的普通 Volume 两类.为了不与前面定义的 Volume 这个概念产生混淆,后面特指 Kubernetes 中非持久化的 Volume 时,都会带着"普通"前缀.   普通 Volume 的设计目标不是为了持久地保存数据,而是为同一个 Pod 中多个容器提供可共享的…
StorageClass的作用: 创建pv时,先要创建各种固定大小的PV,而这些PV都是手动创建的,当业务量上来时,需要创建很多的PV,过程非常麻烦. 而且开发人员在申请PVC资源时,还不一定有匹配条件的PV可用,这又带来了新的问题. 于是Kubernetes提供了StorageClass来动态创建PV,StorageClass大大简化了PV的创建过程. 当申请PVC资源时, 如果匹配到满足条件的StorageClass,还会自动为PVC创建对应大小的 PV并进行绑定. 下面就来仔细讲讲现在如何…
在浏览器客户端记录一些信息,有三种常用的Web数据持久化存储的方式,分别是Web SQL.Local Storage.Cookies. Web SQL 作为html5本地数据库,可通过一套API来操纵客户端的数据库(关系数据库),下面是支持浏览器情况. 鉴于PC浏览器支持情况,我找了淘宝.京东.携程.起点.优酷网站,并没有用Web SQL记录客户端信息.在移动端比较适用,特别是对于Hybrid应用,更是得心应手. 接口: openDatabase transaction executeSql 1…
前言 需求描述 开发测试环境 FMDB介绍 创建工程 一.前言 上一章介绍了如何开发一个IOS应用的入门案例教程:                     我的第一个IOS开发应用    本章主要将介绍如何使用sqlite,来进行本地持久化存储数据.   二.需求描述 在游戏开始一段时间后,我们需要存储角色的基础信息,以便我休息之后继续进行上次的旅途. 三.开发环境介绍 OS X EI Captian:10.11.4 Xcode: 7.3 ios:9.3 机型:iphone 6s/iphone…
在平时的iOS开发中,我们经常用到的数据持久化存储方式大概主要有:NSUserDefaults(plist),文件,数据库,归档..前三种比较经常用到,第四种归档我个人感觉用的还是比较少的,恰恰因为用的比较少,但是还是有地方要用到,所以今天再把归档解档复习一遍吧. 一.什么是归档: 对象归档是将对象以文件的形式保存到磁盘中(也称为序列化,持久化) :使用的时候读取该文件的保存路径读取文件的内容(也称为解档,反序列化). 二.归档 与 plist存储的区别: 对象归档的文件是保密的,在磁盘上无法查…
IOS中数据的持久化保存这块内容,类似于Android中文件的几种常见的存储方式. 对于数据的持久化存储,ios中一般提供了4种不同的机制. 1.属性列表 2.对象归档 3.数据库存储(SQLite3) 4.苹果公司提供的持久性工具Core Data. 其实储存的形式无非就这么几种,而我们还必须要关心的是,这些文件会被放置在那个文件下,然后如何读取. 也就是说:IOS上数据存储,我们要了解的两点,数据存储格式(也就是存储机制),数据存储位置. 1>文件如何存储(如上面4点) 2>文件存储在哪里…