7 二二向箔

尚未进行身份认证

暂无相关简介

等级
TA的排名 15w+

kubelet 源码分析(一)

概述k8s版本: 1.13.10代码路径: https://github.com/kubernetes/kubernetes/tree/v1.12.0/cmd/kubelet代码走读的路线是:从kubernetes/cmd/kubelet开始,这里包括了kubelet的参数解析、初始化、依赖组件等,然后到达kubernetes/pkg/kubelet模块,开始kubelet的核心逻辑本文...

2020-01-16 19:47:48

kubelet 先导篇

一. 概述本文是kubelet源码阅读的先导片,先了解kubelet的主要配置和功能以及一些注意事项,后面走读源码的时候才会更加顺畅,不然一堆 config 的初始化和chan处理,不知道支持哪些新特性,啥场景会用到,看了也没啥意思。二. 配置方式2.1 flag 模式k8s 迭代速度很快,几个月一个大版本,kubelet 的启动参数也在不断变化,一切配置以官方文档为准,或者拿二进制直接...

2020-01-16 19:42:37

基于 etcd 实现分布式锁

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

2020-01-16 19:37:42

从kubectl top看K8S监控

一. 前言kubectl top 可以很方便地查看node、pod的实时资源使用情况:CPU、内存。可以使用该命令观察应用的负载情况。原理比较简单,这篇文章会介绍其数据链路和实现原理,最后会解释常见的一些问题:kubectl top 为什么会报错?kubectl top node 怎么计算,和节点上直接 top 有什么区别?kubectl top pod 怎么计算,包含 pause 吗...

2020-01-05 16:43:16

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

文章目录advisor 指标分析CPU利用率饱和率错误数内存利用率饱和度错误数磁盘利用率饱和度错误数网络利用率饱和度错误数node-exporter 指标分析四个黄金信号USE 方法RED 方法CPU利用率饱和度错误数内存使用率饱和度错误数磁盘使用率饱和度错误数网络使用率饱和度错误数Apiserver 指标分析概述请求速率和延迟队列情况ETCD 的指标程序指标requestresponseaudi...

2019-12-25 21:56:21

K8S 中的健康检查机制

概述健康检查(Health Check)用于检测您的应用实例是否正常工作,是保障业务可用性的一种传统机制,一般用于负载均衡下的业务,如果实例的状态不符合预期,将会把该实例“摘除”,不承担业务流量。Kubernetes中的健康检查使用存活性探针(liveness probes)和就绪性探针(readiness probes)来实现,service即为负载均衡,k8s保证 service 后面的...

2019-12-25 21:55:16

k8s节点资源预留与 pod 驱逐

为什么K8S 的节点上的资源会被 pod 和系统进程所使用,如果默认什么都不配置,那么节点上的全部资源都是可以分配给pod使用的,系统进程本身没有保障,这样做很危险:集群雪崩:如果节点上调度了大量pod,且pod没有合理的limit限制,节点资源将被耗尽,sshd、kubelet等进程OOM,节点变成 not ready状态,pod重新继续调度到其他节点,新节点也被打挂,引起集群雪崩。系...

2019-12-25 21:49:08

CKA 真题

1.列出pod并排序kubectl get pod --sort-by .metadata.name题目一般都是按名字排序2.找出pod中的错误日志kubectl logs heapster-798fcd9949-lk9rc | grep error > xx.txt要求是把错误内容输出到某个文件中,可以粘贴,也可以直接重定向文件3.创建一个pod ,并调度到...

2019-12-24 09:45:13

容器监控实践-Grafana

概述Grafana 是一个开源的,可以用于大规模指标数据的可视化项目,甚至还能对指标进行报警。基于友好的 Apache License 2.0 开源协议,目前是prometheus监控展示的首选。优点如下:1.使用:配置方便:支持Dashboard、Panel、Row等组合,且支持折线图、柱状图等多种图例图表漂亮:可以选择暗黑系或纯白系,你也可以自己定义颜色模板很多:grafana模板...

2019-06-06 18:16:06

