第一讲:认识kubernetes(k8s)

前言:这几天着重学习了k8s,又重新对k8s有了一些新的理解,在之前三篇文章中都是直接搭建环境,使用docker和k8s,至于为什么这么做不是很理解,比如就部署k8s就有很多方式,我只是按照网上的步骤直接来的,通过学习之后知道有多种方式进行部署,每个部署方式都有它的优缺点,我还在持续的学习中,根据学习进度后续应该会补充一些文章,同时会意识到之前的部署文章有一些错误也会一同纠正,如果还有别的问题也欢迎大家指出,接下来进入今天的正题,认识k8s。

目录

一、什么是kubernetes?

二、为什么需要kubernetes?

2.1 应用部署的三个阶段

        2.1.1 传统部署 

        2.1.2 虚拟化部署

        2.1.3 容器化部署

2.2 k8s的特点

三、企业级容器调度平台对比

        3.1 Apache mesos

                3.1.1 基本概念

                3.1.2 优势

        3.2 docker swarm

                3.2.1 基本概念

                3.2.2 优势

        3.3 google kubernetes

                3.3.1 基本概念

                3.3.2 优势


一、什么是kubernetes?

        Kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes 提供了应用部署,规划,更新,维护的一种机制。

        Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在 Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想法和实践。

二、为什么需要kubernetes?

2.1 应用部署的三个阶段

        2.1.1 传统部署 

                        程序员/运维工程师手动操作部署应用,直接将应用部署在目标机器上,由于资                          源 不隔离,容易出现资源争抢、依赖冲突等各方面问题。

        2.1.2 虚拟化部署

                        利用 OpenStask / VMware 等虚拟化技术,将一台目标机器虚拟化为多个虚拟机器,按照需求将应用部署到不同的虚拟机中,对虚拟机进行动态的水平扩容等管理操作。

                        相对传统部署自动化、资源隔离的能力提升了,带来的问题是虚拟化的逻辑过重,导致效率不高,且耗费资源较多。

        2.1.3 容器化部署

                可以理解为轻量级的虚拟化,完美弥补虚拟化技术过重的问题,且由于直接共享主机硬件资源,只是通过系统提供的命名空间等技术实现资源隔离,损耗更小,且效率更高。

2.2 k8s的特点

  1. 自我修复
  2. 弹性伸缩
  3. 自动化部署和回滚
  4. 服务发现和负载均衡
  5. 机密和配置管理
  6. 存储编排
  7. 批处理

三、企业级容器调度平台对比

        3.1 Apache mesos

                3.1.1 基本概念

                        Mesos 是一个分布式调度系统内核,早于 Docker 产生,Mesos 作为资源管理器,从 DC/OS (数据中心操作系统)的角度提供资源视图。主/从结构工作模式,主节点分配任务,并用从节点上的 Executor 负责执行,通过 Zookeeper 给主节点提供服务注册、服务发现功能。通过 Framework Marathon 提供容器调度的能力。

                3.1.2 优势

                        经过时间的检验,作为资源管理器的 Apache Mesos 在容器之前就已经出现很久了,支持运行容器化化和非容器化的工作负载。可以支持应用程序的健康检查,开放的架构。支持多个框架和多个调度器,通过不同的 Framework 可以运行 Haddop/Spark/MPI等多种不同的任务。
                        支持超大型规模的节点管理,模拟测试支持超过 5w+ 节点,在大规模上拥有较大优势。

                        PS:针对的是对节点的支持,针对容器可能就差点意思。

        3.2 docker swarm

                3.2.1 基本概念

                        Docker Swarm 是一个由 Docker 开发的调度框架。由 Docker 自身开发的好处之一就是标准 Docker API 的使用,Swarm 由多个代理(Agent)组成,把这些代理称之为节点(Node)。这些节点就是主机,这些主机在启动 Docker Daemon 的时候就会打开相应的端口,以此支持 Docker 远程 API。这些机器会根据 Swarm 调度器分配给它们的任务,拉取和运行不同的镜像。

                3.2.2 优势

                       从 Docker1.12 版本开始,Swarm 随 Docker 一起默认安装发布。由于随 Docker 引擎一起发布,无需额外安装,配置简单。支持服务注册、服务发现,内置 Overlay Network 以及 Load Balancer。与 Docker CLI 非常类似的操作命令,对熟悉 Docker 的人非常容易上手学习。
入门门槛、学习成本较低,使用更便捷,适用于中小型系统。

                        PS:docker官方自己都不用这个,主流也很少用。 

        3.3 google kubernetes

                3.3.1 基本概念

                        Kubernetes 是基于 Google 在过去十五年来大量生产环境中运行工作负载的经验。Kubernetes 的实现参考了 Google 内部的资源调度框架,但并不是 Borg 的内部容器编排系统的开源,而是借鉴 Google 从运行 Borg 获得的经验教训,形成了 Kubernetes 项目。
                        它使用 Label 和 Pod 的概念来将容器划分为逻辑单元。Pods 是同地协作(co-located)容器的集合,这些容器被共同部署和调度,形成了一个服务,这是 Kubernetes 和其他两个框架的主要区别。相比于基于相似度的容器调度方式(就像 Swarm 和Mesos),这个方法简化了对集群的管理。

                3.3.2 优势

                        最流行等容器编排解决方案框架,基于 Google 庞大的生态圈及社区产生的产品。通过 Pods 这一抽象的概念,解决 Container 之间的依赖于通信问题。Pods,Services,Deployments 是独立部署的部分,可以通过 Selector 提供更多的灵活性。内置服务注册表和负载平衡。
                        适用度更广,功能更强大,相较于 Mesos 来说节点规模较小。

                        PS:目前主流,docker官方指定,但k8s在1.24版本后就不支持docker,因为Docker 不支持 Kubernetes 主推的 CRI(容器运行时接口)标准,但是docker在改,可以间接使用加上一个中间层 cri-docker。

文章写的再细也不如看视频理解的透,我主要参照了该up主的视频,讲的非常好

【完整版Kubernetes(K8S)全套入门+微服务实战项目,带你一站式深入掌握K8S核心能力】 https://www.bilibili.com/video/BV1MT411x7GH/?p=13&share_source=copy_web&vd_source=921dd22b5670d69481670cf6655563f5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值