Docker-Kubernetes 架构


Kubernetes 是 Docker 容器的编排框架,有助于将容器作为服务公开给外界。例如,您可以有两个服务 - 一个服务包含nginxmongoDB,另一个服务包含nginxredis。每个服务可以有一个IP或服务点,可以由其他应用程序连接。然后使用 Kubernetes 来管理这些服务。

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

库伯内特斯架构

Minion是所有服务运行的节点。您可以在某个时间点运行许多 Minion。每个 Minion 将托管一个或多个 POD。每个POD就像托管一个服务。每个 POD 都包含 Docker 容器。每个 POD 可以托管一组不同的 Docker 容器。然后使用代理来控制这些服务向外界的公开。

Kubernetes 的架构中有多个组件。下面解释每个组件的作用;

  • etcd - 该组件是一个高度可用的键值存储,用于存储共享配置服务发现。在这里,各种应用程序将能够通过发现服务连接到服务。

  • Flannel - 这是容器所需的后端网络。

  • kube-apiserver - 这是一个可用于编排 Docker 容器的 API。

  • kube-controller-manager - 用于控制Kubernetes 服务

  • kube-scheduler - 用于调度主机上的容器。

  • Kubelet - 用于通过清单文件控制容器的启动。

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