K8s Pod 状态何时会为 Failed

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

Kubelet 介绍

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

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

K8s APIServer Status 接口问题记录

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

阅读全文

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的小教程就好。

阅读全文

Git问题Everything up-to-date解决

今天push代码的时候遇到了一个小问题,提示『Everything up-to-date』
,导致不能push代码,说这里解决了记下小记。

阅读全文

利用RAC一句话实现上拉刷新下拉刷新

最近在研究上拉刷新下拉刷新,有点小心得和大家分享下。

首先我是先在网上搜博客看,发现要不就是用原生UIRefreshControl要不就是第三方库的教程,这都不是我想要的(好的开源库推荐MJRefresh)。

于是我开始看大神们的源代码,了解了下原理。

阅读全文