Docker中Kubernetes架构是怎么样的?

文章导读
上一个 测验 下一个 Kubernetes 是 Docker container 的编排框架,它帮助将 container 作为服务暴露给外部世界。例如,你可以有两个服务 — 一个服务包含 nginx 和 mongoDB,另一个服务包含 nginx 和 redis。每个服务
A A

Docker - Kubernetes 架构



上一个
测验
下一个

Kubernetes 是 Docker container 的编排框架,它帮助将 container 作为服务暴露给外部世界。例如,你可以有两个服务 — 一个服务包含 nginxmongoDB,另一个服务包含 nginxredis。每个服务可以有一个 IP 或服务端点,其他应用可以通过它进行连接。Kubernetes 则用于管理这些服务。

下图以简化的形式展示了 Kubernetes 从架构角度的工作原理。

Kubernetes Architecture

minion 是运行所有服务的节点。你可以同时运行多个 minion。每个 minion 将托管一个或多个 POD。每个 POD 就像托管一个服务一样。每个 POD 包含 Docker container。每个 POD 可以托管一组不同的 Docker container。然后使用 proxy 来控制这些服务向外部世界的暴露。

Kubernetes 的架构包含多个组件。下面解释了每个组件的作用 &mius;

  • etcd − 该组件是一个高可用的 key-value 存储,用于存储 共享配置服务发现。在这里,各种应用可以通过 discovery service 连接到服务。

  • Flannel − 这是 container 所需的后台网络。

  • kube-apiserver − 这是一个 API,可用于编排 Docker container。

  • kube-controller-manager − 用于控制 Kubernetes services

  • kube-scheduler − 用于在主机上调度 container。

  • Kubelet − 用于通过 manifest files 控制 container 的启动。

  • kube-proxy − 用于向外部世界提供网络代理服务。