HAproxy

Docker学习笔记

佐手、 提交于 2020-08-18 23:29:38
五、Docker 1、简介 Docker 是一个开源的应用容器引擎;是一个轻量级容器技术; Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像; 运行中的这个镜像称为容器,容器启动是非常快速的。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1hzHsWsw-1592984462082)(E:/springboot核心篇+整合篇-尚硅谷/01尚硅谷SpringBoot核心技术篇/Spring Boot 笔记+课件/images/搜狗截图20180303145450.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LhbSvZKc-1592984462085)(E:/springboot核心篇+整合篇-尚硅谷/01尚硅谷SpringBoot核心技术篇/Spring Boot 笔记+课件/images/搜狗截图20180303145531.png)] 2、核心概念 docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上); docker客户端(Client):连接docker主机进行操作; docker仓库(Registry):用来保存各种打包好的软件镜像; docker镜像(Images):软件打包好的镜像

nginx简介(二)

ε祈祈猫儿з 提交于 2020-08-17 17:47:51
1.Nginx优点: A、高并发、高性能 高并发往往只需要每个连接所使用的内存尽量的少就能做到,而再高并发的同时达到高性能往往需要很好的设计。Nginx使主流服务器可以轻松达到数千万的并发连接,如果是处理简单的静态资源请求,可以达到一百万的RPS这种级别。 B、可扩展性好 主要体现再它的模块化设计,模块设计得非常稳定,使得nginx的第三方模块生态圈非常丰富,甚至有Tengine、OpenResty这样独立门户出来,又生成新的生态圈的插件。丰富的生态圈为Nginx丰富的功能提供了保证。 C、可靠性高 Nginx可以在服务器上持续不间断地运行数年,而很多web服务器往往运行几周或几个月就需要进行一次重启。对于Nginx这样的高并发、高性能的反向代理服务器而言,它往往运行在企业内网的边缘节点上,这个时候如果我们企业想要提供4个9、5个9、甚至更高的高可用性时,Nginx就能满足此需求。 D、热部署 Nginx可以在不停止服务的情况下进行升级。这可以避免操作系统向客户端发送大部分客户端难以处理的复位请求。 E、BSD许可证 Nginx不只是开源的、免费的,而且我们在有定制需求的场景下,去修改Nginx的源代码,应用在我们的商业场景下,这是合法的。 功能强大: 1)可以实现网站服务功能 替代:apache 2)可以实现负载功能 t替代 L:VS haproxy 3)可以实现缓存功能 替代:

kubernetes(六) 基于kubeadm构建高可用k8s集群

╄→尐↘猪︶ㄣ 提交于 2020-08-17 04:39:34
基于kubeadm构建高可用k8s集群 github地址: https://github.com/kubernetes/kubernetes/ 官方网站: kubernets.io 基于kubeadm创建k8s集群 基础概念 pod使用接口技术 CNI: container network interface CSI: container storage interface CRI: container runtime interface CVI: container volume interface pod:k8s中运行容器的最小单元 k8s如果向替换CRI的话(替换容器技术),只需要讲POD使用相关的容器技术(docker,podman)封装即可 service: 实现了从宿主机外层访问k8s内部不同的容器的访问方式,还实现了pod的动态发现;因此可以说Service是k8s内部的负载均衡器 实现方式: 早期是iptable,在1.11之后支持ipvs(轮训算法) replicationcontroller/deployment: 已废弃,POD控制器; 通过环境检测,保证pod的正常运行 k8s组成部分介绍 master: 主节点 kube-apiserver: https://k8smeetup.github.io/docs/admin/kube-apiserver/

docker实现haproxy代理后端wordpress

筅森魡賤 提交于 2020-08-15 17:29:36
docker实现haproxy代理后端wordpress 1,修改编排脚本 [ root@docker - compose ~ ] # cat docker-compose.yml [ root@docker - compose ~ ] # cat /etc/docker/wordpress/docker-compose.yml version : '3' services : db : image : mysql : 5.7 volumes : - /data/db_data : /var/lib/mysql restart : always environment : MYSQL_ROOT_PASSWORD : 1234.com MYSQL_DATABASE : wordpress MYSQL_USER : wordpress MYSQL_PASSWORD : wordpress wordpress1 : depends_on : - db image : wordpress : latest volumes : - /data/web_data : /var/www/html ports : - "32768:80" expose : - 80 restart : always environment : WORDPRESS_DB_HOST : db : 3306

