10.1.什么是Statefulset StatefulSet是Kubernetes提供的管理有状态应用的负载管理控制器API.        特点: 1.具有固定的网络标记(主机名) 2.具有持久化存储 3.需要按顺序部署和扩展 4.需要按顺序终止和删除 5.需要按顺序滚动和更新 10.2.statefulset的创建 statefulset的创建顺序从0到N-1,终止顺序则相反,如果需要对satateful扩容,则之前的n个pod必须存在,如果要终止一个pod,则他的后续pod必须全部终止.…
1. 前言 Ceilometer将meter.event等数据保存在MongoDB中,之前将MongoDB部署在控制节点上,使用三副本模式,时间长了发现meter数据爆炸式增长,区区2T的磁盘捉襟见肘,而想删除旧数据,需要执行db.repairDatabase()命令才能真正回收磁盘空间. 虽然按官方说法,MongoDB 3.2版本以后默认使用的WiredTiger Storage Engine,在执行db.repairDatabase()时不需要额外空间,可实际操作时发现它会重建索引,保存在s…
Kubernetes Deployment(部署无状态应用) Pod与controllers的关系 • controllers:在集群上管理和运行容器的对象 • 通过label-selector相关联 • Pod通过控制器实现应用的运维,如伸缩,升级等 Deployment • 部署无状态应用 • 管理Pod和ReplicaSet(副本控制.更新回滚) • 具有上线部署.副本设定.滚动升级.回滚等功能 • 提供声明式更新,例如只更新一个新的Image 应用场景:Web服务 案例 1.创建depl…
StatefulSet如何提供稳定的网络标识和状态 ReplicaSet中的Pod都是无状态,可随意替代的.又因为ReplicaSet中的Pod是根据模板生成的多副本,无法对每个副本都指定单独的PVC. 来看一下StatefulSet如何解决的. 提供稳定的网络标识 StatefulSet创建Pod都有一个从零开始的顺序索引,这会体现在Pod的名称和主机名上,同样也会体现在Pod对应的固定存储上.所以这些名字是可预先知道的,不同于ReplicaSet的随机生成名字. 因为他们的名字都是固定的,而…
目录 StatefulSet 部署 zookeeper 集群 创建pv StatefulSet 测试 StatefulSet 部署 zookeeper 集群 参考 k8s官网zookeeper集群的部署,数据挂着方式改成通过本地方式创建的pv: https://kubernetes.io/docs/tutorials/stateful-application/zookeeper/ 本次共享存储使用的是 NFS: 创建pv [root@node01 zk-cluster]# cat zk-pv.y…
1.部署多个副本的OA(Tomcat)集群,其中一个Tomcat的需要加一个定时器,其他代码跟其他的Tomcat的代码一样.需要重启后也还是保持这个状态.代码如下: apiVersion: v1 kind: Service metadata: name: wordpress0217 labels: app: wordpress0217 spec: ports: - port: 80 clusterIP: None selector: app: wordpress0217 tier: fronte…
环境 操作系统:Ubuntu 18.04 MongoDB: 4.0.3 服务器 首先部署3台服务器,1台主节点 + 2台从节点 3台服务器的内容ip分别是: 10.140.0.5 (主节点) 10.140.0.6 (从节点01) 10.140.0.7 (从节点02) 安装MongoDB 接下来,需要在每一台服务器上安装MongoDB. 完整安装过程可参考官方文档. 为了方便,本文提供MongoDB的一键安装脚本. 切换成root用户 sudo su - 运行安装脚本 wget https://g…
环境需求:Mongodb集群有三种模式:  Replica Set, Sharding,Master-Slaver.  这里部署的是Replica Set模式. 测试环境: 这里副本集(Replica Set)采用一主一备一仲裁模型: 配置步骤: 1.下载mongodb MongoDB官网下载中心:MongoDB Download Center mongodb 3.4.10下载地址:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhe…
前提 至少需要三个node节点,否则修改亲和性配置 如果外部访问,需要自己暴露 需要有个storageClass,这样做的原因是避免手动创建pv了 部署zk和kafka 参考: https://www.cnblogs.com/ericnie/p/8562561.html https://github.com/kubernetes/contrib/blob/master/statefulsets/zookeeper/zookeeper.yaml 部署zookeeper zookeeper.yaml…
Statefulset: 实例之间有不对等关系,以及实例对外部数据有依赖关系的应用,就被称为“有状态应用”(Stateful Application). StatefulSet 的设计其实非常容易理解.它把真实世界里的应用状态,抽象为了两种情况: 拓扑状态.这种情况意味着,应用的多个实例之间不是完全对等的关系.这些应用实例,必须按照某些顺序启动,比如应用的主节点 A 要先于从节点 B 启动.而如果你把 A 和 B 两个 Pod 删除掉,它们再次被创建出来时也必须严格按照这个顺序才行.并且,新创建…