Closed draveness closed 2 years ago
似乎文中有一处描述不是很统一?
「作为声明式接口的拥趸,CRI 没有使用声明式的接口」
「虽然社区最终为 CRI 选择了声明式的接口」
似乎文中有一处描述不是很统一?
「作为声明式接口的拥趸,CRI 没有使用声明式的接口」
「虽然社区最终为 CRI 选择了声明式的接口」
后面的有问题,我来改一下
想问一下大佬,如何为大型开源项目贡献代码? 比如如何分析茫茫多模块中的需求之类的?
想问一下大佬,如何为大型开源项目贡献代码? 比如如何分析茫茫多模块中的需求之类的?
想问一下大佬,如何为大型开源项目贡献代码? 比如如何分析茫茫多模块中的需求之类的?
谢谢
除了文中提到的 CRI-O、Containerd,还有哪些支持 CRI 的容器运行时?
还有podman
发现大佬几乎每周都会写一篇很全的文章,自己去实践的时候发现真的很难,可以分享下这方面的经验么?比如时间怎么安排,工作和生活怎么平衡呢?
发现大佬几乎每周都会写一篇很全的文章,自己去实践的时候发现真的很难,可以分享下这方面的经验么?比如时间怎么安排,工作和生活怎么平衡呢?
@draveness
发现大佬几乎每周都会写一篇很全的文章,自己去实践的时候发现真的很难,可以分享下这方面的经验么?比如时间怎么安排,工作和生活怎么平衡呢?
谢谢
整篇文章其实可以概括成一句话:“由于 Docker 接口的不兼容,导致 Kubernetes 的架构在早期设计上违背了 The Liskov Substitution Principle。其结果就是 Kubernetes 的架构被一个额外的、复杂的机制(Dockershim)污染。而这样的额外机制通常是难以维护的。随着 Kubernetes 架构的不断成熟,架构必需在兼容性和可维护性之间作出取舍。因此 Kubernetes 最终移除了 Dockershim 的相关代码。” 止于 CRI 为什么选择了命令式接口?个人觉得是因为涉及 Remote Procedure Call,使用命令式接口可以使架构逻辑更清晰。
还是很好奇,大佬说的的源码 RuntimeService 和 ImageService是命令式接口,那么k8s的源码里面存在声明式的golang interface源码吗?大佬说的k8s主流声明式,是指那些最上层的yaml文件么
@listen-lavender 大佬说的k8s主流声明式,是指那些最上层的yaml文件么
是的
@draveness
@listen-lavender 大佬说的k8s主流声明式,是指那些最上层的yaml文件么
是的
cri、cni、csi是为了集成和扩展模块而设计的,集成和扩展应该需要编码实现,声明式的东西应该不好做集成吧。
@listen-lavender
cri、cni、csi是为了集成和扩展模块而设计的,集成和扩展应该需要编码实现,声明式的东西应该不好做集成吧。
这些插件也可以直接监听 Pod 资源,根据 Pod 的资源自动创建网络、存储或者容器,跟其他的 Kubernetes 控制器使用相同的逻辑,这样接口就是声明式的 YAML
@draveness
@listen-lavender
cri、cni、csi是为了集成和扩展模块而设计的,集成和扩展应该需要编码实现,声明式的东西应该不好做集成吧。
这些插件也可以直接监听 Pod 资源,根据 Pod 的资源自动创建网络、存储或者容器,跟其他的 Kubernetes 控制器使用相同的逻辑,这样接口就是声明式的 YAML
谢谢解答
那么cri、cni算是命令式的接口,csi貌似是yaml配置的,应该算是声明式的;如果cri和cni也实现声明式的,意味着在yaml里面可以进行运行和网络相关的更细粒度和灵活的配置。
现在docker的运行时也是用的Containerd吧?
Kubernetes放弃Docker支持是情理之中的事情。楼主主要从技术层面剖析了原因,也谈到一点Kubernates本身的产品策略。我想补充一个观点是,这本质上就是一场商业战争,背后的操纵者是Google。Kubernetes、CNCF是Google祭出的打破AWS、Microsoft云计算僵局、颠覆Docker公司的杀手级产品和策略。2015年以前,Docker是容器领域的领导者,AWS是云计算领域的霸主,Google如何突围?Google敏锐的以容器编排为切入点,将Docker视为工具以弱化Docker公司的影响力,通过CNCF、开源、技术共享极大降低了云计算PaaS/SaaS门槛,与最广大的小微云服务厂商形成统一战线联盟,使AWS、Microsoft等先发云计算厂商只有IaaS的优势。Google又一次炮制了Android、Tensorflow的开源戏法,回过头看真是一场翻手为云覆手为雨的大戏。
https://draveness.me/whys-the-design-kubernetes-deprecate-docker/