Goland 查引用时过滤 test 文件

在使用 Goland 看代码的过程中,经常使用查看代码引用点的功能,但是在查阅大型项目源码时,引用大部分为 test 文件的,导致看代码逻辑效率很低。

阅读全文

K8s Pod 何时会被删除?

最近在梳理 Kubelet 的源码实现,从源码入手整理了下 Kubelet 以及 kube-controller 删除 Pod 的场景。

本文K8s版本参考v1.20.6

阅读全文

K8s Pod 状态何时会为 Failed

最近在梳理 Kubelet 的源码实现,整理了下 Pod 状态转换的逻辑。

Kubelet 介绍

Kubelet 主要负责 Pod 状态的维护和更新,其中触发同步事件的来源有三种

  • api:指 watch apiserver 获得的更新
  • file:static pod 场景
  • http:static pod 场景
阅读全文

Client-go 的 UpdateStatus 接口你用对了吗?

最近发现一个问题,发现使用 client-go 并行调用 UpdateStatus 接口与 PATCH 更新 annotation 会出现覆盖写的问题,这与之前的理解不一致,这里做一个记录。

先说结论:client-go 的 UpdateStatus 会 PUT 更新 Pod 的 Status 字段与 metadata 字段。

阅读全文

K8s 集群证书问题记录

最近在环境中部署了一个 Virtual-Kubelet,由于它与 APIServer 的证书交互出了一些问题,导致了一些功能不可用,故去了解了下 K8s 集群的所有证书与关系,做一个梳理。

阅读全文

如何看到 Pod 的失败原因

在生产环境中,如果没有配置合适的告警,可能会发现某个 Pod 有 restartCount,但是由于已经重启了超过一小时,没有相关的 Events,导致无法看到响应的 Pod 重启原因。想要捕获每一次 Pod 退出异常,K8s 为我们提供了 Pod.spec.container[0].terminationMessagePath field ,来记录 Pod 异常退出时的信息。

阅读全文

Kubernetes 集群一致性测试工具 Sonobuoy 介绍

Sonobuoy 是一种诊断工具,通过以可访问且无损的方式运行一组插件(包括Kubernetes一致性测试),可以更轻松地了解Kubernetes集群的状态。 这是一种可定制,可扩展且与群集无关的方式,可以生成有关群集的清晰,有用的报告。

阅读全文

摆脱第三方库系列(三)- 自己写顶部滚动标签栏

前言

好久没写博客了,最近自己参考了一些源码写了一个标签页,并把他传到了CocoaPods上。大家可以集成到项目中进行使用,也可以看看源码自己写一个更好的,也希望如果有什么意见可以告诉我,我会进行完善。

阅读全文

用AFNetworking3.0封装网络请求

前言

由于之前一直是用别人封装好的网络请求,一来版本太旧,二来觉得太臃肿很多功能代码不知道是干嘛的,所以想尝试自己封装一个网络请求,可能比较简单比较入门,很多问题肯定考虑不周,而且网上关于AFNetworking3.0库的教程也不多,所以大家当成3.0的小教程就好。

阅读全文