使用Syncrepl同步模式
由于syncrepl为拉取模式(到master拉数据),所以配置文件配置slave端的slapd.conf文件即可。初始化操作2种:
OpenLDAP是一款轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP),属于开源集中账号管理架构的实现,且支持众多系统版本,被广大互联网公司所采用。openldap-server的数据必须用原配的Berkeley DB,不能使用mysql作为后端数据库。
phpldapadmin是使用php语言开发的web端管理ldap的应用。
Self Service Password是一个Web应用,可以让用户自行更新、修改和重置LDAP中的用户密码。支持标准的LDAPv3目录服务,包括:OpenLDAP,Active Directory,OpenDS,ApacheDS等。
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500
标准的,但是简单多了并且可以根据需要定制.与X.500不同,LDAP支持TCP/IP
,这对访问Internet是必须的.LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到.简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式. LDAP是一个用来发布目录信息到许多不同资源的协议.通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大.
现在市场上有关LDAP的产品已有很多,各大软件公司都在他们的产品中集成了LDAP服务,如Microsoft的ActiveDirectory
、Lotus的Domino Directory
、IBM的WebSphere
中也集成了LDAP服务.LDAP的开源实现是OpenLDAP
,它比商业产品一点也不差,而且源码开放.
OpenLDAP是最常用的目录服务之一,它是一个由开源社区及志愿者开发和管理的一个开源项目,提供了目录服务的所有功能,包括目录搜索、身份认证、安全通道、过滤器等等.大多数的Linux发行版里面都带有OpenLDAP的安装包.OpenLDAP
服务默认使用非加密的TCP/IP
协议来接收服务的请求,并将查询结果传回到客户端.由于大多数目录服务都是用于系统的安全认证部分比如:用户登录和身份验证,所以它也支持使用基于 SSL/TLS 的加密协议来保证数据传送的保密性和完整性.OpenLDAP
是使用OpenSSL
来实现SSL/TLS
加密通信的.
LDAP的信息模型是建立在”条目”(entries)的基础上.一个条目是一些属性的集合,并且具有一个全局唯一的”可区分名称”DN,一个条目可以通过DN来引用.每一个条目的属性具有一个类型和一个或者多个值.类型通常是容易记忆的名称,比如”cn”是通用名称(common name),或者”mail”是电子邮件地址.条目的值的语法取决于属性类型.比如,cn属性可能具有一个值”Babs Jensen” .一个mail属性可能包含”bbs@example.com” .一个jpegphoto属性可能包含一幅JPEG(二进制)格式的图片.
请读者务必保持环境一致
安装过程中需要下载所需系统包,请务必使所有节点连上互联网。
实验环境:VMware的虚拟机
System OS | IP Address | Docker | Kernel | Hostname | Cpu | Memory | Application |
---|---|---|---|---|---|---|---|
CentOS 7.4.1708 | 192.168.77.130 | 18.09.6 | 5.1.11-1.el7 | k8s-m1 | 2C | 4G | k8s-master、etcd |
CentOS 7.4.1708 | 192.168.77.131 | 18.09.6 | 5.1.11-1.el7 | k8s-m2 | 2C | 4G | k8s-master、etcd |
CentOS 7.4.1708 | 192.168.77.132 | 18.09.6 | 5.1.11-1.el7 | k8s-m3 | 2C | 4G | k8s-master、etcd |
CentOS 7.4.1708 | 192.168.77.133 | 18.09.6 | 5.1.11-1.el7 | k8s-n1 | 2C | 4G | k8s-node |
CentOS 7.4.1708 | 192.168.77.134 | 18.09.6 | 5.1.11-1.el7 | k8s-n2 | 2C | 4G | k8s-node |
Kind是Kubernetes In Docker的缩写,顾名思义是使用Docker容器作为Node并将Kubernetes部署至其中的一个工具。官方文档中也把Kind作为一种本地集群搭建的工具进行推荐。默认情况下,Kind会先下载kindest/node镜像,该镜像包含kubernetes的主要组件,当镜像节点准备好时,Kind使用kubeadm进行集群的创建,内部使用containerd跑组件容器。最终,Kind只是为了方便测试kubernetes集群的,且不可用于生产环境。
本次使用全手工的方式以二进制形式部署kubernetes的ha集群,ha方式选择node节点代理apiserver的方式。
如果不想手动,或者想学习自动化部署的,可以看看Ansible 应用 之 【使用ansible来做kubernetes 1.14.3集群高可用的一键部署 】 文章。
hyperkube是Kubernetes服务器组件的一体化二进制文件。
CPU使用率是单位时间内CPU使用情况的统计,以百分比的方式展示。
CPU时间是Linux通过事先定义的节拍率(内核中表示为 HZ),触发时间中断,并使用全局变量Jiffies记录了开机以来的节拍数。每发生一次时间中断,Jiffies的值就加 1。 节拍率 HZ 是内核的可配选项,可以设置为100、250、1000等。不同的系统可能设置不同数值,你可以通过查询 /boot/config 内核选项来查看它的配置值。比如在我的系统中,节拍率设置成了1000,也就是每秒钟触发1000次时间中断。
# grep 'CONFIG_HZ=' /boot/config-$(uname -r)
CONFIG_HZ=1000
同时,正因为节拍率HZ是内核选项,所以用户空间程序并不能直接访问。为了方便用户空间程序,内核还提供了一个用户空间节拍率 USER_HZ,它总是固定为100,也就是1/100 秒。这样,用户空间程序并不需要关心内核中HZ被设置成了多少,因为它看到的总是固定值USER_HZ。
Linux 是一个多任务操作系统,它支持远大于CPU数量的任务同时运行.当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将CPU轮流分配给它们,造成多任务同时运行的错觉。而在每个任务运行前,CPU都需要知道任务从哪里加载、又从哪里开始运行,也就是说, 需要系统事先帮它设置好CPU寄存器和程序计数器(Program Counter,PC)。
CPU寄存器,是CPU内置的容量小、但速度极快的内存。而程序计数器,则是用来存储CPU 正在执行的指令位置、或者即将执行的下一条指令位置。它们都是CPU在运行任何任务前,必须的依赖环境,因此也被叫做CPU上下文。
平均负载是指单位时间内,系统处于可运行状态和不可终端状态的平均进程数,也就是平均活跃进程数,它和cpu使用率并没有直接关系。