【Kubernetes】学习

Posted by 西维蜀黍 on 2022-01-02, Last Modified on 2022-01-02

docker 在 Kubernetes 中的角色

Docker 技术依然执行它原本的任务。当 kubernetes 把 pod 调度到节点上,节点上的 kubelet 会指示 docker 启动特定的容器。接着,kubelet 会通过 docker 持续地收集容器的信息,然后提交到主节点上。Docker 如往常一样拉取容器镜像、启动或停止容器。不同点仅仅在于这是由自动化系统控制而非管理员在每个节点上手动操作的。

如果你曾经用过Docker容器技术部署容器,那么可以将Docker看成Kubernetes内部使用的低级别组件。Kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术。

docker仅能在单机上部署容器,而kubernetes可以统一管理各类容器,形成集群。Kubernetes作为Docker生态圈中重要一员,是Google多年大规模容器管理技术的开源版本。Kubernetes支持GCE、vShpere、CoreOS、Azure等平台,也可以直接运行在物理机上。

Kubernetes非常适合做微服务的架构。

其主要功能如下:

  1. 用户不需要关心需要多少台机器,只需要关心软件(服务)运行所需的环境。以服务为中心,你需要关心的是api,如何把大服务拆分成小服务,如何使用api去整合它们。

  2. 以集群的方式运行管理容器。

  3. 解决Docker跨机器容器之间的通讯问题。

  4. Kubernetes的Pods自我修复机制使得容器集群总是运行在用户指定的状态。

OpenStack

OpenStack:公认的云计算IaaS平台,其管理的核心目标对象是机器(虚拟机或物理机),当然也可以管理存储和网络,但那些也大都是围绕着机器所提供的配套资源。近年来容器技术火了之后,OpenStack也开始通过各种方式增加对容器的支持,但目前OpenStack还不被视为管理容器的主流平台。

Difference between OpenStack and Docker

在 Docker 概念普及期,有很多人担心 Docker 可能会取代 OpenStack,但 OpenStack 社区大牛用上面这张图解释了二者的关系:

  • Docker 主要针对 Paas 平台,是以应用为中心。
  • OpenStack 主要针对 Iaas 平台,以资源为中心,可以为上层的 PaaS 平台提供存储、网络、计算等资源。

我们也看到,OpenStack 社区和 Docker 的结合越来越紧密。然而正如其他回答所示,OpenStack 主要还是用来管理 VM(虚拟机)。

另外两项技术,Kubernetes 是面向应用的 PaaS 层,Mesos 也偏向资源管理,但 Mesos 框架设计不错,基于它很容易构建 PaaS。

OpenStack 很庞大,底层资源管理能力很强。

Reference