Browsed by
标签:Prometheus

CephFS+Kubernetes 在网易轻舟容器平台的实践

CephFS+Kubernetes 在网易轻舟容器平台的实践

閱讀本文約花費: 8 (分鐘)在网易集团,基于 Kubernetes 构建的网易轻舟云原软件生产力平台扮演着支撑数字化业务快速高效创新的重任,帮助业务团队快速实现云原生应用,提高研发效能,并节省运维成本。 作为网易轻舟云原生平台的存储后端,CephFS 主要为网易轻舟容器平台 NCS 解决容器间共享存储的问题。尤其是在当前比较火的 AI 训练场景应用十分广泛,存储规模达已达数 PB 级,CephFS 的性能优化等工作非常重要。 Ceph 和 CephFS 简介 Ceph 由 RADOS 作为底座,上层提供对象、块、文件等接口服务。RADOS 由 MON、OSD、MGR 组成,MON 负责集群的各类视图(osdmap,pgmap 等),健康状态的管理。MGR 则提供了丰富的系统信息查询功能,以及支持第三方模块接入(Zabbix,Prometheus,Dashboard 等)。OSD 则负责最终的数据存储,一般一个 OSD 对应一块磁盘。 CephFS 在此架构基础之上增加了 MDS 和 client,其中 MDS 负责文件系统的元数据管理和持久化操作。client 则对外提供了兼容 POSIX 语义的文件系统客户端,可通过 mount 命令进行挂载。 CephFS 典型实践 部署 整个 CephFS 在轻舟 Kubernetes 环境中的部署架构如下: 在 Kubernetes 的使…

Read More Read More

Nacos 企业级落地实践

Nacos 企业级落地实践

閱讀本文約花費: 16 (分鐘)前言 在高速发展的时候,公司规模越来越大,老师人数越来越多,这时候公司不能铺太多人去做运营与服务,必须提高每个人效,这就需要技术驱动。因此掌门教育转变成一家技术驱动型的公司,如果被迫成为一家靠资金驱动的公司就活不下去了。 ——张翼(掌门教育创始人兼 CEO) 掌门教育自 2014 年正式转型在线教育以来,秉承“让教育共享智能,让学习高效快乐”的宗旨和愿景,经历云计算、大数据、人工智能、 AR / VR / MR 以及现今最火的 5G ,一直坚持用科技赋能教育。掌门教育的业务近几年得到了快速发展,特别是今年的疫情,使在线教育成为了新的风口,也给掌门教育新的机遇。 随着业务规模进一步扩大,流量进一步暴增,微服务数目进一步增长,使老的微服务体系所采用的注册中心 Eureka 不堪重负,同时 Spring Cloud 体系已经演进到第二代,第一代的 Eureka 注册中心已经不大适合现在的业务逻辑和规模,同时它目前被 Spring Cloud 官方置于维护模式,将不再向前发展。如何选择一个更为优秀和适用的注册中心,这个课题就摆在了掌门人的面前。经过对 Alibaba Nacos 、HashiCorp Consul 等开源注册中心做了深入的调研和比较,最终选定 Alibaba Nacos 做微服务体系 Solar 中的新注册中心。 背景故事 掌门教育微服务面临…

Read More Read More

【K8S】基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇)

【K8S】基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇)

閱讀本文約花費: 51 (分鐘)环境搭建概述 1.K8S是什么? K8S全称是Kubernetes,是一个全新的基于容器技术的分布式架构领先方案,基于容器技术,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化。 如果我们的系统设计遵循了kubernetes的设计思想,那么传统系统架构中那些和业务没有多大关系的底层代码或功能模块,都可以使用K8S来管理,我们不必再费心于负载均衡的选型和部署实施问题,不必再考虑引入或自己开发一个复杂的服务治理框架,不必再头疼与服务监控和故障处理模块的开发。总之,使用kubernetes提供的解决方案,会大大减少开发成本,同时可以将精力更加集中于业务本身,而且由于kubernetes提供了强大的自动化机制,所以系统后期的运维难度和运维成本大幅降低。 2.为什么要用K8S? Docker 这个新兴的容器化技术当前已经被很多公司所采用,其从单机走向集群已成必然,而云计算的蓬勃发展正在加速这一进程。Kubernetes 作为当前唯一被业界广泛认可和看好的 Docker 分布式系统解决方案。可以预见,在未来几年内,会有大量的新系统选择它,不管是运行在企业本地服务器上还是被托管到公有云上。 3.使用K8S有哪些好处? 使用Kubernetes就是在全面部署微服务架构。微服务架构的核心就是将一个巨大的单体应用分解为很多小的互相连接的微服务,一个微服…

Read More Read More

云原生应用 Kubernetes 监控与弹性实践

云原生应用 Kubernetes 监控与弹性实践