RabbitMQ(四):使用Docker构建RabbitMQ高可用负载均衡集群

不羁的心 提交于 2020-08-15 16:01:14
本文使用Docker搭建RabbitMQ集群,然后使用HAProxy做负载均衡,最后使用KeepAlived实现集群高可用,从而搭建起来一个完成了RabbitMQ高可用负载均衡集群。受限于自身条件,本文使用VMware虚拟机的克隆功能克隆了两台服务器进行操作,仅作为一个demo,开发中可根据实际情况进行调整。 为什么要搭建高可用负载均衡集群?一句话来说就是:引入消息队列,可以实现异步操作、流量削峰、应用解耦等好处,但是消息队列毕竟是一把双刃剑,带了这些好处的同时也会使系统可用性、稳定性降低。对于RabbitMQ而言,它本身并不是分布式的(对比Kafka),所以我们要搭建RabbitMQ的集群来实现高可用。 首先看下RabbitMQ高可用负载均衡集群长什么样子: 使用Docker构建RabbitMQ高可用负载均衡集群大概分为三个步骤: 启动多个(3个为例)RabbitMQ,构建RabbitMQ集群,并配置为镜像模式。 使用HAProxy做负载均衡。 使用KeepAlived实现高可用。 一、构建RabbitMQ集群 1. 启动多个RabbitMQ节点 使用Docker启动3个RabbitMQ节点,目标如下表所示: 服务器ip 端口 hostname 管理界面地址 192.168.16.128 5672 my-rabbit1 192.168.16.128:15672 192.168

gRPC负载均衡(客户端负载均衡)

柔情痞子 提交于 2020-08-15 07:03:31
前言 上篇 介绍了如何使用 etcd 实现服务发现,本篇将基于etcd的服务发现前提下,介绍如何实现gRPC客户端负载均衡。 gRPC负载均衡 gRPC官方文档提供了关于gRPC负载均衡方案 Load Balancing in gRPC ,此方案是为gRPC设计的,下面我们对此进行分析。 1、对每次调用进行负载均衡 gRPC中的负载平衡是以每次调用为基础,而不是以每个连接为基础。换句话说,即使所有的请求都来自一个客户端,我们仍希望它们在所有的服务器上实现负载平衡。 2、负载均衡的方法 集中式 (Proxy Model) 在服务消费者和服务提供者之间有一个独立的负载均衡(LB),通常是专门的硬件设备如 F5,或者基于软件如 LVS,HAproxy等实现。LB上有所有服务的地址映射表,通常由运维配置注册,当服务消费方调用某个目标服务时,它向LB发起请求,由LB以某种策略,比如轮询(Round-Robin)做负载均衡后将请求转发到目标服务。LB一般具备健康检查能力,能自动摘除不健康的服务实例。 该方案主要问题:服务消费方、提供方之间增加了一级,有一定性能开销,请求量大时,效率较低。 可能有读者会认为集中式负载均衡存在这样的问题,一旦负载均衡服务挂掉,那整个系统将不能使用。 解决方案:可以对负载均衡服务进行DNS负载均衡,通过对一个域名设置多个IP地址

HAProxy Data Plane API 2.0 docker 镜像

倖福魔咒の 提交于 2020-08-11 19:42:45
最近HAProxy Data Plane API 2.0 发布了,基于官方说明以及以前的测试,创建了一个v2的dockerfile dataplaneapi 下载地址 https://github.com/haproxytech/dataplaneapi docker 镜像 dockerfile FROM haproxy: 2.1.4 COPY dataplaneapi / usr / local / sbin / dataplaneapi RUN chmod + x / usr / local / sbin / dataplaneapi dockerhub dalongrong / haproxy - dataplaneapi: 2.1.4 参考使用 这个可以参考我以下写的v1的,以及参考官方文档,v2 增强的地方还是比较多的,可以好好看看官方的说明 https://www.haproxy.com/documentation/dataplaneapi/latest/ https://www.haproxy.com/blog/announcing-haproxy-dataplane-api-20/ https://github.com/rongfengliang/haproxy2.0-prometheus/tree/v2 https://www.cnblogs.com

