Docker - Kubernetes 架构
Kubernetes 是 Docker container 的编排框架,它帮助将 container 作为服务暴露给外部世界。例如,你可以有两个服务 — 一个服务包含 nginx 和 mongoDB,另一个服务包含 nginx 和 redis。每个服务可以有一个 IP 或服务端点,其他应用可以通过它进行连接。Kubernetes 则用于管理这些服务。
下图以简化的形式展示了 Kubernetes 从架构角度的工作原理。
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 − 用于向外部世界提供网络代理服务。