本文介绍最近几年美团点评MySQL数据库高可用架构的演进过程,以及我们在开源技术基础上做的一些创新。同时,也和业界其它方案进行综合对比,了解业界在高可用方面的进展,和未来我们的一些规划和展望。 MMM
作者:成臣(Sei Jin) PingCAP Marketing & Community
上周发了几篇关于Kubernetes集群搭建相关的文章,里面有一个部分谈到了Kubernetes集群CNI插件(也就是容器网络接口)的部署,很多读者看到了这个部分之后有问到“如何跨VPC或者跨云供应商打通集群之间的网络访问”,我当时搭建集群和写文章的时候也没有注意这点,只是根据以往的经验单纯地把几台机器搞在一起再加上部署好CNI就想当然的以为Kubernetes集群算是“全网通”了。经过读者的提醒和自己的实践,发现忽略了一个严重的问题,也是大多数人在个人搭建Kubernetes集群常常会碰到的问题,也是就今天需要谈论的问题---“如何跨VPC或者跨云供应商搭建Kubernetes集群,保证集群网络互通”。
笔者刚开始进入公司的时候,主要是忙于分布式MySQL系统----MyShard的构建,公司使用了大量的IDC机房,基于这种网络特点,MyShard设计当初完全是为了是一套支持Multi-Master操作的高可用性的分布式数据库,可以在多个机房中部署的业务上提供快速的写操作,实现了分布式高可用存储能力。
MHA在MySQL数据库中被广泛使用,它小巧易用,功能强大,实现了基于MySQL replication架构的自手动主从故障转移,从库重定向到主库并自动同步。尽管如此,在部署配置的过程中,由于疏忽总难以避免这样或那样的错误。本文是对MHA配置中常见问题的一个汇总,供大家参考。
一 、引子 笔者刚开始进入公司的时候,主要是忙于分布式MySQL系统----MyShard的构建,公司使用了大量的IDC机房,基于这种网络特点,MyShard设计当初完全是为了是一套支持Multi-Master操作的高可用性的分布式数据库,可以在多个机房中部署的业务上提供快速的写操作,实现了分布式高可用存储能力。 在业务增长期,MyShard解决了公司的很多大型的数据库存储业务,随着公司业务逐渐稳定下来,分布式存储需求越来越少。而公司却有大量的小业务以及不断尝试的各种新业务,需要越来越多的小数据量的数据库存
在实际的业务场景中,业务组件之间的关系十分复杂,微服务的理念更是让应用部署的粒度更加细小和灵活。为了支持业务应用组件的通信,Kubernetes网络的设计主要致力于解决以下问题。
基础网络是腾讯云上所有用户的公共网络资源池,所有云服务器的内网 IP 地址都由腾讯云统一分配,无法自定义网段划分、IP 地址。随着用户规模和更多复杂业务的扩增,基础网络已经不能满足业务需求,因此在基础网络上演进出具备自主可控、安全性更高的私有网络(VPC)。
网络ping不通是网络中出现频率最高的故障之一,同时也是最让人抓狂的故障,基本上大部分人都遇到过了,如果在项目中出现网络ping不通,没有一个有序的方法去排除解决,那么很难入手,也是讨论最多的问题之一,有不少项目经理到项目中经常遇到。我们来总结下网络ping不通是什么原因?
容器的跨主机通信主要有两种方式:封包模式和路由模式。上一篇文章演示了使用VXLAN协议的封包模式,这篇将介绍另一种方式,利用三层网络的路由转发实现容器的跨主机通信。
两台PLC 分属于不同网段,但有数据通讯的需求,最典型的应用就是使用路由的模式来实现。在PLC侧需要使能“使用路由器”功能,并填写对应的网关地址,然后去调用相应的功能块进行通讯,如在S7-1500中调用 TSEND_C和TRCV_C去实现TCP通讯;当然在两台PLC间需要有支持路由功能的交换机来支持,如scalance xc208。这种通讯架构的典型使用方式可参考图1的示意。
现在很多人会将服务部署到tke集群中,数据库也是用的云上数据库,一些后端服务就需要连接redis、mysql等数据库,大家都知道我们的服务是打成镜像通过pod部署的,所以我们需要在pod里面能访问到云上的数据库。
docker镜像怎么迁移到其他的服务器 http://www.talkwithtrend.com/Question/123589
由于两台物理机的容器网段不同,我们完全可以将两台物理机配置成为路由器,并按照容器的网段配置路由表。
在前面的文章《如何在集群外节点跨网段向HDFS写数据》和《外部客户端跨网段访问Hadoop集群方式(续)》中介绍了如何在集群外的客户端节点上访问Hadoop集群,本篇文章在前面文章的基础上基于Kerberos环境的CDH集群介绍,如何在集群外客户端跨网段向Kerberos环境的Hadoop集群提交MapReduce和Spark作业。
1、配置 配置 IP 地址部分略 地址部分略 2、置 配置 R1 为 为 DHCP 服务器,能够跨网段为 192.168.2.0/24 配 网段自动分配 IP 地址
一、几种网络端口模式 Openshift/Docker中,我们会遇到(听到)的几种网络端口模式有: Hostport Nodeport Hostnetwork router 它们有什么区别,适用于什么场景?我们先看看它们的作用。 二、什么是hostport? hostport它指的是:在一个宿主机上运行的一个容器,为了外部能够访问这个容器,将容器的端口与宿主机进行端口映射。而为了避免宿主机上的端口占用,在容器和宿主机做端口映射的时候,通常映射一个比较大的端口号(小端口被系统服务占用)。 我们看一个实验:
在当今数字化时代,网络已经成为了我们生活和工作中不可或缺的一部分,在智能工厂的场景中,设备因为需要联网才能接入数字化管理系统,常常会遇到各种问题。
OpenShift的OVS网络组件有三种模式:ovs-subnet、ovs-multitenant、ovs-networkpolicy。
电子时钟系统在广电、金融、国防、工业等领域广泛应用,为其提供高精度准确的时间信息。本文就电子时钟系统在采购和使用中常见的问题进行讨论说明。
今天我们来聊一聊容器如何跨主机通信,总所周知的是docker有多种网络模式:HOST、BRIDGE、null等,从多主机通信的应用场景出发,来谈已有的的解决方案。
在上一期《矛盾论与实践论》中,我们提到,网络的正确转发包(路由交换)和正确丢弃包(安全),是矛盾的一体两面。
原文地址,转载请注明出处:http://blog.csdn.net/qq_34021712/article/details/75948566 ©王赛超
VPN路由转发表(VPN Routingand Forwarding table ),简称VRF,VRF主要是为了解决本地路由冲突问题。PE和CE之间的连接都需要关联一个VRF。可以把每个VRF想象成一台“虚拟路由器”,各个VRF间路由是完全隔离的。
此专栏是为了“补货”一些官网没有的操作文档,大家走过路过,可以留言告诉我,哪里写的不清不楚的地方,洒家给它整明白了、
背景:NeoKylin使用swarm、macvlan、calico组网docker环境中pxc高可用不成功后,使用flannel+etcd成功,记录过程如下。 系统:Neokylin-Server-5.0_U4-x86_64-Release-B14-20190320。 使用说明:pxc做集群;Haproxy做负载均衡;Keepalived浮动ip;etcd+Flannel保证容器跨主机互通;ntpdate时间同步、busybox做测试 环境:
此种方式是将容器的某个端口映射到宿主机的某个端口,其它主机访问容器提供的服务需要通过宿主机的IP进行访问:
k8s的网络模型假定了所有的Pod都在一个可以直接连通的扁平的网络空间中, 这在GCE(Google Compute Engine)里面是线程的网络模型, Kubernetes假定这个网络已经存在. 而在私有云里搭建Kubernetes集群, 就不能假定这个网络已经存在了. 我们需要自己实现这个网络假设, 将不同节点上的Docker容器之间的互相访问先打通, 然后运行Kubernetes.
2、永久设置 进入目录/etc/sysconfig/network-scripts ,修改文件ifcfg-ens33 ,修改或添加下列几项
在搭建Kubernetes的环境的时候,你可能会遇到一些问题,不!你会遇到很多问题。比如,首先你要实现跨物理机的容器访问——是不同物理内的容器能够互相访问,而不是你平常所看到的乱七八糟的端口映射。方案有很多,比如OVS、flannel、socketplane什么的,下面是我搭建etcd和flannel的过程,希望对需要这样的环境的人有所帮助,少走弯路。再说一次:跨物理机的容器之间能直接访问
前面我们通过通过腾讯云控制台快速构建了一个ES集群,并能通过云控制台管理界面或者CVM操作管理ES集群。我们知道ES是一个存储搜索分析引擎,那么如何让自己的现有的ES集群的数据跨平台的迁移到腾讯云上来呢??我们推荐ES官方的snapshot方法。下面为大概的过程(因为本人账号属于集体账号,处于安全考虑后面的部分过程粗略讲一下)
上一篇文章讲到:两台 Exchange Server 2016 邮件服务器配置了DAG(高可用集群)和NLB(网络负载平衡),今天来讲一下:(1)NLB需要做的交换机的配置;(3)防火墙策略的配置;(3)外网域名解析及检测确认;(4)运营商IP反向解析的检测。
自从Docker容器出现以来,容器的网络通信就一直是被关注的焦点,也是生产环境的迫切需求。容器的网络通信又可以分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信。下面将分别针对这两方面,对容器的通信原理进行简单的分析,帮助大家更好地使用docker。前面已经在Docker容器学习梳理--基础知识(2)这一篇中详细介绍了Docker的网络配置以及pipework工具。 docker单主机容器通信 基于对net namespace的控制,docker可以为在容器创建隔离的网络环境,在隔离的网络环境下,
上一篇,已经知道三层交换机之间如何对接,以及与路由器之间如何对接了,其实就是有三层口的直接配置地址,如果接口是二层,则加入对应的vlan,配置vlanif对接,保证在一个网段即可,建议是这个网段是全新的网段,没有被其他业务所使用。
MariaDB数据库的创建语法,和MySQL数据库的语法是一样的 此文章是为了快速想起语法,不包含授权
iptables来源:《Linux网络技术》王波(第一版)。中关于iptables的命令介绍。见增补信息。
私有网络(Virtual Private Cloud,VPC)是基于腾讯云构建的专属云上网络空间,为腾讯云上的资源提供网络服务,不同私有网络间完全逻辑隔离。作为在云上的专属网络空间,可以通过软件定义网络的方式管理私有网络 VPC,实现 IP 地址、子网、路由表、网络 ACL 、流日志等功能的配置管理。
最近几年,互联网公司发展迅速,有很多互联网公司本身的基础架构都构建在一些公有云厂商之上,除了节省初期投资之外,另外也是借助于一些大的云厂商本身的网络能力,实现业务更好的覆盖。
单机容器内的通信是通过 docker 自带的网桥连接互通的,如果是集群,那么做这些单机网络模型就行不通了,因为集群必然会将一个服务的多个任务需要分布到不同的机器上进行部署,因为如果把所有的任务都分配到一台机器部署了,这台服务器有故障,就会导致这个服务不能正常运行了,而且一个集群内,不同主机之间的容器是怎么进行通信的呢,这里我们就涉及到 docker 网络模型。
ping的错误回显的内容与icmp的差错消息相关的,根据回显报错的节点ip和内容,我们能知道那个节点出现问题,什么问题?
我们找了一台安装了Docker服务的云服务器172.16.8.3,从这台机器上ping跨网段机器 172.17.8.24
在生产环境的CDH集群中,为了分开集群对网络的使用会为集群配备两套网络(管理网段和数据网段),数据网段主要用于集群内部数据交换,一般使用万兆网络以确保集群内数据传输性能,管理网段主要用于集群管理,一般使用千兆网络。一般情况下在集群外进行集群管理和数据传输的都是通过千兆网络进行交互,在集群外是无法直接访问集群内的万兆网络。
容器不是模拟一个完整的操作系统,而是对进程进行隔离,对容器里的进程来说它接触到的各种资源都是独享的,比虚拟机启动快、占用资源少。
入手了一台腾讯云CDB基础版,看到云+校园的活动是3元/月,刚开始没有看到什么提示说是会有限制,利欲熏心啊!
例如,在2016年春节,微信红包的业务量巨大:共有142亿个红包,比平时的业务量增加了75%,且每秒76万个红包。同时,产生了2900万张红包张片,5.16亿人参与,每秒的支付峰值达到20.8万。 如果这是一个单节点的MySQL数据库,则将带来性能上巨大的瓶颈。
在局域网内,最常见的就是共享打印机,或者直接使用网络打印机,现在当然更推荐后者,正常来说,跨VLAN网段打印,是没什么问题的。
领取专属 10元无门槛券
手把手带您无忧上云