K8S首爆严重安全漏洞,严重性9.8分
Rancher Labs联合创始人及首席架构师 Darren Shepherd,同时也是Docker生态核心组织Docker治理委员会(DGAB)的全球仅有的四位个人顶级贡献者之一。
更糟糕的是,在Kubernetes的默认配置中,允许所有用户(经过身份验证和未经身份验证的用户)执行允许此升级的发现API调用。也就是说,任何了解这个漏洞的人都可以掌控你的Kubernetes集群。
最后的痛苦之处在于,对于用户而言,没有简单的方法来检测此漏洞是否已被使用。由于未经授权的请求是通过已建立的连接进行的,因此它们不会出现在Kubernetes API服务器审核日志或服务器日志中。请求确实会出现在kubelet或聚合的API服务器日志中,但是却无法与正确通过Kubernetes API服务器授权和代理的请求区分开来。
现在,Kubernetes已经发布了修补版本v1.10.11、v1.11.5、v1.12.3和v1.13.0-rc.1。如果您仍在使用Kubernetes v1.0.x至Kubernetes v1.9.x版本,请即刻停止并升级到修补版本。
如果由于某种原因你无法升级,你必须暂停使用聚合的API服务器,并从不应具有对kubelet API的完全访问权限的用户中删除pod exec / attach / portforward权限(不过也有用户认为这种解决方法的糟糕程度和这个漏洞问题本身不相上下了)。
Kubernetes 1.13发布,三大功能GA
昨晚差不多同一时间,Kubernetes最新版本1.13亦正式发布,这是Kubernetes在2018年的第四次也是最后一次大版本更新。
距离上一版本
Kubernetes 1.12发布
仅10周时间,1.13是今年Kubernetes更新最快的版本。
Kubernetes 1.13关注的重点依然是Kubernetes的稳定性和可扩展性,此版本中的有三个主要功能正式成为GA状态,包括:使用kubeadm简化集群管理、容器存储接口(CSI)、以及使用CoreDNS作为默认DNS。
使用kubeadm简化K8S集群管理,该功能已GA
大多数直接使用Kubernetes的用户在某些时候都会直接上手使用kubeadm。它是管理集群从创建到配置再到升级这一生命周期的重要工具。现在,kubeadm正式GA。kubeadm可以处理现有硬件上的生产集群的引导(bootstrapping),并以最佳实践方式配置核心Kubernetes组件,以便为新节点提供安全而简单的连接流程并能够轻松升级。该GA版本中值得一提的是,现在已经完成的高级特性,特别是可拔性和可配置性。kubeadm的目标是成为管理员和自动化的工具箱以及更高级的系统。这一版本在这个方向上已经迈进了一大步。
容器存储接口(CSI)现已GA
容器存储接口(CSI)在作为alpha引入v1.9以及在v1.10作为beta引入之后,现已正式GA。使用CSI,Kubernetes volume变得真正可扩展。这让第三方存储提供商可以编写与Kubernetes互操作而无需触及核心代码的插件。Specification本身也达到了1.0的状态。随着CSI逐渐稳定,插件作者可以按照自己的节奏开发核心存储插件。同时,可以在CSI文档中找到样本和生产驱动的列表:
https://kubernetes-csi.github.io/docs/Drivers.html
CoreDNS成为Kubernetes的默认DNS服务器
在Kubernetes1.11中, CoreDNS作为基于DNS的服务发现已经GA。在1.13中,CoreDNS将替换kube-dns,成为Kubernetes的默认DNS服务器。CoreDNS是一个通用的、权威的DNS服务器,提供与Kubernetes向后兼容但可扩展的集成。CoreDNS比以前的DNS服务器具有更少的移动部件,因为它是单个可执行文件和单个进程,并通过创建自定义DNS条目来支持灵活的用例。它也是用Go语言编写,具有内存安全性。
CoreDNS现在是Kubernetes 1.13+推荐的DNS解决方案。该项目已将常用测试基础架构切换为默认使用CoreDNS,官方也建议用户进行切换。对KubeDNS的支持和维护将至少再延续一个版本,但现在是时候开始规划迁移了。许多OSS安装工具已经进行了切换,包括1.11中的Kubeadm。如果您使用的是托管解决方案,请与您的供应商确认了解这将如何影响到您。
其他功能更新
对第三方设备监控插件的支持:该功能目前被引入为alpha功能(https://github.com/kubernetes/enhancements/issues/606)。
Kubelet设备插件注册:该功能将成为stable状态。这创建了一个通用的Kubelet插件发现模型,可以由不同类型的节点级插件(例如设备插件、CSI和CNI)用于与Kubelet建立通信通道。
拓扑感知卷调度:该功能现成为stable状态。这使调度程序能够识别Pod的卷的拓扑约束,例如区域或节点。
APIServer DryRun:该功能即将升级为beta版。这将“应用”和声明性对象管理从移动kubectl到apiserver,以便修复当前无法修复的许多现有错误。
Kubectl Diff:即将升级为beta版。这允许用户运行kubectl命令以查看本地声明的对象配置与活动对象的当前状态之间的差异。
使用持久性卷源的原始块设备:正逐渐升级为beta版。这使得原始块设备(非网络设备)可通过持久卷源进行使用。
用户现可在GitHub上下载使用Kubernetes的最新版本1.13:
https://github.com/kubernetes/kubernetes/releases/tag/v1.13.0
更多参考:
https://kubernetes.io/blog/2018/12/03/kubernetes-1-13-release-announcement/
https://www.zdnet.com/article/kubernetes-first-major-security-hole-discovered/#ftag=RSSbaffb68
https://www.theregister.co.uk/2018/12/03/kubernetes_flaw_cve_2018_1002105/
领取专属 10元无门槛券
私享最新 技术干货