閱讀本文約花費: 8 (分鐘) 本文向大家介绍一个云原生应用该如何在Kubernetes中无缝集成监控和弹性能力。希望对您的学习有所帮助。 前言 云原生应用的设计理念已经被越来越多的开发者接受与认可,而Kubernetes做为云原生的标准接口实现,已经成为了整个stack的中心,云服务的能力可以通过Cloud Provider、CRD Controller、Operator等等的方式从Kubernetes的标准接口向业务层透出。开发者可以基于Kubernetes来构建自己的云原生应用与平台,Kubernetes成为了构建平台的平台。 阿里云容器服务Kubernetes的监控总览 云服务集成 阿里云容器服务Kubernetes目前已经和四款监控云服务进行了打通,分别是SLS(日志服务)、ARMS(应用性能监控)、AHAS(架构感知监控服务)、Cloud Monitor(云监控)。 SLS主要负责日志的采集、分析。在阿里云容器服务Kubernetes中,SLS可以采集三种不同类型的日志 APIServer等核心组件的日志 Service Mesh/Ingress等接入层的日志 应用的标准日志 除了采集日志的标准链路外,SLS还提供了上层的日志分析能力,默认提供了基于APIServer的审计分析能力、接入层的可观测性展现、应用层的日志分析。在阿里云容器服务Kubernetes中,日志组件…

Read More Read More

第四章 Sentinel–服务容错

第四章 Sentinel–服务容错

