集群服务器

k8s实践(十五):Centos7.6部署k8s v1.16.4高可用集群(主备模式)

让人想犯罪 __ 提交于 2020-01-07 15:43:53
一、部署环境 主机列表: 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 master01 7.6.1810 172.27.34.3 18.09.9 v0.11.0 v1.3.5 4C4G control plane master02 7.6.1810 172.27.34.4 18.09.9 v0.11.0 v1.3.5 4C4G control plane master03 7.6.1810 172.27.34.5 18.09.9 v0.11.0 v1.3.5 4C4G control plane work01 7.6.1810 172.27.34.93 18.09.9 / / 4C4G worker nodes work02 7.6.1810 172.27.34.94 18.09.9 / / 4C4G worker nodes work03 7.6.1810 172.27.34.95 18.09.9 / / 4C4G worker nodes VIP 7.6.1810 172.27.34.130 18.09.9 v0.11.0 v1.3.5 4C4G 在control plane上浮动 client 7.6.1810 172.27.34.234 / / / 4C4G client

实操教程丨如何在K8S集群中部署Traefik Ingress Controller

可紊 提交于 2020-01-07 13:12:18
注:本文使用的Traefik为1.x的版本 在生产环境中,我们常常需要控制来自互联网的外部进入集群中,而这恰巧是Ingress的职责。 Ingress的主要目的是将HTTP和HTTPS从集群外部暴露给该集群中运行的服务。这与Ingress控制如何将外部流量路由到集群有异曲同工之妙。接下来,我们举一个实际的例子来更清楚的说明Ingress的概念。 首先,想象一下在你的Kubernetes集群中有若干个微服务(小型应用程序之间彼此通信)。这些服务能够在集群内部被访问,但我们想让我们的用户从集群外部也能够访问它们。因此,我们需要做的是使用反向代理将每个HTTP(S)(例如, service.yourdomain.com )路由与相应的后端关联,并在该服务的不同实例之间(如,pod)进行负载均衡。与此同时,由于Kubernetes的性质会不断发生变化,因此我们希望跟踪服务后端的更改,以便能够在添加或删除新Pod时将这些HTTP路由重新关联到新Pod实例。 使用Ingress资源和关联的Ingress Controller,你可以实现以下目标: 将你的域 app.domain.com 指向你的私有网络中的微服务应用程序 将路径 domain.com/web 指向你的私有网络中的微服务web 将你的域 backend.domain.com 指向你的私有网络中的微服务后端

es监控的相关配置

ⅰ亾dé卋堺 提交于 2020-01-07 11:28:18
转载: https://www.jianshu.com/p/0c64f3c49dd6 为监控配置索引 索引模板 用于配置存储从建群收集的监视数据的索引。 你可以通过 _template API检索模板: curl -X GET "localhost:9200/_template/.monitoring-*" 默认情况下,该模板为监视索引配置一个碎片和一个副本。要覆盖默认设置,请添加您自己的模板:   1、将 template 模式设置为 .monitoring-* 。   2、将模板的 order 设置为 1 。这确保您的模板是在默认模板之后应用的,默认模板的 order 是 0 。   3、在 settings 部分指定 number_of_shards 和 number_of_replicas 。 例如,下面的模板将碎片的数量增加到5个,副本的数量增加到2个。 curl -X PUT "localhost:9200/_template/custom_monitoring" -H 'Content-Type: application/json' -d' {   "index_patterns": ".monitoring-*",   "order": 1,   "settings": {      "number_of_shards": 5,     "number_of

redis集群(Sentinel)

