Docker - Kubernetes 架构



Kubernetes 是一个用于 Docker 容器的编排框架,它帮助将容器作为服务暴露给外部世界。例如,您可以有两个服务——一个服务包含 **nginx** 和 **MongoDB**,另一个服务包含 **nginx** 和 **redis**。每个服务都可以有一个 IP 或服务端点,其他应用程序可以连接到该端点。然后 Kubernetes 用于管理这些服务。

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

Kubernetes Architecture

**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** - 用于向外部世界提供网络代理服务。

广告