「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」[1]


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】

TheMoeLove

参考资料

[1]

k8s生态: https://zhuanlan.zhihu.com/container

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