会有一股神秘感。 提交于 2020-01-07 04:13:26
问题 Redis 主哨兵模式是如何保证高可用的 主要依赖主哨兵的发现故障和故障转移 概述 本文假设读者对redis 的主从复制已经进行了了解 。 Redis 主哨兵集群为Redis 提供了 高可用 ,即高可用是猪哨兵模式的主要目的,这是宏观上Sentinel功能的完整列表 Monitoring :监视实例的情况 Notification : 通知 Automatic failover : 当Master异常下线后,自动会通过选举 Configuration provider : 提供配置信息。 注意事项 在配置哨兵模式下几件事需要注意 : 至少保证3台实例 由于Redis使用异步复制,因此Sentinel + Redis分布式系统不能保证在故障期间保留已确认的写入。 开启 Sentinel后,客户端也需要支持 Sentinel 模式 工作流程 分布式服务器布局 主哨兵的可以是如下布局 这是最简单的布局,Sentinel 依附在实例中,当实例 down 的话,那么 Sentinel 自然也会 down 掉,而图中的 quorum = 2 是什么意思呢,在后面章节再解释。二这种布局会出现分布式服务器“脑裂”问题,如下图 此时可以看到一台 replcation 成为了新的 master,而假如此刻客户端对 redis 进行写入那么数据将会丢失, redis.conf 中的两个参数可以设置

redis基础及配置文件详解

孤街浪徒 提交于 2020-01-06 12:30:49
一、redis部署与使用 redis 基础 官网地址https://redis.io/ Redis和 Memcached 是非关系型数据库,也称为NoSQL数据库 ,MySQL 、 Mariadb 、 SQL S erver 、 PostgreSQL 、Oracle 数据库 属于关系型数据 RDBMS, Relational Database Management System redis 简介 Redis (Remote Dictionary S erver 在 2009 年 发布 开发者 Salvatore Sanfilippo 是意大利 开发者他本想为自己 的 公司开发一个用于替换 MySQL 的产品 Redis ,但是没有想到 他把 Redis 开源后大受 欢迎,短短几年, Redis 就 有了很大的用户群体,目前 国内外 使用的公司有 知乎网 、新浪微博、 GitHub 等; redis 是 一个 开源 的、 遵循 BSD 协议 的、 基于 内存 的 而且目前 比较 流行的 键值数据库 key value database是 一个非关系型数据库 redis 提供 将内存 通过 网络远程共享的一种服务 , 提供 类似功能的还 有memcache,但 相比 memcache redis 还提供了 易 扩展 、高性能 、 具备 数据持久性 等功能。 Redis 在高并发

双RocketMq集群的搭建

[亡魂溺海] 提交于 2020-01-06 07:17:28
一、双Master RocketMq集群的搭建   1、服务器环境: 序号 IP 用户名 角色 模式 1 192.168.211.128 root nameServer1,brokerServer1 Master1 2 192.168.211.129 root nameServer2,brokerServer2 Master1   2、添加hosts信息   vim /etc/hosts IP NAME 192.168.211.128 rocketmq-nameserver1 192.168.211.128 rocketmq-master1 192.168.211.129 rocketmq-nameserver2 192.168.211.129 rocketmq-master2   3、上传解压rocketMq到服务器   上传alibaba-rocketmq-3.2.6.tar.gz文件至/usr/local/install   解压tar -zxvf alibaba-rocketmq-3.2.6.tar.gz -C /usr/local/software   4、创建软连接(两台机器)   ln -s alibaba-rocketmq rocketmq      5、创建存储路径(两台机器)   # mkdir /usr/local/software/rocketmq

etcd集群部署与遇到的坑(转)

跟風遠走 提交于 2020-01-06 05:39:09
在k8s集群中使用了etcd作为数据中心,在实际操作中遇到了一些坑。今天记录一下,为了以后更好操作。 ETCD参数说明 —data-dir 指定节点的数据存储目录,这些数据包括节点ID,集群ID,集群初始化配置,Snapshot文件,若未指定—wal-dir,还会存储WAL文件; —wal-dir 指定节点的was文件的存储目录,若指定了该参数,wal文件会和其他数据文件分开存储。 —name 节点名称 —initial-advertise-peer-urls 告知集群其他节点url. — listen-peer-urls 监听URL,用于与其他节点通讯 — advertise-client-urls 告知客户端url, 也就是服务的url — initial-cluster-token 集群的ID — initial-cluster 集群中所有节点 节点迁移 在生产环境中,不可避免遇到机器硬件故障。当遇到硬件故障发生的时候,我们需要快速恢复节点。ETCD集群可以做到在不丢失数据的,并且不改变节点ID的情况下,迁移节点。 具体办法是: 1)停止待迁移节点上的etc进程; 2)将数据目录打包复制到新的节点; 3)更新该节点对应集群中peer url,让其指向新的节点; 4)使用相同的配置,在新的节点上启动etcd进程 etcd配置 node1 编辑etcd启动脚本 /usr

