ZooKeeper介绍

概述

ZooKeeper是一种分布式的,开放源码的分布式应用程序协调服务,提供了包括配置维护、域名服务、分布式同步等功能。

架构

ZooKeeper采用集群模式,避免ZooKeeper本身出现单点故障。集群节点为N的情况下,最多可以保证(N-1)/2个节点宕机,仍能提供服务。

图-1 ZooKeeper架构图

 

ZooKeeper基本概念

集群角色

数据模型

ZooKeeper提供的命名空间与标准文件系统的名称空间非常相似,命名空间中的每个节点都由路径标识。与标准文件系统不同,ZooKeeper 命名空间中的每个节点都可以拥有与其关联的数据以及子节点。这就像拥有一个允许文件也成为目录的文件系统,使用标准文件系统的“数据节点“的概念,ZooKeeper 数据节点称之为Znode

 

节点类型及特性

Znode都是有生命周期的,其生命周期的长短取决于Znode的节点类型,在Zookeeper中。节点类型可分为持久节点(PERSISTENT)、临时节点(EPHEMERAL)和顺序节点(SEQUENTIAL)三大类,在节点创建过程中可以使用以下四种组合型节点类型。

ACL权限控制

ZookeeperACL权限控制分为三个方面:权限模式(Scheme)、授权对象(ID)和权限(Permission),通常使用“scheme:id:permission”来标识一个有效的ACL信息。

权限模式用来确定权限验证过程中使用的验证策略,在Zookeeper使用的三种权限模式:

特点

应用场景

资源模式

在新建集群时,选择不同资源模式需要准备不同的资源类型,目前支持容器集群、虚拟机集群两种资源模式,资源类型准备说明如下:

注:在云平台的[云服务/云容器引擎/集群]新建KaaS集群时要求Kubernetes版本1.15.0+