Logo

Kubelet中的CRI容器运行时接口(二)

重点containerRuntime 需要实现3类接口管理容器的接口管理镜像的接口Streaming API 用于客户端与容器进行交互type KubeGenericRuntime interface {kubecontainer.Runtimekubecontainer.StreamingRunt...

使用sync.Cond时从队列中取数据为什么要使用for?

前言相信熟悉infomer的同学应该清楚,在informer中使用DeltaFIFO先进先出队列来消费refactor获取到的对象,不知道大家看到这里是否跟我有一样的疑问,就是在出队判断队列中是否有数据时,为什么使用for,而不是使用if,其实这里关系到一个并发编程问题,下面我会详细讲一下这个点fu...

Kubelet中的CRI容器运行时接口

kubelet架构图两种容器运行时的实现一个是内置的 dockershim,实现了 docker 容器引擎的支持一个就是外部的容器运行时,用来支持 runc、containerd、gvisor 等外部容器运行时CRI接口分类管理镜像的 ImageService 提供了 5 个接口管理容器的Runti...

kubernetes如何实现指数级退避?

经常阅读k8s代码的同学应该清楚,里面大量使用了wait这个包,本文将着重讲解wait包下的...

Kubelet containerManager

containerManager的作用containerManager 管理容器的各种资源,比如 CGroups、QoS、cpuset、device 等内置了很多资源管理器,总结起来就是其他manager的管家D:\go_path\src\github.com\kubernetes\kubernet...

Kubelet-Pod Lifecycle Event Generator

介绍PLEG 全称叫 Pod Lifecycle Event Generator,即 Pod 生命周期事件生成器pleg通过定时的执行relist方法调用容器运行时获取pod信息遍历pod中的容器对比缓存中的状态,生成状态变化事件交给syncloop事件循环处理整体工作流程什么是 PLEGPLEG ...

Loki + Promtail + Grafana完成分布式日志收集

本文将介绍如何使用Loki + Promtail + Grafana完成日志的收集、展示、日志报警等功能,因为我也是刚接触两个月的时间,文章会逐步完善,通过这套体系我们完成了对多云环境下的日志收集,日志报警与日志的统一展示首先,为什么不适用ELK?现有的很多日志采集的方案都是采用全文检索对日志进行索...

基于Loki实现日志报警

基于Loki与Grafana实现日志报警...