共识、线性一致性与顺序一致性

2020-04-02
阅读 13 分钟
15.5k
etcd 是线性一致性读,而 zk 却是顺序一致性读,再加上各种共识、强弱一致的名词,看的时候总会混淆,这篇文档就列举下分布式系统中的那些"一致性名词",引用了很多其他的文章,不过会多出一些例子来帮助理解。

高可用prometheus:thanos 实践

2020-03-27
阅读 10 分钟
7.7k
在prometheus 使用心得文章中有简单提到prometheus 的高可用方案,尝试了联邦、remote write 之后,我们最终选择了 thanos 作为监控配套组件,利用其全局视图来管理我们的多地域/上百个集群的监控数据。本文主要介绍 thanos 的一些组件使用和心得体会。

高可用prometheus:常见问题

2020-03-27
阅读 14 分钟
7.8k
监控系统的历史悠久,是一个很成熟的方向,而Prometheus作为新生代的开源监控系统,慢慢成为了云原生体系的事实标准,也证明了其设计很受欢迎。本文主要分享在prometheus实践中遇到的一些问题和思考

kubelet 原理解析六: 垃圾回收

2020-03-27
阅读 3 分钟
3.2k
概述 在k8s中节点会通过docker pull机制获取外部的镜像,那么什么时候清除镜像呢?k8s运行的容器又是什么时候清除呢? api-server: 运行在master,无状态组件,go自动内存垃圾回收 controller-manager: 运行在master,无状态组件,go自动内存垃圾回收,owner机制提供resource垃圾回收 scheduler: 运行在master,无状态组件...

kubelet 原理解析五: exec的背后

2020-03-27
阅读 7 分钟
6.9k
线上排查pod 问题一般有两种方式,kubectl log或者kubectl exec调试。如果你的 log 写不够优雅,或者需要排除网络问题必须进容器,就只能 exec 了。

kubelet 原理解析四:probeManager

2020-03-27
阅读 11 分钟
2.5k
在Kubernetes 中,系统和应用程序的健康检查任务是由 kubelet 来完成的,本文主要讨论kubelet中 probemanager 相关的实现原理。

kubelet 原理解析三:runtime

2020-03-27
阅读 7 分钟
3.5k
本文转自:[链接] 架构 Kubelet 架构图 Generic Runtime Manager:这是容器运行时的管理者,负责于 CRI 交互,完成容器和镜像的管理 在 CRI 之下,包括两种容器运行时的实现 {代码...} Kubelet 通过 CRI 接口跟外部容器运行时交互,它包括 CRI Server: 这是 CRI gRPC server,监听在 unix socket 上面 Streaming Server:...

kubelet 原理解析二:pleg

2020-03-27
阅读 5 分钟
7.5k
如果你的 node 突然 notready,或者 pod状态异常时,你会 describe node 或describe pod 来查看原因,你可能会看到这一行报错:

kubelet 原理解析一:podManager

2020-01-16
阅读 21 分钟
4.2k
代码走读的路线是:从kubernetes/cmd/kubelet开始,这里包括了kubelet的参数解析、初始化、依赖组件等,然后到达kubernetes/pkg/kubelet模块,开始kubelet的核心逻辑

kubelet 原理解析:先导片

2020-01-16
阅读 11 分钟
3.6k
本文是kubelet源码阅读的先导片,先了解kubelet的主要配置和功能以及一些注意事项,后面走读源码的时候才会更加顺畅,不然一堆 config 的初始化和chan处理,不知道支持哪些新特性,啥场景会用到,看了也没啥意思。

基于 etcd 实现分布式锁

2020-01-16
阅读 12 分钟
17.3k
在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLock或Synchronized)进行互斥控制。在单机环境中,Java中提供了很多并发处理相关的API。但是,随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况...

从kubectl top看K8S监控

2020-01-05
阅读 8 分钟
33.1k
kubectl top 可以很方便地查看node、pod的实时资源使用情况:如CPU、内存。这篇文章会介绍其数据链路和实现原理,同时借kubectl top 阐述 k8s 中的监控体系,窥一斑而知全豹。最后会解释常见的一些问题:

K8S 中的健康检查机制

2019-12-25
阅读 12 分钟
14.8k
健康检查(Health Check)用于检测您的应用实例是否正常工作,是保障业务可用性的一种传统机制,一般用于负载均衡下的业务,如果实例的状态不符合预期,将会把该实例“摘除”,不承担业务流量。

容器监控实践—K8S常用指标分析

2019-12-25
阅读 12 分钟
17.4k
[TOC] 基于 RED方法 和 USE 方法 对以下四类指标进行分析: cadvisor 指标分析 node-exporter 指标分析 etcd 指标分析 apiserver 指标分析 advisor 指标分析 在Kubernetes中,cAdvisor嵌入到kubelet中,本文使用 USE 方法对容器的指标进行分析。 USE方法代表 利用率 饱和度 错误 cAdvisor提供的“容器”指标最终是底层Linu...

k8s节点资源预留与 pod 驱逐