閱讀本文約花費: 30 (分鐘) 从高并发带来的问题的问题说起 ,讲解服务雪崩效应,常见容错方案,Sentinel基础,相关的应用规则等。 4.1 高并发带来的问题 在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟,此时若有大量的网络涌入,会形成任务堆积,最终导致服务瘫痪。 接下来,我们来模拟一个高并发的场景 @[email protected] class OrderController2 {@Autowiredprivate OrderService orderService;@Autowiredprivate ProductService productService;@RequestMapping(“/order/prod/{pid}”)public Order order(@PathVariable(“pid”) Integer pid) {log.info(“接收到{}号商品的下单请求,接下来调用商品微服务查询此商品信息”, pid); //调用商品微服务,查询商品信息Product product = productService.find…

Read More Read More

阿里巴巴双十一千万级实时监控系统技术揭秘

阿里巴巴双十一千万级实时监控系统技术揭秘

閱讀本文約花費: 13 (分鐘)本次分享主要介绍以下四方面: 时序业务全景 TSDB 介绍 核心技术 总结展望 时序业务全景 从底层的机器监控到直面用户的应用,都离不开时序性的业务场景,而时序性的数据一般都由专业的时序数据库来存储分析,下面主要介绍 TSDB 覆盖的业务场景以及面临的挑战。 1.1 时序数据库覆盖场景 基础设施层:机柜、物理机、操作系统监控日志 基础运维:sunfire(集团统一监控、采集、报警系统)、阿里云监控、GOC(阿里全球应急调度指挥系统) 资源调度:集团内部调度系统、Kubernetes 集群管理:DBPaas(阿里所有数据库实例的监控和调度) 应用层:APM 场景下的各种应用 1.2 时序数据库面临的挑战 由于面临各个层级的不用场景,所以时序数据库也面临不同挑战: 应用层挑战:由于直面客户所以需要提供高频率、低延迟的查询 olap 数据库本身特性:海量数据的聚合 时序数据库特有的:发散时间线 双十一大促:突然流量十倍以上增长 TSDB 介绍 2.1 TSDB 的发展及性能 TSDB 于 2016 年开始服役, 到目前为止参与了三次双十一大促,相比于 2017 年读写吞吐翻倍增长, 写入 TPS4000w,查询 2wQPS 覆盖集团 130+ 业务线及存储百亿的时间线。 2.2 TSDB 架构介绍 如上图,从左到右为数据的采集到展现的过程: 边缘计算:轻量…

Read More Read More

Kubernetes HPA 详解

Kubernetes HPA 详解

閱讀本文約花費: 32 (分鐘)Kubernetes HPA 详解 在前面的学习中我们使用用一个 kubectl scale 命令可以来实现 Pod 的扩缩容功能,但是这个毕竟是完全手动操作的,要应对线上的各种复杂情况,我们需要能够做到自动化去感知业务,来自动进行扩缩容。为此,Kubernetes 也为我们提供了这样的一个资源对象:HorizontalPodAutoscaling(Pod水平自动伸缩),简称 HPA,HPA 通过监控分析一些控制器控制的所有 Pod 的负载变化情况来确定是否需要调整 Pod 的副本数量,这是 HPA 最基本的原理: 我们可以简单的通过 kubectl autoscale 命令来创建一个 HPA 资源对象, HPAController默认 30s轮询一次(可通过 kube-controller-manager 的 –horizontal-pod-autoscaler-sync-period 参数进行设置),查询指定的资源中的 Pod 资源使用率,并且与创建时设定的值和指标做对比,从而实现自动伸缩的功能。 Metrics Server 在 HPA 的第一个版本中,我们需要 Heapster 提供 CPU 和内存指标,在 HPA v2 过后就需要安装 Metrcis Server 了, MetricsServer 可以通过标准的 Kubernetes A…

Read More Read More

Cloud Native Computing Foundation Announces ‘Introduction to Kubernetes’ Course Surpasses 100,000 Registrations

Cloud Native Computing Foundation Announces ‘Introduction to Kubernetes’ Course Surpasses 100,000 Registrations

閱讀本文約花費: 2 (分鐘)Hosted by The Linux Foundation and edX.org, the course teaches the basics of Kubernetes to  developers and systems administrators SAN FRANCISCO, Calif. – January 28, 2020 – The Cloud Native Computing Foundation® (CNCF®), which builds sustainable ecosystems for cloud native software, today announced that more than 100,000 people have registered for the free ‘Introduction to Kubernetes’ course, hosted by The Linux Foundation with edX.org. CNCF has made significant investments to implement training, expert certification, and provider certification programs for Kubern…

Read More Read More

基于k8s Prometheus+Grafana+Altermanager钉钉报警

基于k8s Prometheus+Grafana+Altermanager钉钉报警

閱讀本文約花費: 6 (分鐘)一、概述 Alertmanager与Prometheus是相互分离的两个组件。Prometheus服务器根据报警规则将警报发送给Alertmanager,然后Alertmanager将silencing、inhibition、aggregation等消息通过电子邮件、dingtalk和HipChat发送通知。 Alertmanager处理由例如Prometheus服务器等客户端发来的警报。它负责删除重复数据、分组,并将警报通过路由发送到正确的接收器,比如电子邮件、Slack、dingtalk等。Alertmanager还支持groups,silencing和警报抑制的机制。 钉钉作为内部通讯工具,基本上大家在电脑和手机上都能用,消息可以第一时间查看,报警消息的即时性要求比较高,所以适合用钉钉通知。 二、添加钉钉机器人 请参考官方文档:自定义机器人 添加机器人后获取机器人的hook(机器人好像只能在钉钉群里面添加),在后面部署会用到。 机器人hook:https://oapi.dingtalk.com/robot/send?access_token=xxxxxx 三、配置Alertmanager Alertmanager官方文档:https://github.com/prometheus/docs/blob/db2a09a8a7e193d6e474f37…

Read More Read More

使用Prometheus Operator实现应用自定义监控

使用Prometheus Operator实现应用自定义监控

閱讀本文約花費: 9 (分鐘)一、前言 在之前文章中为大家讲解了如何在Kubernetes集群中部署Prometheus,已经可以通过Prometheus监控Kubernetes中Pod的状态、核心组件的状态等数据。那么如何将应用自身的数据进行集成呢? 首先prometheus对收集的数据格式是有一定的要求的,具体格式如下,只有符合此格式的prometheus才会正常的采集,所以在应用中我们需要能把关键性的监控数据以此格式抛出来。 至于怎么把监控指标数据抛出来,可能需要从应用本身动手。Prometheus社区也提供了大量的官方以及第三方Exporters,可以满足Prometheus的采纳者快速实现对关键业务,以及基础设施的监控需求。官方以及第三方Exporters请参考此链接。 此处我们建议直接使用Prometheus的Client进行注册监控接口。Promehtues的Client目前支持大部分编程语言,支持列表可以参考如下文章。prometheus client支持的语言列表。 二、应用监控 本次是使用nginx demo镜像来演示。 1. 创建deployment和service 2. 创建ServiceMonitor 由于prometheus里指定了serviceMonitor的标签必须release: p才会去抓取数据,所以在我们应用的ServiceMonitor中必须…

Read More Read More

使用Prometheus Operator监控kubetnetes集群

使用Prometheus Operator监控kubetnetes集群

閱讀本文約花費: 9 (分鐘)一、简介 Prometheus Prometheus 是一个开源监控系统,它本身已经成为了云原生中指标监控的事实标准,几乎所有 Kubernetes 的核心组件以及其它云原生系统都以 Prometheus 的指标格式输出自己的运行时监控信息。 主要特性: 使用指标名称及键值对标识的多维度数据模型。 采用弹性查询语言PromQL。 不依赖分布式存储,为自治的单点服务。 使用http完成对监控数据的拉取。 通过网关支持时序数据的推送。 支持多种图形和Dashboard的展示。 另外在Prometheus的整个生态系统中有各种可选组件,用于功能的扩充。 Prometheus-Operator CoreOS提供了一种名为Operator的管理工具,他是管理特定应用程序的控制器。通过扩展Kubernetes API以软件的方式帮助用户创建、配置和管理复杂的或又状态的应用程序实例(如etcd、Redis、MySQL、Prometheus等)。 它通过Kubernetes的CRD(Custom Resource Definition,自定义资源定义)对Prometheus和Prometheus需要监控的服务进行部署和配置。 Prometheus-Operator使用下面两种资源来配置Prometheus及其要监控的服务。 Prometheus:为Prometheus…

Read More Read More

Scroll Up