「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」。
runc v1.0 正式发布
从 2016 年 6 月发布 v1.0-rc1 版本开始,至今已整整 5 年时间,runc 历经多个 rc 版本终于发布了 v1.0 版本。整个过程及其思考请参考我之前的文章 《开源项目的 5 年长跑,runc v1.0 终于正式发布!》 。这里我们来看看 v1.0 新版本中带来了哪些值得注意的变更。
破化性变更
- #2999 删除了
libcontainer/configs.Device*
标识,请使用libcontainer/devices.*
来替代(是自 v1.0-rc94 开始废弃的); - #2999 删除了
libcontainer/system.RunningInUserNS
函数,请使用libcontainer/userns.RunningInUserNS
函数代替(同样是自 v1.0-rc94 开始废弃的);
改进
- #2994 在
runc update
的时候设置了SkipDevices
,所以在此期间我们就不会更新 cgroups 了; - #3010 cgroup1 相关的 blkio 支持 BFQ weight 了,这里需要注意的是 2018 年 CFQ 已经从 Linux 删除,22019 年发布的 RHEL 8.0 和 Ubuntu 19.01 等发行版中也均使用 BFQ 替代了 CFQ 。关于 Linux 内核的 BFQ 和 CFQ 这里就不再展开了,只需要知道 BFQ 相比 CFQ 做到了低延迟和吞吐即可;
更多关于此版本的变更,请参考其 ReleaseNote ,现在 Docker/containerd 等项目已将 runc 依赖升级到了 v1.0 ,K8S 项目尚未合并。
Prometheus v2.28 正式发布
Prometheus v2.28 在使用体验上有了重大提升,我们来看看有哪些值得关注的内容:
PromQL 编辑器默认将会开启, 这个编辑器我在之前的 k8s生态中介绍过了,这里贴个图,看看它的自动补齐, 除此之外还有高亮和 linting 的能力。
还有 metrics 的浏览窗口,为什么会再次提这个功能呢?因为我觉得它很实用。在之前的版本,我要么是需要提前记住有哪些 metrics,要么就是直接去 curl 请求下 metrics 接口,看看有哪些 metrics 可用。现在的话,直接浏览即可。
可以展示 trace exemplar 了,效果如下:
这个功能还是蛮方便的,有空了我可以详细介绍下。(flag+1)
新增了一个基于 HTTP 的 service discovery ,这个功能比较实用,不再要求非要特定于使用某个组件,只要 HTTP 接口返回的内容符合其要求的格式,即可注册到 Prometheus 中。
在 Kubernetes SD 中,增加了一个 ingress class name 的字段,比如你在使用 Apache APISIX Ingress controller 的时候,通过新版的 Prometheus 采集,就会看到一个
{__meta_kubernetes_ingress_class_name: apisix}
的字段了;
更多关于此版本的变更,请查看其 ReleaseNote
Kubernetes v1.22.0-beta.0 发布
Kubernetes v1.22 正在持续的进行迭代和发布,我们来看看 v1.22.0-beta.0 中有哪些值得关注的变更吧!
废弃
--hard-pod-affinity-symmetric-weight
和--scheduler-name
已经从 kube-scheduler 中移除(自 v1.18 废弃);
API 变更
- #99597 kube-scheduler component config 现在开始用 v1beta2 API ,这意味着三个插件被废弃,分别是 NodeLabel, ServiceAffinity, NodePreferAvoidPods;
- #102834 Network Policy EndPort 已达到 beta 级别,并将默认开启使用;
特性
- #101316 为 StatefulSet 增加了一个 minReadySeconds 参数,通过此参数可以设置 sts 的最小就绪时间,不会过早的在 Pod 就绪前就把流量引入;
- #102722 为 kubeadm 在
kubeadm init
增加了--dry-run
的选项; - #102466 将 kubeadm 部署用的 CoreDNS 升级到了 v1.8.4 同时也授予了其
EndpointSlice
的 list 和 watch 权限;
bugfix
102840 更改了 Graceful Node Shutdown Pod 的 Reason 和 Message,变更如下:
- nodeShutdownReason = "Shutdown" - nodeShutdownMessage = "Node is shutting, evicting pods" - nodeShutdownNotAdmitMessage = "Node is in progress of shutting down, not admitting any new pods" + nodeShutdownReason = "Terminated" + nodeShutdownMessage = "Pod was terminated in response to imminent node shutdown." + nodeShutdownNotAdmittedReason = "NodeShutdown" + nodeShutdownNotAdmittedMessage = "Pod was rejected as the node is shutting down."
更多关于此版本的变更请参考其 ReleaseNote
欢迎订阅我的文章公众号【MoeLove】