集群服务器

K8s基本概念入门

微笑、不失礼 提交于 2020-01-30 04:42:09
序言 没等到风来,绵绵小雨,所以写个随笔,聊聊k8s的基本概念。 k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈,例如一个服务器挂了,可以自动将这个服务器上的服务调度到另外一个主机上进行运行,无需进行人工干涉。那么,问题来了,要运维何用? k8s可以更快的更新新版本,打包应用,更新的时候可以做到不用中断服务,服务器故障不用停机,从开发环境到测试环境到生产环境的迁移极其方便,一个配置文件搞定,一次生成image,到处运行。。。 k8s的全生命周期管理 在k8s进行管理应用的时候,基本步骤是:创建集群,部署应用,发布应用,扩展应用,更新应用。 1、创建集群:为什么要使用集群? 有一句古话叫做三个臭皮匠,赛过诸葛亮,这就是创建集群的原因。。。 使用集群,create cluster是为了掩盖底层的无能,在各种环境中,底层的硬件各不相同,有的是各种低廉的服务器,有的各种云环境,有的是各种vm,有的各种host machine,要想屏蔽底层的细节,增强可靠性和稳定性,从而需要创建集群。 创建集群的好处就是,统一对外提供接口,无须进行各种复杂的调用;提供更好的可靠性,服务器宕机那么频繁,物理磁盘那么容易损坏,无须担心,集群统一进行调配;提供更好的性能

LVS-DR集群实验

我的未来我决定 提交于 2020-01-30 02:38:02
一、 LVS-DR集群实验 实验准备 1) VMware 虚拟出三台CentOS 7 2) 在Vmware下将网络模式配合NAT模式,网段配置为80网段(根据自己喜好,注意一致性即可) 3) 分别配置三台CentOS7的网络地址配置为: (1) 负载均衡调度器(LVS-DR)IP:192.168.80.20 (2) 服务器AA(Server1)IP:192.168.80.30,主机名为AA (3) 服务器BB(Server2)IP:192.168.80.40,主机名为BB 4) VIP 地址:192.168.80.100,该配置在配置文件中实现。 5) 关闭三台CentOS7上面的防火墙 [root@localhost ~]# systemctl stop firewalld.service #关闭防火墙 [root@localhost ~]# systemctl disable firewalld.service #可直接选择禁止firewall开机启动 安装配置DS 6) 安装LVS IP-VS的管理模块ipvsadm [root@localhost ~]# modprobe ip_vs //加载ip_vs模块 [root@localhost ~]# cat /proc/net/ip_vs //查看ip_vs版本信息 [root@localhost ~]# yum

K8s

穿精又带淫゛_ 提交于 2020-01-29 23:46:56
K8s: 开源的容器集中管理系统,使用go语言开发,用于管理云平台中多个主机上的容器化应用 Kubernetes 特性: K8s的目标是让部署容器化的应用简单并且高效提供了资源调度、部署管理、服务发现、扩容缩容、监控,维护等一整套功能。成为跨主机集群的自动部署、扩展以及运行应用程序容器的平台。 1.自我修复 2.弹性伸缩 3.自动部署和回滚 4.服务发现和负载均衡 5.机密和配置管理 6.存储编排 7.批量处理 Kubernetes集群构架与组件: K8s属于主从分布式架构,主要由master和worker node组成,包括客户端命令行工具kubectl和其它附加项。 Master作为控制节点,对集群进行统一的调度和管理,增删改查。 Worker Node:作为真正的工作节点,运行业务应用的容器,node由master管理,node负责监控并汇报容器的状态。 kubectl:客户端工机具,用于通过命令行与API Server进行交互,对Kubernetes集群进行操作,实现在集群中进行各种资源的增删改查等操作。 Kubernetes 组件介绍: Master组件:集群控制管理节点,负责管理集群,所有的命令都经由master处理,拥有Etcd存储服务,运行Api Server进程,Controller Manager服务进程及Scheduler服务进程,关联工作节点Node。

Zookeeper

