一段文字讲清楚Kubernetes的工作原理

170 阅读1分钟

我们用命令行kubectl run nginx --image=nginx 创建一个deployment之后稍等片刻,便能观察到自动生成了一个处于运行状态的pod。

clipboard1

这背后其实Kubernetes帮我们做了很多事情。

本文会围绕这张图进行讲解。

clipboard2

首先,我们在kubectl get pod命令后加上-v=9的参数,这个参数可以打印kubectl命令运行的明细。

首先看到kubectl从本地目录.kube里读取配置,最主要的目的是获得API服务器的url,然后通过HTTP的方式同API server进行通讯。

clipboard3

由此可见,kubectl就是一个轻量级的命令行工具,把用户输入的指令简单投递给API server,本身不处理任何逻辑。

kubernetes.io/docs/refere…

clipboard4

API服务器会把我们提交的资源存储到etcd上。etcd是一个分布式的key value存储实现,专门解决分布式系统或者集群部署的存储一致性问题。

etcd gracefully handles leader elections during network partitions and will tolerate machine failure, including the leader.

github地址:
github.com/etcd-io/etc…
应该是用go语言开发的:
clipboard5

要获取更多Jerry的原创文章,请关注公众号"汪子熙":