ebs.csi.aws.com 与 kubernetes.io/aws-ebs 之间的区别是什么?

What's the difference between ebs.csi.aws.com vs kubernetes.io/aws-ebs for provisioner?

我知道“provisioner”这个概念,但我不明白 intree ebs 驱动程序是什么意思。 ebs.csi.aws.com csi驱动是aws维护的,另一个是k8s自己维护的? 一个比另一个好吗?

根据the official documentation

Prior to CSI, Kubernetes provided a powerful volume plugin system. These volume plugins were “in-tree” meaning their code was part of the core Kubernetes code and shipped with the core Kubernetes binaries. However, adding support for new volume plugins to Kubernetes was challenging. Vendors that wanted to add support for their storage system to Kubernetes (or even fix a bug in an existing volume plugin) were forced to align with the Kubernetes release process. In addition, third-party storage code caused reliability and security issues in core Kubernetes binaries and the code was often difficult (and in some cases impossible) for Kubernetes maintainers to test and maintain. Using the Container Storage Interface in Kubernetes resolves these major issues.

As more CSI Drivers were created and became production ready, we wanted all Kubernetes users to reap the benefits of the CSI model. However, we did not want to force users into making workload/configuration changes by breaking the existing generally available storage APIs. The way forward was clear - we would have to replace the backend of the “in-tree plugin” APIs with CSI.

所以回答你的问题 - 是的,ebs.csi.aws.com 由 AWS 维护,而 in-tree 插件由 Kubernetes 维护,但他们似乎已停止根据 this article 实施新功能:

The idea of this journey started picking up steam when I realized that the in-tree storage plugins were deprecated and no new enhancements were being made to them starting with Kubernetes 1.20. When I discovered that simply switching from gp2 to gp3 volumes meant I had to start using the AWS CSI Driver I realized I was behind the times.

回答你的最后一个问题,根据 this note:

使用 ebs.csi.aws.com 可能更好

The existing in-tree EBS plugin is still supported, but by using a CSI driver, you benefit from the decoupling between the Kubernetes upstream release cycle and the CSI driver release cycle.