部署rabbitMQ镜像集群实战测试

南楼画角 提交于 2020-08-11 16:49:58
部署rabbitMQ镜像集群 版本信息 rabbit MQ: 3.8.5 Erlang: 官方建议最低21.3 推荐22.x 这里用的是23 环境准备 主机规划 主机 节点 172.16.14.3 磁盘节点 172.16.14.4 内存节点 172.16.14.5 磁盘节点 内存节点: 内存节点将所有的队列、交换机、绑定、用户、权限和 vhost 的元数据定义存储在内存中,好处是可以使得像交换机和队列声明等操作更加的快速。例外情况是:持久的 queue 的内容将被保存到磁盘。 磁盘节点: 将元数据存储在磁盘中,单节点系统只允许磁盘类型的节点,防止重启 RabbitMQ 的时候,丢失系统的配置信息。 注意点: 1、内存节点由于不进行磁盘读写,它的性能比磁盘节点高。 2、集群中可以存在多个磁盘节点,磁盘节点越多整个集群可用性越好,但是集群整体性能不会线性增加,需要权衡考虑。 3、RabbitMQ 要求在集群中至少有一个磁盘节点,所有其他节点可以是内存节点,当节点加入或者离开集群时,必须要将该变更通知到至少一个磁盘节点。如果集群中唯一的一个磁盘节点崩溃的话,集群仍然可以保持运行,但是无法进行其他操作(增删改查),直到节点恢复。 4、设置两个磁盘节点,至少有一个是可用的,可以保存元数据的更改。 下载离线包 官网安装手册( https://www.rabbitmq.com/install

搭建高可用Kubernetes集群之Haproxy+Keepalived集群搭建篇(二)

一个人想着一个人 提交于 2020-08-11 04:49:29
https://www.jianshu.com/p/7a41f0294f32 人生如逆旅,我亦如行人 本篇教程将大家Haproxy+Keepalived集群,主机规划可以参考我的这一篇文章 搭建高可用Kubernetes集群之etcd集群搭建篇(一) Keepalived简介 说到Keepalived,首先介绍一下什么是VRRP(Virtual Router Redundancy Protocol)协议,即虚拟器路由冗余协议,是为了解决局域网内默认网关单点失效的问题。 VRRP 将局域网内的一组路由器组成一个虚拟路由器组,每个路由器都有自己的局域网地址, 根据设置的优先级最高决定那个是master路由器。然后网关地址赋给该主路由器, 该主路由器定时发送VRRP报文向虚拟路由器组公布健康状况, 备份的路由器根据柏爱文判断Master路由器是否工作正常,从而决定是否要接替它. VRRP说白了就是实现IP地址漂移的,是一种容错协议。在下图中,Router A(10.100.10.1)、Router B(10.100.10.2)和Router C(10.100.10.3) 组成一个虚拟路由器。各虚拟路由器都有自己的IP地址。局域网内的主机将虚拟路由器设置为缺省网关。 Router A、Router B和Router C中优先级最高的那台路由器作为Master路由器,比如A,承担网关的功能

自动化运维工具Ansible之LNMP实践环境部署

落花浮王杯 提交于 2020-08-11 04:41:29
Ansible-实战指南-LNMP环境部署,并使用zabbix监控 主机规划 系统初始化:必要的系统初始化 基础组件包括:zabbix监控,mariadb(用于存放zabbix监控信息) 业务组件包括:MySQL、memcached、nginx、PHP、haproxy、keepalived 添加用户账号 说明: 1、 运维人员使用的登录账号; 2、 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放; 3、 该用户也被 ansible 使用,因为几乎所有的生产环境都是禁止 root 远程登录的(因此该 yun 用户也进行了 sudo 提权)。 1 # 使用一个专门的用户,避免直接使用root用户 2 # 添加用户、指定家目录并指定用户密码 3 # sudo提权 4 # 让其它普通用户可以进入该目录查看信息 5 useradd -u 1050 -d /app yun && echo ' 123456 ' | /usr/bin/ passwd -- stdin yun 6 echo " yun ALL=(ALL) NOPASSWD: ALL " >> /etc/ sudoers 7 chmod 755 /app/ 备注:记得在管理机 172.16.1.180 上实现对其他机器的免密登录。 Ansible 配置清单Inventory 1 [yun@ansi