在系统生命周期中, 免不了要做升级部署, 对于关键服务, 我们应该能做到不停服务完成升级。另外服务的SLA标准一般都要在四个9以上所以对于优雅停服的需要就十分有必要了。
服务器负载平衡 (SLB) 通过以下方式提供网络性能和内容交付:实施一系列算法和优先级来响应对网络。
GTM(Global Traffic Manager的简写)即全局流量管理,基于网宿智能DNS、分布式监控体系,实现实时故障切换及全球负载均衡,保障应用服务的持续高可用性。GTM基于资源的健康状况及流量负载做智能调度决策,为用户提供最佳访问IP。网宿GTM,提供更可靠、稳定和安全的流量调度服务,助您轻松构建混合云应用。
基于DNS解析的GSLB方案实际上就是把负载均衡设备部署在DNS系统中。在用户发出任何应用连接请求时,首先必须通过DNS系统来请求获得服务器的IP地址,基于DNS的GSLB正是在返回DNS解析结果的过程中进行智能决策,给用户返回一个最佳的服务器的IP地址。从用户的视角看,整个应用流程与没有GSLB参与时没有发生任何变化。
LB,SLB,ALB,GSLB,CDN,傻傻分不清楚,听风看雨。。。毒鸡汤看多了,我快掩饰不住我的悲伤了。。。
导读:集群升级是 Kubernetes 集群生命周期中最为重要的一环,也是众多使用者最为谨慎对待的操作之一。为了更好地理解集群升级这件事情的内涵外延,我们首先会对集群升级的必要性和难点进行阐述;随后会对集群升级前必须要做的前置检查进行逐一讲解;接下来会对两种常见的升级方式进行展开介绍;最后对集群升级的三个步骤进行讲解,帮助读者从理论走入实践。
原创 高相林(禅鸣) [阿里巴巴云原生](javascript:void(0)😉 作者 | 高相林(禅鸣) **导读:**集群升级是 Kubernetes 集群生命周期中最为重要的一环,也是众多使用者最为谨慎对待的操作之一。为了更好地理解集群升级这件事情的内涵外延,我们首先会对集群升级的必要性和难点进行阐述;随后会对集群升级前必须要做的前置检查进行逐一讲解;接下来会对两种常见的升级方式进行展开介绍;最后对集群升级的三个步骤进行讲解,帮助读者从理论走入实践。 升级的必要性&难点 在 Kubernetes
内容来源:2017 年 12 月 21 日,驻云科技资深架构师翟永东在“云时代企业架构的搭建”进行《云上架构如何实现高性能和高可用》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。 阅读字数:2851 | 8分钟阅读 摘要 云上架构需要关注多方面的因素,本次主要讲的是高可用和高性能,从这两方面展开深度的解析如何搭建完善的云上架构。 嘉宾演讲视频及PPT回顾:http://suo.im/4sKQd8 云上架构概述 云上搭建架构不单单需要考虑到性能和可用性
1. **服务发现**:Nacos 作为一个服务注册中心,允许服务提供者在启动时将自身服务信息注册到 Nacos Server,服务消费者则可以通过 Nacos 获取服务列表,进而找到所需的服务提供方进行调用,实现了服务间的自动发现与绑定。
内容概况 云计算的特点是开箱即用,可以随时的扩缩容,不用考虑硬件的损坏问题,也有丰富的云服务和云平台供我们选择。在本次演讲中,黎山通过实际应用场景为我们讲述了基础设施及代码的重要性,以及在云计算的运维
相信很多小伙伴的公司都是服务治理,自动化运维了吧,那么我们很多东西都变成我们自己去设置了,比如自己创建一个域名,绑定他的代理机器,它的web负载均衡这些东西。所以今天跟大家一起来看看负载均衡
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
大家好,又见面了,我是你们的朋友全栈君。引言 在过去的几年中,随着互联网的快速发展和企业应用WEB化,服务器负载均衡(SLB)技术已经不再陌生。 服务器负载均衡根据用户数据请求中的4-7层信息将其智能转发到后端少则数台多则成百上千台应用服务器, 并且确保根据事先定义的策略选择最佳的服务器进行转发,从而一定程度上解决了应用的可用性、扩展性等问题。 但是,随着用户对应用可用性和扩展性需求的进一步增加,越来越多的用户不满足于在单一数据中心提供服务,开始考虑容灾、用户就近访问等问题。 这正是负载均衡设备中的全局服务器负载均衡技术(GSLB)所要解决的问题。尽管GSLB技术早在数年前就是大部分负载均衡设备提供的必备功能, 但由于用户需求较小、功能不够完善、性能不足、价格高昂等因素,目前部署GSLB的用户在负载均衡整个用户群中所占比例还是很小。相信在未来几年中,GSLB的应用比例将快速增加。 本文针对GSLB相关技术及解决方案进行介绍。 GSLB技术 市场上存在的GSLB技术可以归纳为以下几类: 基于DNS的GSLB 绝大部分使用负载均衡技术的应用都通过域名来访问目的主机,在用户发出任何应用连接请求时,首先必须通过DNS请求获得服务器的IP地址,基于DNS的GSLB正是在返回DNS解析结果的过程中进行智能决策, 给用户返回一个最佳的服务IP。用户应用流程与没有GSLB时未发生任何变化。这也是市场上主流的GSLB技术。 基于应用重定向的GSLB 基于应用重定向的GSLB是在负载均衡设备收到用户应用请求并选择最佳服务IP后,通过应用层协议将用户请求重定向到所选择的最佳服务IP。这种方式只适用于支持应用重定向的协议(如HTTP、MMS),且性能较差。 基于IP地址伪装(三角传输)的GSLB 有个别负载均衡设备厂商采用这种技术来实现GSLB。当用户应用请求到达一台负载均衡设备时,这台负载均衡设备计算出对于该用户最佳的服务IP(定义在另一台同一厂商负载均衡设备上)并将用户请求转发给该IP。 第二台负载均衡设备直接将响应返回用户,但必须将源地址修改为第一台负载均衡设备的服务IP。这种方式要求所有站点必须为同一厂家的负载均衡设备,另外地址伪装的数据包会可能被互联网中的路由设备过滤掉。 因为所有用户请求都要经过广域网三角方式传输而不是发到最佳的负载均衡设备,用户访问效果和性能都比较差。 基于主机路由注入的GSLB(Anycast) 在多个站点定义相同的服务IP,并由负载均衡设备或路由器将该IP的主机路由发送出去,这样网络中会存在多条到达该主机地址的路由。由于路由设备总是选择最近(Metric最小)的路由转发数据, 用户的访问请求总是被转发到最近的负载均衡设备。这种方式要在不同站点广播相同的主机路由,由于运营商的限制问题很难实现。另外这种方式策略非常简单,只能根据最短路由选择,客户无法定义灵活的选择策略。 根据上面的分析,后面的三种方式都有很多局限性或性能较差,这也是为什么基于DNS的GSLB成为主流技术的原因。在基于DNS的GSLB具体实现中,不同厂家的功能会有所不同,也有部分用户自己开发智能DNS实现类似功能。 总体来说,一个完善的基于DNS的GSLB设备可以满足以下需求: 支持任何IP应用。 各服务站点可以使用不同厂家的本地服务器负载均衡设备或直接使用真实服务器。 GSLB控制设备可直接作为授权DNS,也可以配置为DNS代理方式。DNS代理方式在做GSLB决策控制同时可以对后端DNS服务器进行负载均衡。当业务量增加时可以通过增加后端的真实DNS服务器数量进行扩展。 内置国际IANA机构提供的全球各区域地址分配表,且用户自定义区域可以包含足够多的IP前缀。同时区域定义支持树状分层结构,如China.Beijing.HaiDian。这些功能在GSLB控制设备进行静态基于区域选择服务站点时是必须的。 支持返回A记录和CNAME等记录。尤其在多级GSLB控制时,返回CNAME是必须具备的。 支持丰富的GSLB策略,常见的如往返时间(RTT)、权重、活动服务器等。 具有灵活的自定义脚本用于过滤各种非法DNS请求或攻击。 强大的DDoS攻击防护功能。一旦GSLB控制设备被攻击瘫痪,所有业务都无法提供。 基于DNS的GSLB工作原理 下面我们对基于DNS的GSLB的工作原理进行简单介绍。
最近有个集团级的云项目处于实施过程中,客户对数据备份、应用双活视为同一个事物,要求我方将原秒级数据备份升级为秒级应用双活。实际问题,备份与双活是不同的两个概念。以下我们用图文方式简述双活与数据备份的区别。
upstream是Kong网关将流量转发到的多个target的集合,target可以是域名、ip,不同target可以有不同的port,且可分配不同的权重。通过使用upstream,Kong网关提供如下功能:
注册中心不应仅提供服务注册和发现功能,还应保证对服务可用性监测,对不健康的服务和过期的进行标识或剔除,维护实例的生命周期,以保证客户端尽可能的查询到可用的服务列表。
前段时间不是在忙么,忙的内容之一就是花了点时间重构了一个服务的健康检查组件,目前已经慢慢在灰度线上,本文就来分享下这次重构之旅,也算作个总结吧。
前者依赖客户端自我报告,较易失效或延迟发现问题。后者由服务端定期检查,可更快准确发现客户端异常。但也增加服务端负载。
负载均衡可以定期向后端服务器发送 Ping 命令、尝试连接或发送请求来探测后端服务器运行的状况,这些探测称为健康检查。负载均衡通过健康检查来判断后端服务的可用性,避免后端服务异常影响前端业务,从而提高业务整体可用性。
最近推出DCOS之Marathon相关文章,主要介绍DCOS系统选用Marathon作为应用管理工具使用情况,上周我们介绍了应用相关基础知识,接下来请阅读第四遍文章:DCOS之Marathon应用拓展篇
Nacos是阿里巴巴开源的注册中心和配置中心的技术解决方案,目前有很多公司都在使用它,并落地到自己的业务产品中,好吧你们知不知道它是支持健康检查机制的呢?下面我将带着大家一起来理解它的健康检查机制的核心原理及业务背景。
本文介绍了容器健康检查的概念、检查类别、检查方式、公共参数以及相关示例,以帮助用户更好地了解和掌握容器健康检查的相关知识。
CLB健康检查是指负载均衡实例定期向后端服务器发送 Ping、尝试连接或发送请求来测试后端服务器运行的状况。当后端服务器实例被判定为不健康时,负载均衡实例将不会把请求转发到该实例上。健康检查会对所有后端服务器(不管是判定为健康的还是不健康的)进行,当不健康实例恢复正常状态时,负载均衡实例将恢复把新的请求转发给它。
在实际生产环境中,想要使得开发的应用程序完全没有bug,在任何时候都运行正常,几乎 是不可能的任务。因此,我们需要一套管理系统,来对用户的应用程序执行周期性的健康检查和修复操作。这套管理系统必须运行在应用程序之外,这一点非常重要一一如果它是应用程序的一部分,极有可能会和应用程序一起崩溃。因此,在Kubernetes中,系统和应用程序的健康检查是由Kubelet来完成的。
在前两篇的文章中,已经全面介绍过jenkins pipeline的特点及用途,以及实操了一把,将我们的构建产物jar包丢到了目标主机。这篇是接着上篇的实操,实现构建即部署的脚本实现。会在之前的git clone(拉源码),maven build(构建),deploy jar(上传jia包)的基础上,在新增两个步骤start app(启动服务),check health(检查应用健康),真正实现持续交付,持续集成。
今天在博客的交流区收到一条不错的问题,拿出来给大家分享一下。具体问题如下: 因为项目里面用到了redis集群,但并不是用spring boot的配置方式,启动后项目健康检查老是检查redis的时候状态为down,导致注册到eureka后项目状态也是down。 "redis": { "status": "DOWN", "error": "org.springframework.data.redis.RedisConnectionFailureException: Cannot get Je
DDoS 高防 IP 通过健康检查帮助用户自动识别后端服务器的运行状况,自动隔离异常的服务器,以此降低了后端服务器异常对整体业务可用性的影响。
随着人们的生活水平的不断提高,人们对身体健康越来越重视,很多人都做过体检,一般公司都会有一年一度的体检福利,健康体检是家喻户晓了。
七层健康检查,使用HTTP协议,支持GET、HEAD两种请求方法,HEAD只获取头部信息,不获取实际内容,更加轻量的探测,两种方式,都是依赖RS返回的HTTP CODE与设置的健康状态码比对(默认为1xx、2xx、3xx、4xx),如果不在健康状态码范围内或者在响应超时时间内没有返回任何状态码并且达到不健康阈值次数,则判定为不健康。
https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
Spring Cloud Alibaba Nacos 作为注册中心不止提供了服务注册和服务发现功能,它还提供了服务可用性监测的机制。有了此机制之后,Nacos 才能感知服务的健康状态,从而为服务调用者提供健康的服务实例,最终保证了业务系统能够正常的执行。
本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)
通过服务发现与注册中心,可以很方便地管理系统中动态变化的服务实例信息。与此同时,它也可能成为系统的瓶颈和故障点。因为服务之间的调用信息来自于服务注册与发现中心,当它不可用时,服务之间的调用可能无法正常进行。因此服务发现与注册中心一般会多实例部署,提供高可用性和高稳定性。
Nginx 的健康检查这块笔者在网上看了很多文章,基本都是零零散散的,讲各种实现方式,没有一篇能完整的讲当下的 Nginx 实现健康检查的几种方式,应该选哪一种来使用,于是笔者想总结一篇。
接下来,我们基于 gorilla/mux 路由器实现一个简单的健康检查接口,对一个应用来说,健康检查无非是检查应用本身是否可用,以及应用依赖的核心服务是否可用,这些核心服务通常包括 DB、缓存等。
PS:这里socket端口的方式没有演示,只是提供了源码跟http基本一样的。这就是存活探针和可读性探针的使用方法,pod的这个健康检查对提高应用程序的稳定性健壮性很有必要,一般线上的程序都需要部署这2个参数 liveness probe 和 readiness probe。pod 是一个逻辑单位,可以包含 n 个 container,他们共享 something。docker的container 就是单个container。
HealthCheck 不仅是对应用程序内运行情况、数据流通情况进行检查,还包括应用程序对外部服务或依赖资源的健康检查。 健康检查通常是以暴露应用程序的HTTP端点的形式实施,可用于配置健康探测的的场景有 :
这些核心特性使得Nacos成为一个功能丰富、灵活且可靠的服务发现和配置管理解决方案,适用于构建和管理大规模的分布式系统。
现代化的应用及服务的部署场景主要体现在集群化、微服务和容器化,这一切都建立在针对部署应用或者服务的健康检查上。ASP.NET提供的健康检查不仅可能确定目标应用或者服务的可用性,还具有健康报告发布功能。ASP.NET框架的健康检查功能是通过HealthCheckMiddleware中间件完成的。我们不仅可以利用该中间件确定当前应用的可用性,还可以注册相应的IHealthCheck对象来完成针对不同方面的健康检查。(本文提供的示例演示已经同步到《ASP.NET Core 6框架揭秘-实例演示版》)
http: TLS handshake error from x.x.x.x:52493: read tcp x.x.x.x:30443->x.x.x.x:52493: read: connection reset by peer
IPv6 负载均衡是基于 IPv6 单栈技术实现的负载均衡,和 IPv4 负载均衡协同工作,实现 IPv6/IPv4 双栈通信。IPv6 负载均衡绑定的是云服务器的 IPv6 地址,并对外提供 IPv6 VIP 地址。
最近和同事梳理了下高可用方案的一些细节,对于我来说,如果能够提前发现一些潜在的问题,那对于我们来说收益是最大的,毕竟高可用方案是我们发起的,一旦出现了不可用,不管出于何种原因,都算是我们工作的失职,在这个过程中也发现了一些过度设计的问题。
健康检查(Health Check)可用于服务运行的状态监控,比如腾讯旗下的DNSPOD的D监控,要求配置一个访问路径以判断网站是否可以正常访问实际上就是一个健康检查,当发现健康检查失败时会发送一个邮件通知或者短信来告知网站管理员进行维修。
Kubernetes是谷歌以Borg为前身,基于谷歌15年生产环境经验的基础上开源的一个项目,Kubernetes致力于提供跨主机集群的自动部署、扩展、高可用以及运行应用程序容器的平台。
ZooKeeper、Consul、Eureka和新生的Nacos 都实现了注册中心的功能。那么从哪些方面进行对比,进而选型呢?
领取专属 10元无门槛券
手把手带您无忧上云