容器监控实践—Cortex

一.概述cortex:一个支持多租户、水平扩展的prometheus服务。当时调研cortex其实是因为看到了Weave Cloud这个商业产品中的监控模块介绍,weave也叫weave works,官方地址是:https://cloud.weave.works,是一个专注于容器微服务的paas平台。WeaveCloud在监控模块最大化利用了Prometheus,并在其基础上添加了很多组件,...

2019-05-27 20:43:10

容器监控实践—Dockbix

一.概述Dockbix意为docker+zabbix,即使用zabbix来监控docker容器的插件或者模块,既然有专业的cadvisor、prometheus等容器监控方案,为什么还要用传统的zabbix呢?在docker刚出现时,还没有专业的容器监控方案公司已有zabbix的成熟实践,想直接集成到zabbix中(虽然不太优雅)使用zabbix来监控docker有几种方案,比如:...

2019-05-27 20:42:35

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

概述Prometheus提供了本地存储,即tsdb时序数据库,本地存储给Prometheus带来了简单高效的使用体验,prometheus2.0以后压缩数据能力也得到了很大的提升。可以在单节点的情况下满足大部分用户的监控需求。但本地存储也限制了Prometheus的可扩展性,带来了数据持久化等一系列的问题。为了解决单节点存储的限制,prometheus没有自己实现集群存储,而是提供了远程读写的...

2019-03-12 20:54:19

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

一. 概述Prometheus自带了一个web服务,包括一个默认的dashboard,可以使用表达式查询并进行图表可视化,默认服务的地址为:http://prometheus_ip:9090如下图:自带的web展示一般只用于表达式快速输入或者临时调试,因为默认服务没有鉴权,且图表表达能力有限,因此不会作为线上可视化方案,正式的监控数据可视化一般使用Grafana来配套prometheus...

2019-03-12 20:53:36

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

一. 概述Prometheus除了存储数据外,还提供了一种强大的功能表达式语言 PromQL,允许用户实时选择和汇聚时间序列数据。表达式的结果可以在浏览器中显示为图形,也可以显示为表格数据,或者由外部系统通过 HTTP API 调用。通过PromQL用户可以非常方便地查询监控数据,或者利用表达式进行告警配置如:k8s中的node在线率:sum(kube_node_status_conditi...

2019-03-03 20:36:22

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

本文将分析Prometheus的常见配置与服务发现,分为概述、配置详解、服务发现、常见场景四个部分进行讲解。一. 概述Prometheus的配置可以用命令行参数、或者配置文件,如果是在k8s集群内,一般配置在configmap中(以下均为prometheus2.7版本)查看可用的命令行参数,可以执行 ./prometheus -h也可以指定对应的配置文件,参数:–config.file ...

2019-03-03 20:34:47

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

一.单独部署二进制安装各版本下载地址:https://prometheus.io/download/Docker运行运行命令:docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus暴露服务: http://localhost:9090/二.在K8S中部署如果在Kubernetes中部署P...

2019-03-03 20:33:56

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

系统架构图1.x版本的Prometheus的架构图为:目前Prometheus版本为2.7,架构图为:Prometheus从exporter拉取数据,或者间接地通过网关gateway拉取数据(如果在k8s内部署,可以使用服务发现的方式),它默认本地存储抓取的所有数据,并通过一定规则进行清理和整理数据,并把得到的结果存储到新的时间序列中,采集到的数据有两个去向,一个是报警,另一个是可视化。...

2019-03-03 20:32:19

容器监控实践—Prometheus概述

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

2019-03-03 20:30:09

容器监控实践—node-exporter

概述Prometheus从2016年加入CNCF,到2018年8月毕业,现在已经成为Kubernetes的官方监控方案,接下来的几篇文章将详细解读Promethues(2.x)Prometheus可以从Kubernetes集群的各个组件中采集数据,比如kubelet中自带的cadvisor,api-server等,而node-export就是其中一种来源Exporter是Prometheus...

2019-01-20 21:27:38

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

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

2019-01-13 22:43:27

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。