etcd在k8s中

2021-11-02  本文已影响0人  Wu杰语

学习了这么多etcd,就是为了学习etcd在k8s中的作用。

k8s的部署架构

部署架构

从部署架构中可以看到有组件:

etcd作为k8s存储

etcd作为k8s存储,主要存储k8s元数据,通过学习etcd我们指导,etcd一般最佳内存在8G,太大太小都容易引起性能降低。所以我们不能拿etcd当做数据库使用,只能存储各种元数据信息。
按照k8s的官方文档和业界的最佳实践,k8s可以管理到5000个节点,这么算每个节点可以分配到16M的存储。

按照etcd学习的知识,etcd存储的key、value值,那么k8s的key长什么样呢?
在etcd中,资源命名是这样的

prefix + "/" + 资源类型 + "/" + namespace + "/" + 具体资源名
例如:
/registry/deployments/default/helloworld

我们学习了etcd的get有按照key查找和按照范围查找两种方式,当我们用kubctl命令时

etcd在k8s中交互

etcd在k8s中什么时机交互呢?


pod创建流程

如上图,一个Pod的创建过程:

从上面过程可以看到两点:

从设计的角度来看,这也是一种异步编程方式,和我们在应用开发中收到MQ消息,然后进行响应是一致的。只不过这里的异步处理都建立在etcd的watch机制上。

小结

etcd是k8s的状态存储库,同时其watch机制也是k8s异步设计的基础。etcd在k8s中,还有很多工程场景需要学习和理解,下节继续学习。

上一篇 下一篇

猜你喜欢

热点阅读