摘要: alertmanager是与prometheus相关的组件,用于为监控数据配置告警指标,并发送给告警人。 在k8s中运行的alertmanager,其配置文件为容器中的/etc/alertmanager/config/alertmanager.yaml。然而这个文件为只读文件,无法在容器里直接修改, 阅读全文
posted @ 2021-04-13 14:29 右威卫大将军 阅读(1283) 评论(0) 推荐(0) 编辑
摘要: 有的时候,k8s中挂载了rbd存储的pod重启后会持续处于ContainerCreating的状态,describe后发现有MountVolume.Setup failed以及Unable to mount volumes for pod xxx的错误描述。 这种情况看上去是rbd设备挂载到pod上 阅读全文
posted @ 2020-09-17 10:58 右威卫大将军 阅读(17960) 评论(0) 推荐(0) 编辑
摘要: k8s集群的证书包括master节点相关证书(apiserver、etcd、proxy)和node节点相关证书(kubelet),默认的有效期都是1年。两类证书的更新方式有所不同。 一、更新master节点相关证书 1.首先,在master节点上执行: openssl x509 -noout -da 阅读全文
posted @ 2020-06-11 19:43 右威卫大将军 阅读(5961) 评论(0) 推荐(0) 编辑
摘要: 前提:k8s集群中已正确部署了prometheus和alertmanager。 在prometheus中已经预先定义了很多告警项。当然,我们也可以自定义告警内容。本文以自定义容器的内存和CPU用量告警为例。 一、创建Prometheusrule Prometheusrule是Prometheus在部 阅读全文
posted @ 2020-05-06 15:19 右威卫大将军 阅读(1191) 评论(0) 推荐(0) 编辑
摘要: 前提:适用于通过prometheus operator在k8s集群中部署的prometheus。 K8s集群内的Prometheus抓取监测数据是通过servicemonitor这个crd来完成的。每个servicemonitor对应Prometheus中的一个target。每个servicemon 阅读全文
posted @ 2020-04-07 18:17 右威卫大将军 阅读(3462) 评论(0) 推荐(1) 编辑
摘要: 最近公司开发的一个小程序刚刚上线,之前部署在公有云上,后来想要向私有云迁移。结果迁移后,发现苹果手机和微信PC端都可以正常访问,唯独安卓手机不能。而这个问题在公有云上却没有发生。 这个问题,首先想到的是公司的网络策略是否限制了部分ip的访问;其次想到公有云和私有云部署的版本是否有差异。兜兜转转调试了 阅读全文
posted @ 2020-04-01 18:34 右威卫大将军 阅读(629) 评论(0) 推荐(0) 编辑
摘要: k8s集群运行久了,难免会产生大量无用的镜像和容器文件,因此需要经常进行清理。 一般而言,docker容器默认的本地数据存储路径位于/var/lib/docker路径下,通过df -h /var/lib/docker命令,可以查看其占用情况。如果高于80%,则意味着需要清理了。 一、清理命令 与清理 阅读全文
posted @ 2020-03-12 20:46 右威卫大将军 阅读(1315) 评论(0) 推荐(0) 编辑
摘要: 本篇文章我们从ServiceConfig的创建和运行开始。 一、ServiceConfig的创建 ServiceConfig是kube-proxy中用于监听service变化的组件,其本质就是informer,进入NewServiceConfig方法可知。 方法为serviceInformer添加了 阅读全文
posted @ 2019-06-17 11:15 右威卫大将军 阅读(709) 评论(0) 推荐(0) 编辑
摘要: kube-proxy是kubernetes中用于实现service与pod之间流量转发的组件。当我们向一个service发送数据包时,实际的接收者是service代理的后端pod,这一功能就是由kube-proxy实现的。 与其它组件一样,kube-proxy的入口函数位于cmd中,具体位置在cmd 阅读全文
posted @ 2019-06-13 15:41 右威卫大将军 阅读(1030) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章我们发现,kubelet在运行时会通过五种渠道获得pod状态变化的信息,并层层调用,直到调用到kubelet.go里的syncPod方法。 一、kubelet.go的syncPod方法 syncPod方法非常重要,存放了kubelet创建一个pod的基本逻辑。我们来仔细看一下: 可以看到, 阅读全文
posted @ 2019-05-23 14:00 右威卫大将军 阅读(1001) 评论(0) 推荐(0) 编辑