logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

kubelet驱逐与buffer/cache的计算关系

线上的容器出现pod迁移,查看kubelet日志,发现主机内存存在压力,所以导致kubelet驱逐pod。同时查看主机的内存占用,确实发现主机的可用内存小于预留资源,所以发生pod迁移貌似可以理解。同时也发现系统的buffer/cache占用有点多,虽然知道linux在内存紧缺的时候会回收部分buffer/cache,且之前曾分析过《docker内存监控与压测》一文,对docker容器监控做过分析

#缓存
k8s controller-manager之podGc源码分析

源码基于k8s 1.9 release源码目录结构cmd/kube-controller-manager/app/core.go:237// PodGc Controller的启动代码,包含很多其它controller的启动/pkg/controller/podgc.├── BUILD├── OWNERS├── doc.go├── gc_controller....

#k8s
理解kubernetes’ tools/cache包: part 2

在上一篇文章中,我们研究了k8s controller的一些基础,并开始研究tools/cache包背后的概念,特别是ListerWatcher,Store和Reflector。在这篇文章中,我们健康到Controller的实际概念。我想说,我写过”Kubernetes controller”,不是”Kubernetes Controller”或”Kubernetes controller”“..

#k8s
k8s controller-manager之daemonset源码分析

源码基于k8s 1.9 release源码目录结构cmd/kube-controller-manager/app/core.go// service Controller的启动代码,包含很多其它controller的启动/pkg/controller/daemon.├── BUILD├── doc.go├── daemon_controller.go // dae...

#k8s
理解kubernetes tools/cache包: part 1

想知道如何编写k8s controller(例如我的案例),在java中,我们必须知道时间的真实来源。如果k8s可以被看作是一个分布式消息传递系统,你想要获得的是消息的specifications状态,那么“消息”来自何处呢?在任意时刻,kubectl创建应用或者是删除某些内容,都需要发布消息。这些消息包括kubernetes想要创建,更新或删除的资源。这些消息由3部分组成:kind,表示消息..

#k8s
通过prometheus实现k8s hpa自定义指标 (三)

在本系列文章的上一节通过prometheus实现k8s hpa自定义指标 (二),我们从开发者角度理解k8s hpa工作的流程。这节我们将通过一个最基础的custom metrics API server介绍开发一个自定义metrics-apiserver需要完成哪些方面的工作,作为后继分析prometheus-adapter的基础。开发Custom Metrics API Server适配器..

#k8s#prometheus
k8s controller-manager之endpoint源码分析

基于k8s release-1.9源码目录结构cmd/kube-controller-manager/app/core.go// Endpoint Controller的启动代码/pkg/controller/endpoint.├── BUILD├── OWNERS├── doc.go├── endpoints_controller.go// endp...

使用nginx做A/B测试

通常情况下,我们在开发新版本的代码,并将它发布到集群中,我们会将现网的一小部分用户的访问引流到新版本,用来验证产品的体验以及发现bug第二个。通常我们会做A/B测试,A/B测试能够让我们深入了解用户的行为。由于我的集群是k8s,我使用nginx作为我的ingress controller实现,这里我们主要谈怎么使用nginx实现这个功能。nginx提供了“nginx_http_split_clie

kubelet sandbox创建与calico cni网络配置流程 (二)

上一篇文章分析了kubelet创建pod时首先需要创建一个sandbox容器,该容器保证了k8s的pod中多个容器使用同一个网络命名空间,每个容器能够像访问本地端口一样访问对端容器端口。虽然sandbox的创建流程和运行时参数配置的代码我们都一一分析过了,实际的容器网络也是调用cni插件配置,但是cni插件是怎么工作的呢,这一节我们着重从cni(以caliclo为例)插件一端分析网络配置过程。..

通过prometheus实现k8s hpa自定义指标 (二)

上一篇通过prometheus实现k8s自定义hpa (一),部署了prometheus和k8s-prometheus-adapter,实现基于prometheus的hpa自定义指标扩缩容。通过安装组件和演示应用podinfo,最后再配置podinfo的hpa yaml文件,再配合我们的压测程序就能实现pod自动扩缩容。虽然k8s的hpa controller能够实现我们的预期,但是在跟着教程验证

#k8s#prometheus
    共 21 条
  • 1
  • 2
  • 3
  • 请选择