♀尐吖头ヾ 提交于 2020-01-29 21:43:15
一、 ZooKeeper 简介 顾名思义 zookeeper 就是动物园管理员,他是用来管 hadoop(大象)、Hive(蜜蜂)、pig(小 猪)的管理员, Apache Hbase 和 Apache Solr 的分布式集群都用到了 zookeeper;Zookeeper: 是一个分布式的、开源的程序协调服务,是 hadoop 项目下的一个子项目。他提供的主要功 能包括:配置管理、名字服务、分布式锁、集群管理。 二、 ZooKeeper 的作用 1.1 配置管理 在我们的应用中除了代码外,还有一些就是各种配置。比如数据库连接等。一般我们都 是使用配置文件的方式,在代码中引入这些配置文件。当我们只有一种配置,只有一台服务 器,并且不经常修改的时候,使用配置文件是一个很好的做法,但是如果我们配置非常多, 有很多服务器都需要这个配置,这时使用配置文件就不是个好主意了。这个时候往往需要寻 找一种集中管理配置的方法,我们在这个集中的地方修改了配置,所有对这个配置感兴趣的 都可以获得变更。Zookeeper 就是这种服务,它使用 Zab 这种一致性协议来提供一致性。现 在有很多开源项目使用 Zookeeper 来维护配置,比如在 HBase 中,客户端就是连接一个 Zookeeper,获得必要的 HBase 集群的配置信息,然后才可以进一步操作。还有在开源的消 息队列 Kafka 中,也使用

ZooKeeper概念

邮差的信 提交于 2020-01-29 12:42:26
这可能是把ZooKeeper概念讲的最清楚的一篇文章 相信大家对 ZooKeeper 应该不算陌生,但是你真的了解 ZooKeeper 是什么吗?如果别人/面试官让你讲讲 ZooKeeper 是什么,你能回答到哪个地步呢? 作者:SnailClimb来源: 51CTO技术栈 |2018-09-12 09:34 收藏 分享 我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 Solr 集群的时候,我使用到了 ZooKeeper 作为 Solr 集群的管理工具。 前几天,总结项目经验的时候,我突然问自己 ZooKeeper 到底是个什么东西? 想了半天,脑海中只是简单的能浮现出几句话: Zookeeper 可以被用作注册中心。 Zookeeper 是 Hadoop 生态系统的一员。 构建 Zookeeper 集群的时候,使用的服务器最好是奇数台。 可见,我对于 Zookeeper 的理解仅仅是停留在了表面。所以,通过本文,希望带大家稍微详细的了解一下 ZooKeeper 。 如果没有学过 ZooKeeper,那么本文将会是你进入 ZooKeeper 大门的垫脚砖;如果你已经接触过 ZooKeeper ,那么本文将带你回顾一下 ZooKeeper 的一些基础概念。 最后,本文只涉及 ZooKeeper 的一些概念,并不涉及 ZooKeeper 的使用以及

RabbitMQ系列(六)你不知道的RabbitMQ集群架构全解

寵の児 提交于 2020-01-27 17:23:06
前言 本文将系统的介绍一下RabbitMQ集群架构的特点、异常处理、搭建和使用中要注意的一些细节。 知识点 一、为什么使用集群? 二、集群的特点 三、集群异常处理 四、集群节点类型 五、集群搭建方法 六、镜像队列 一、为什么使用集群? 内建集群作为RabbitMQ最优秀的功能之一,它的作用有两个: 允许消费者和生产者在Rabbit节点崩溃的情况下继续运行; 通过增加节点来扩展Rabbit处理更多的消息,承载更多的业务量; 二、集群的特点 RabbitMQ的集群是由多个节点组成的,但我们发现不是每个节点都有所有队列的完全拷贝。 RabbitMQ节点不完全拷贝特性 为什么默认情况下RabbitMQ不将所有队列内容和状态复制到所有节点? 有两个原因: 存储空间——如果每个节点都拥有所有队列的完全拷贝,这样新增节点不但没有新增存储空间,反而增加了更多的冗余数据。 性能——如果消息的发布需安全拷贝到每一个集群节点,那么新增节点对网络和磁盘负载都会有增加,这样违背了建立集群的初衷,新增节点并没有提升处理消息的能力,最多是保持和单节点相同的性能甚至是更糟。 所以其他非所有者节点只知道队列的元数据,和指向该队列节点的指针。 三、集群异常处理 根据节点不无安全拷贝的特性,当集群节点崩溃时,该节点队列和关联的绑定就都丢失了,附加在该队列的消费者丢失了其订阅的信息,那么怎么处理这个问题呢?

Redis-Cluster+ElatisSearch

