Docker Kubernetes架构
Kubernetes是一个用于Docker容器的编排框架,它帮助将容器作为服务暴露给外部世界。例如,你可以有两个服务 – 一个服务包含 nginx 和 mongoDB ,另一个服务包含 nginx 和 redis 。每个服务可以有一个IP或服务点,可以被其他应用程序连接。然后使用Kubernetes来管理这些服务。
以下图表以简化的格式展示了Kubernetes从架构角度的工作方式。
小黄人 是所有服务运行的节点。您可以同时运行多个小黄人。每个小黄人将托管一个或多个 POD 。每个 POD 就像托管一个服务。然后,每个 POD 包含Docker容器。每个 POD 可以托管不同的一组Docker容器。然后,代理用于控制将这些服务暴露给外部世界。
Kubernetes在其架构中具有几个组件。每个组件的角色如下所述:
-
etcd - 这个组件是一个高可用的 键值存储 ,用于存储 共享配置 和 服务发现 。各种应用程序可以通过 发现服务 连接到这些服务。
-
Flannel - 这是容器所需的后端网络。
-
kube-apiserver - 这是一个可以用来编排Docker容器的API。
-
kube-controller-manager - 用于控制 Kubernetes服务 。
-
kube-scheduler - 用于在主机上调度容器。
-
Kubelet - 通过 清单文件 控制容器的启动。
-
kube-proxy - 用于为外部世界提供网络代理服务。