Docker 简明教程

Docker - Kubernetes Architecture

Kubernetes 是一个用于 Docker 容器的编排框架,可帮助将容器作为服务暴露给外部世界。例如,您可以拥有两项服务 − 一项服务包含 nginxmongoDB ,另一项服务包含 nginxredis 。每项服务都可以有可以由其他应用程序连接的 IP 或服务点。然后,Kubernetes 用于管理这些服务。

下图以一种简单的格式显示了 Kubernetes 从架构角度的工作方式。

kubernetes architecture

minion 是所有服务运行的节点。你可以一次运行多个手下。每个手下将托管一个或多个 POD。每个 POD 就像托管一项服务。每个 POD 随后包含 Docker 容器。每个 POD 可以托管一组不同的 Docker 容器。然后代理用来控制向外部世界公开这些服务。

Kubernetes 在其架构中有多个组件。每个组件的角色如下所述 &mius;

  1. etcd − 这是一个高可用的 key-value 存储,用于存储 shared configurationservice discovery 。这里的各个应用程序可以通过 discovery service 连接到服务。

  2. Flannel − 这是容器所需的后台网络。

  3. kube-apiserver − 这是一个 API,可用于协调 Docker 容器。

  4. kube-controller-manager − 这是用于控制 Kubernetes services 的。

  5. kube-scheduler − 这是用于在主机上调度容器的。

  6. Kubelet − 这是用于通过 manifest files 控制容器启动的。

  7. kube-proxy − 这是用于向外界提供网络代理服务的。