馋奶兔 提交于 2020-01-27 03:24:10
1.redis集群 1.1、什么叫集群 集群就是:很多服务器组成的一个网络。指的是将多台服务器集中在一起,实现同一业务。 1.2、什么是分布式 分布式就是:把业务拆分开,分布到不同服务器(理解),往往集群都是伴随的分布式。 为什么需要集群: (1)解决单点故障 ​(2)处理高并发 ​(3)处理大数据(高并发) --解决存储问题 1.3、分布式和集群的区别 相同点: 都是处理高并发,而且都需要多台服务器协同.一般在一个系统中同时存在分布式和集群. 不同点: 分布式中不同服务器处理是不同业务.而集群处理时同一业务. 2.Redis集群方案选择 2.1、主从复制 优点: 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离 缺点: Redis不具备自动容错和恢复功能,如果想具备自动重起 ,需要安装插件 2.2、哨兵模式 优点: 主从复制优点都在, 通过哨兵自动恢复 缺点: 比较难扩容,服务占用空间比较多 2.3、 Redis-Cluster集群 Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。其redis-cluster架构图如下: 3.搭建redis-cluster (1) 拷贝6个redis 分别命名为 6379-6384 (2) 修改配置 port 6379 cluster-enabled yes cluster

ElasticSearch集群

五迷三道 提交于 2020-01-27 01:20:35
ES集群 1.为什么需要集群 1)单点故障 2)高并发 3)海量数据 2.ES集群相关概念 ES 的1个集群中放多个节点,放多个shard(shard又分成主的shard和从shard) ES cluster(1)—Node( )-Shard( ) ES节点类型Node有三种节点: master Node:主节点,维护集群信息 索引库操作 data node:数据节点, 文档crud client node:只负责处理用户请求 1、默认情况下,每个节点都有成为主节点的资格,也会存储数据,还会处理客户端的请求。- 在生产环境下,如果不修改ElasticSearch节点的角色信息,在高数据量,高并发的场景下集群容易出现脑裂等问题 2、在一个生产集群中我们可以对这些节点的职责进行划分。建议集群中设置3台以上的节点作为master节点【node.master: true node.data: false】,这些节点只负责成为主节点,维护整个集群的状态。 3、再根据数据量设置一批data节点【node.master: false node.data: true】,这些节点只负责存储数据,后期提供建立索引和查询索引的服务,这样的话如果用户请求比较频繁,这些节点的压力也会比较大。 4、在集群中建议再设置一批client节点【node.master: false node.data: false】

运维之道 | LVS原理详解

 ̄綄美尐妖づ 提交于 2020-01-27 01:15:24
LVS原理详解及部署 一、LVS简介 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。 二、LVS基本原理 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间。 PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链。 IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群服务进行比对,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP地址及端口,并将新的数据包发往POSTROUTING链。 POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将数据包最终发送给后端的服务器。 三、LVS组成 LVS 由2部分程序组成,包括 ipvs 和 ipvsadm IPVS(ip virtual server) :一段代码工作在内核空间,叫IPVS,是真正生效实现调度的代码。IPVS的总体结构主要由 IP包处理、负载均衡算法、系统配置与管理 三个模块及 虚拟服务器与真实服务器链表 组成。 ipvsadm

分布式锁 原理及实现方式

纵饮孤独 提交于 2020-01-27 00:03:47
一、原理 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要通过一些互斥手段来防止彼此之间的干扰,以保证一致性,在这种情况下,就需要使用分布式锁了。 在平时的实际项目开发中,我们往往很少会去在意分布式锁,而是依赖于关系型数据库固有的排他性来实现不同进程之间的互斥,但大型分布式系统的性能瓶颈往往集中在数据库操作上。 在单机环境中,Java中其实提供了很多并发处理相关的API,但是这些API在分布式场景中就无能为力了。也就是说单纯的Java Api并不能提供分布式锁的能力。 其实秒杀类场景最主要的是执行秒杀操作要单线程的,提到单线程,肯定会想到synchronized关键字,但是他有两个致命缺点:1、无法做到细粒度控制,2、只适合单点不适用集群。 所以大多数项目只能采用分布式锁的实现方式。 针对分布式锁的实现,目前比较常用的有以下几种方案:     基于数据库实现分布式锁     基于缓存(redis,memcached,tair)实现分布式锁     基于Zookeeper实现分布式锁 分布式锁主要有基于缓存如redis、基于zookeeper、基于数据库的实现。 在分析这几种实现方案之前我们先来想一下,我们需要的分布式锁应该是怎么样的?(这里以方法锁为例,资源锁同理)