乐趣区

K8S-生态周报-2019070120190707

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

Kubernetes v1.16 发布周期开始

随着前段时间 Kubernetes v1.15 的发布,v1.16 的发布周期开始了。本次的发布周期一如往常,本月底增强功能冻结,下月底代码冻结,9 月初完善文档,计划在 9 月中发布 v1.16 版本。

其实按这个节奏看得话,大家如果需要维护生产中的 Kubernetes 集群的话,还是尽快测试验证并完成升级,以免所用版本 EOL,带来一些其他的问题。

Knative Serving v0.7.x 发布

本周 Knative Serving 发布了 v0.7.1 版本,Knative 近期的开发还是比较活跃的。

需要注意的是若使用 v0.7.x 版本中新增的 serving.knative.dev/v1beta1 API 的话,则需要 Kubernetes v1.14 版本以上。具体原因请参考 #4533

Non-root 容器:在这个版本中所有发布的容器均以非 root 用户运行,这使得我们可以使用更严格的 PSP。

当然此版本中也包含一些破坏性变更,比如 status 字段废弃。

关于此版本更多的细节请参考 ReleaseNote

Debian 10 buster 正式发布

Debian 10 正式发布了,其实按一般的角度来看,Linux 的一个发行版发布不会出现在 K8S 生态周报中的。

但这里有个需要注意的点,对于使用此版本部署 Kubernetes 时,需要注意一下。此版本中使用的 systemd 版本是 241.5 而这个版本中有个对于使用 Kubernetes 而言值得注意的点。

这个版本的 systemd 可能会破坏 LXD 容器的网络,表现在可能无法生成 MAC 地址上。(我猜测现在关注 LXD 的用户没有那么多了,这里我也就不过多解释了。)当然这个问题同样也可能会出现在使用 Docker/runc/cri-o 等容器运行时的场景中。

最后,还是庆祝一下 Debian 10 的正式发布,此版本内核也已经升级到了 4.19。并且这个版本也有很多的改善和升级。具体内容可参考其 ReleaseNote

NGINX Ingress Controller 1.5.1 发布

NGINX Ingress Controller 是由 NGINX 社区开发的 Ingress Controller 相比于 Kubernetes 的 Nginx Ingress Controller 而言主要区别如下:

Aspect or Feature kubernetes/ingress-nginx nginxinc/kubernetes-ingress with NGINX nginxinc/kubernetes-ingress with NGINX Plus
Fundamental
Authors Kubernetes community NGINX Inc and community NGINX Inc and community
NGINX version Custom NGINX build that includes several third-party modules NGINX official mainline build NGINX Plus
Commercial support N/A N/A Included
Load balancing configuration via the Ingress resource
Merging Ingress rules with the same host Supported Supported via Mergeable Ingresses Supported via Mergeable Ingresses
HTTP load balancing extensions – Annotations See the supported annotations See the supported annotations See the supported annotations
HTTP load balancing extensions — ConfigMap See the supported ConfigMap keys See the supported ConfigMap keys See the supported ConfigMap keys
TCP/UDP Supported via a ConfigMap Supported via a ConfigMap with native NGINX configuration Supported via a ConfigMap with native NGINX configuration
Websocket Supported Supported via an annotation Supported via an annotation
TCP SSL Passthrough Supported via a ConfigMap Not supported Not supported
JWT validation Not supported Not supported Supported
Session persistence Supported via a third-party module Not supported Supported
Canary testing (by header, cookie, weight) Supported via annotations Supported via custom resources Supported via custom resources
Configuration templates *1 See the template See the templates See the templates
Load balancing configuration via Custom Resources
HTTP load balancing Not supported See VirtualServer and VirtualServerRoute resources. See VirtualServer and VirtualServerRoute resources.
Deployment
Command-line arguments *2 See the arguments See the arguments See the arguments
TLS certificate and key for the default server Required as a command-line argument/ auto-generated Required as a command-line argument Required as a command-line argument
Helm chart Supported Supported Supported
Operational
Reporting the IP address(es) of the Ingress controller into Ingress resources Supported Supported Supported
Extended Status Supported via a third-party module Not supported Supported
Prometheus Integration Supported Supported Supported
Dynamic reconfiguration of endpoints (no configuration reloading) Supported with a third-party Lua module Not supported Supported

内容来源:NGINX Ingress Controller 文档

本次发布的 1.5.1 将 NGINX 版本更新到了 1.17.1,升级时可直接使用 nginx/nginx-ingress:1.5.1nginx/nginx-ingress:1.5.1-alpine 也可直接使用 0.3.1 的 Helm Chart

更多信息请参考 ReleaseNote

Kubernetes 上游进展

来说一点上游开发的进展吧

  • 新增了 Runtimeclass 的准入控制,通过这个新的特性,我们可以计算和 Pod 的 sanbox 绑定的资源了, 参见 78484
  • 新增了对在每个节点上可部署的每个卷类型的数量的限制, 参见 77595
  • kubeadm 修复了一个 reset 命令时候使用错误的函数, 参见 79326

可以通过下面二维码订阅我的文章公众号【MoeLove】

退出移动版