K8S 生态周报| 别慌,DockerHub 不会清退开源组织和开源项目

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

大家好,我是张晋涛。

DockerHub 将停止个人免费版 Team 的功能

想必很多人都用过 DockerHub,Docker 刚面世的时候,不仅仅提供了资源隔离的能力,还可以通过 DockerHub 进行镜像的构建和分发。 这也是后来 Docker 能快速流行的原因之一。

目前 DockerHub 仍然是全世界最大,使用最为广泛的容器镜像仓库,并且也提供了非常丰富的能力。

在 2019 年 Docker Inc. 将其企业服务出售给 Mirantis 后,Docker Inc. 也在大力发展旗下的两个主要产品: DockerHub 和 DockerDesktop。 通过一系列的措施和改进后,也成功的通过这些产品和服务让 Docker Inc. 重新回到大众视野。

比如:

然后时间就来到了今年,Docker Inc. 宣布要停止个人免费版 Team 的功能。 Docker Inc. 提供了多种订阅计划,以满足不同用户的需求和预算。其中,Docker 免费版 Team 订阅计划是一个遗留的计划,它允许用户免费创建组织并访问私有仓库。

Docker Inc. 对这个计划的重大改变,引起了用户和开源社区的关注和不满。

在本文中,我将解释 Docker Inc. 为什么要废弃这个计划,以及这对用户和开源社区有什么影响。

Docker 为什么要废弃免费团队订阅计划?

根据 Docker Inc. 的官方公告,他们在 2023 年 3 月给所有属于免费团队组织的账户发送了电子邮件,通知他们如果不在 2023 年 4 月 13 日之前升级到其他支持的免费或付费的服务计划,他们将失去一些付费功能,比如私有仓库和无限制的协作者,并且他们的组织数据将被删除。

这个改变影响了不到 2% 的 Docker 用户,并且不影响其他服务计划,比如 Docker Personal、Docker Pro、Docker Team 或者 Docker Business。它也不影响 Docker Hub 上的公共镜像,除非它们的维护者决定删除它们。

那么,Docker 为什么要做出这样一个决定呢?根据 Docker 的首席营销官 Tim Anglade 的道歉信,主要有以下几个原因:

总结来说,就是 这个过时的免费版团队计划提供的功能和特性太多了,不利于 Docker Inc. 继续推进其现有的产品和定价策略, 而且付费用户也会提出意见,既然有这么好用且方便的免费版,为什么要升级到 Docker Team 计划呢?

这对用户和开源社区有什么影响?

尽管 Docker Inc. 声称他们废弃免费团队订阅计划是为了提供更好地服务给用户和开源社区,并且只影响了少数用户,但实际上这也确实让很多人觉得不满意。

最主要的是 一开始发送的通知邮件含糊不清,而且邮件内容也缺少了为用户的考虑。当然,也有可能在制定这个计划的时候,确实考虑的没有那么充分。(这种时候让 ChatGPT 帮忙写下邮件效果都能比这好一点) 在经过社区和用户反馈后,该变了一些策略的细节。

我这里就只说一下目前最终的结果吧。

其他

Docker Inc. 这些年确实做了很多改变,也做了很多决策。有些是让用户很容易接受且欣然接受的。但也做过一些决策,让用户和社区都比较反感。幸好绝大多数决策在收到 反馈后,都进行了调整。

目前来看,Docker Inc. 尽管最近拿到了一笔投资,但是它进行了一些买买买的收购,准备扩展自己的版图。但它当前最为核心的收入还是来自于 DockerHub 和 DockerDesktop 。 随着它的一步步动作,整体的收费模式 & 策略将会更加清晰,类似本次这种调整应该会比较少了。

Azure AKS Edge Essentials 达到 GA

Azure Kubernetes Service Edge Essentials 是 Azure Kubernetes Service(AKS)的本地 Kubernetes 实现,可自动化运行规模化容器化应用程序。

AKS Edge Essentials 包括一个由 Microsoft 支持的 Kubernetes 平台,其中包括具有小占用空间和简单安装体验的轻量级 Kubernetes 分发版,可以在 PC 级或轻型边缘硬件上部署 Kubernetes。

AKS Edge Essentials 使得启动容器化应用程序更加容易,并将云原生最佳实践带到您的边缘应用程序中。

与其他 Microsoft 支持的平台(如托管在 Azure 上的服务(AKS)和服务器级硬件(AKS-HCI))不同,AKS Edge Essentials 旨在进行静态、预定义配置,并且不允许动态 VM 创建/删除或集群生命周期管理。

AKS Edge Essentials 集群中每个机器只能有一个 Linux 和/或 Windows VM。 Linux VM 作为控制节点和工作负载节点,在 Kubernetes 集群中运行 Linux 工作负载。 每个具有 AKS Edge Essentials 功能的机器都具有受限制 RAM、存储和物理 CPU 核心数量的VM,这些资源根据安装时分配给静态分配。 此类应用程序配置方式使传统 Windows 应用程序可以并排运行;也就是说,在AKS Edge Essentials VM 旁相互操作。

整体看起来是这样:

aks edge windows

感觉还挺不错的,我打算改天试试看。

上游进展

kubectl auth whoami 从 alpha 子命令中移出,可以直接使用了。

大家想必都知道,Kubernetes 中并没有 User(用户)的资源,但是 Kubernetes 中有权限校验的方式,比如我们常用到的利用 x509 证书进行用户权限相关的校验,或者 通过外部的 OIDC 和 webhook 等进行校验。

之前有一个 Add auth API to get self subject attributes by nabokihms · Pull Request #111333 · kubernetes/kubernetes 实际上是为了添加一个新的接口,以便于用户身份通过校验后,获取其所具有的属性。这样就可以简单的通过增加一个 kubectl auth whoami 的命令,来了解当前用户的相关信息了。 这功能比较类似于我们做 OAuth 的时候,可能会做个 UserInfo 之类的接口,用来查看用户相关的属性。

该功能是通过在 authentication.k8s.io Group 下添加了 SelfSubjectReview 资源来实现的,具体如下:

// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request.
// When using impersonation, users will receive the user info of the user being impersonated.
type SelfSubjectReview struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
	// Status is filled in by the server with the user attributes.
	Status SelfSubjectReviewStatus `json:"status,omitempty" protobuf:"bytes,2,opt,name=status"`
}

// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.
type SelfSubjectReviewStatus struct {
	// User attributes of the user making this request.
	// +optional
	UserInfo v1.UserInfo `json:"userInfo,omitempty" protobuf:"bytes,1,opt,name=userInfo"`
}

此功能在 v1.26 版本开始引入,并作为 Alpha 特性提供,可通过 APISelfSubjectReview feature gate 控制是否启用。 在 v1.27 中成为 Beta 特性。

以上就是本周的全部内容了,我们下周再见!


欢迎订阅我的文章公众号【MoeLove】

TheMoeLove

Related Posts

Comments