2019-12-25
阅读 9 分钟
7.8k
K8S 的节点上的资源会被 pod 和系统进程所使用,如果默认什么都不配置,那么节点上的全部资源都是可以分配给pod使用的,系统进程本身没有保障,这样做很危险:

CKA 真题

2019-12-24
阅读 4 分钟
3.1k
1.列出pod并排序 {代码...} 2.找出pod中的错误日志 {代码...} 3.创建一个pod ,并调度到某个节点上 {代码...} 先导出一份示例yaml出来,记得保存好这份yaml,后面也要用的 {代码...} 4.列出正常节点的个数 {代码...} 5.pod中挂载volume {代码...} 6.提供一个pod,添加init-container ,在container中添加一个空文件,启动...

容器监控实践-Grafana

2019-06-06
阅读 9 分钟
11.7k
Grafana 是一个开源的,可以用于大规模指标数据的可视化项目,甚至还能对指标进行报警。基于友好的 Apache License 2.0 开源协议,目前是prometheus监控展示的首选。优点如下:

容器监控实践—Cortex

2019-05-27
阅读 5 分钟
5.6k
当时调研cortex其实是因为看到了Weave Cloud这个商业产品中的监控模块介绍,weave也叫weave works,官方地址是:[链接],是一个专注于容器微服务的paas平台。

容器监控实践—Dockbix

2019-05-27
阅读 3 分钟
3.2k
Dockbix意为docker+zabbix,即使用zabbix来监控docker容器的插件或者模块,既然有专业的cadvisor、prometheus等容器监控方案,为什么还要用传统的zabbix呢?

容器监控实践—Prometheus存储机制

2019-03-12
阅读 6 分钟
16.5k
Prometheus提供了本地存储,即tsdb时序数据库,本地存储给Prometheus带来了简单高效的使用体验,prometheus2.0以后压缩数据能力也得到了很大的提升。可以在单节点的情况下满足大部分用户的监控需求。

容器监控实践—Prometheus数据可视化

2019-03-12
阅读 2 分钟
3.9k
Prometheus自带了一个web服务,包括一个默认的dashboard,可以使用表达式查询并进行图表可视化,默认服务的地址为:[链接]:9090

容器监控实践—Prometheus部署方案

2019-03-03
阅读 4 分钟
5.6k
运行命令:docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus暴露服务: [链接]:9090/

容器监控实践—PromQL查询解析

2019-03-03
阅读 9 分钟
15.8k
表达式的结果可以在浏览器中显示为图形,也可以显示为表格数据,或者由外部系统通过 HTTP API 调用。通过PromQL用户可以非常方便地查询监控数据,或者利用表达式进行告警配置

容器监控实践—Prometheus的配置与服务发现

2019-03-03
阅读 13 分钟
15.3k
Prometheus的配置可以用命令行参数、或者配置文件,如果是在k8s集群内,一般配置在configmap中(以下均为prometheus2.7版本)

容器监控实践—Prometheus基本架构

2019-03-03
阅读 4 分钟
11.6k
Prometheus从exporter拉取数据,或者间接地通过网关gateway拉取数据(如果在k8s内部署,可以使用服务发现的方式),它默认本地存储抓取的所有数据,并通过一定规则进行清理和整理数据,并把得到的结果存储到新的时间序列中,采集到的数据有两个去向,一个是报警,另一个是可视化。PromQL和其他API可视化地展示收集的数据...

容器监控实践—Prometheus概述

2019-03-03
阅读 1 分钟
3.5k
Prometheus是一套开源的监控、报警、时间序列数据库的组合,起始是由SoundCloud公司开发的。从2016年加入CNCF,2016年6月正式发布1.0版本,2017年底发布了基于全新存储层的2.0版本,能更好地与容器平台、云平台配合,到2018年8月毕业,现在已经成为Kubernetes的官方监控方案,社区活跃,第三方集成非常丰富。

容器监控实践—node-exporter

2019-01-20
阅读 6 分钟
16.6k
Prometheus从2016年加入CNCF,到2018年8月毕业,现在已经成为Kubernetes的官方监控方案,接下来的几篇文章将详细解读Promethues(2.x)

容器监控实践—kube-state-metrics

2019-01-13
阅读 6 分钟
13.6k
概述 已经有了cadvisor、heapster、metric-server,几乎容器运行的所有指标都能拿到,但是下面这种情况却无能为力: 我调度了多少个replicas?现在可用的有几个? 多少个Pod是running/stopped/terminated状态? Pod重启了多少次? 我有多少job在运行中 而这些则是kube-state-metrics提供的内容,它基于client-go开发,轮...

容器监控实践—Custom Metrics

2019-01-13
阅读 5 分钟
6.9k
Core metrics(核心指标):从 Kubelet、cAdvisor 等获取度量数据,再由metrics-server提供给 Dashboard、HPA 控制器等使用。

容器监控实践—Metrics Server

2019-01-13
阅读 3 分钟
14.1k
从 v1.8 开始,资源使用情况的监控可以通过 Metrics API的形式获取,具体的组件为Metrics Server,用来替换之前的heapster,heapster从1.11开始逐渐被废弃。