k8s各个组件

POD

image-20190622163903124

  • 每个POD都有一个Pause容器,类似于docker-compose容器,它可以将POD内的其他容器关联起来。也可以对服务的状态进行监控。
  • 一般POD里只运行一个容器。很少情况下会运行多个容器(helper container),此时所有容器共享一个IP,互相之间可以使用localhost访问。 image-20200117203921143

ReplicaSet

image-20190622171353793

如果某个POD在运行过程中挂掉,ReplicaSet就会在另一个机器上重启一个POD,保证服务的正常运行。

Deployment

image-20190622171646379

当应用有新版本要部署时,Deployment会启动一个新的ReplicaSet。例如原来的ReplicaSet有两个POD,则新的ReplicaSet先新建一个POD,等成功部署后,把原来的POD删除:

image-20190622173029852

最终状态如下:

image-20190622173627950

现在版本为v2。原来的v1版本下线。

实际上所有步骤对于我们而言都是透明的。

Service

image-20190622175434110

kube-proxy

Service只存在于k8s内存,为了将访问IP映射为访问服务名。

那所有节点怎么知道映射关系的呢。

每个POD节点都有一个kube-proxy报务,当Service更新时,会维护一个路由表。