WEB 集群与负载均衡(一)基本概念-上

泪湿孤枕 提交于 2020-01-05 09:56:49
 CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,《CDN技术详解》绝对是带你进入CDN行业的那盏最亮的明灯。因此,虽然只是纯粹的重点抄录,我也要把《CDN技术详解》的精华放上网。公诸同好。 第一章 引言 “第一公里”是指万维网流量向用户传送的第一个出口,是网站服务器接入互联网的链路所能提供的带宽。这个带宽决定了一个 网站能为用户提供的访问速度和并发访问量。如果业务繁忙,用户的访问数越多,拥塞越严重,网站会在最需要向用户提供服务时失去用户。(还有“中间一公里” 和“最后一公里”分别代表互联网传输传输和万维网流量向用户传送的最后一段接入链路) 从互联网的架构来看,不同网络之间的互联互通带宽,对任何一个运营商网络的流量来说,占比都比较小,收敛比是非常高的,因此这里通常都是互联网传输中的拥堵点(运营商互联互通的问题) 其次是骨干网堵塞问题,由于互联网上的绝大部分流量都要通过骨干网络进行传输,这就要求骨干网络的承载能力必须与互联网 的应用同步发展,但实际上两者并不是同步的,当骨干网络的升级和扩容滞后于互联网之上的应用的发展时,就会阶段性地使得大型骨干网的承载能力成为影响互联 网性能的瓶颈(区域互联互通问题,骨干网带宽瓶颈) 在互联网领域有一个“8秒定律”,用户访问一个网站时,如果等待网页打开的时间超过8秒,会有超过30%的用户放弃等待 使用CDN会极大简化网站的系统维护工作量

K8s(Kubernetes)的安装部署

末鹿安然 提交于 2020-01-04 23:51:55
一. Kubernetes 系统简介 首先,他是一个全新的基于容器技术的分布式架构领先方案。Kubernetes(k8s)是Google开源的容器集群管理系统(内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。   Kubernetes是一个完备的分布式系统支撑平台,具有完备的集群管理能力,多扩多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、內建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。同时Kubernetes提供完善的管理工具,涵盖了包括开发、部署测试、运维监控在内的各个环节。 Kubernetes中,Service是分布式集群架构的核心,一个Service对象拥有如下关键特征: 拥有一个唯一指定的名字 拥有一个虚拟IP(Cluster IP、Service IP、或VIP)和端口号 能够体统某种远程服务能力 被映射到了提供这种服务能力的一组容器应用上 Service的服务进程目前都是基于Socket通信方式对外提供服务,比如Redis、Memcache、MySQL、Web Server,或者是实现了某个具体业务的一个特定的TCP Server进程

Docker swarm搭建(1)

你说的曾经没有我的故事 提交于 2020-01-03 19:48:17
Docker swarm docker swarm集群:三剑客之一 一. Docker Swarm 的基本概念和原理 Docker Swarm 简介 Swarm是Docker公司推出的用来管理docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机。Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client(docker client in Go, docker_py, docker等)均可以直接与Swarm通信。Swarm几乎全部用go语言来完成开发,Swarm0.2发布,相比0.1版本,0.2版本增加了一个新的策略来调度集群中的容器,使得在可用的节点上传播它们,以及支持更多的Docker命令以及集群驱动。 Swarm deamon只是一个调度器(Scheduler)加路由器(router),Swarm自己不运行容器,它只是接受docker客户端发送过来的请求,调度适合的节点来运行容器,这意味着,即使Swarm由于某些原因挂掉了,集群中的节点也会照常运行,当Swarm重新恢复运行之后,它会收集重建集群信息. Docker Swarm 工作原理 Docker 客户端通过 Docker API 向 Swarm 管理端发送请求,Swarm Manager 通过守护进程调用集群中的某个节点来执行任务。因为容器都是运行在节点上