一、初识Kubernetes

一、什么是Kubernetes? (以下简称“k8s”)

        Kubernetes是G家开源的神器,它介于应用服务与服务器之间,能够通过一定的预设策略协调和管理多个应用服务。只需要一个yaml文件,就可以定义应用程序的部署顺序、部署节点等信息。还可以实现pod的自动扩容、缩容和自动修复功能。

二、为什么需要Kubernetes?
1.应用部署三大阶段:
  • 传统化部署:早期程序员or运维人员,需要去手动操作部署应用,直接将应用程序部署在目标主机或服务器上,后面则会出现服务器资源争抢,程序或软件依赖等各方面问题。
  • 虚拟化部署:利用Open Stack or Vmware 等虚拟化技术,将一台目标机器虚拟机转化为多个虚拟化机器,按照需求将应用程序部署到不同的虚拟机中,对虚拟机进行动态的水平扩容等管理操作;相比于传统的部署方式,虚拟化技术进一步提升了资源隔离的能力,但因为虚拟化技术需要虚拟出一套完整的OS系统,从而导致启动慢,耗费资源较多,比较重。
  • 容器化部署:相比于虚拟化技术更轻量级,因为容器化直接共享宿主机的硬件资源。通过系统提供的命名空间等技术实现资源隔离,损耗更小,且启动速度更快,效率更高。
2.k8s常见部署方式:
  • 二进制部署:需要安装各个组件以及证书,网络的配置
  • Kubeadm:它是一个用于在k8s集群中初始化和管理主节点的命令行工具。它是k8s官方提供的一种快速部署k8s集群的方式之一。使用kubeadm,可以在各种操作系统上轻松地设置一个简单的k8s集群,通过init 和jion命令进行节点初始化加入节点,适用于开发环境,小型环境
  • minikube:适用于本地运行单节点k8s集群的工具,开发人员本地测试和测试应用程序
  • kops: Kubernetes Operations(kops):用于在 AWS 上部署生产级别 Kubernetes 集群的工具,支持自动化创建、升级和维护集群。
  • kubespray:基于 Ansible 的工具,可用于在各种云平台上部署 Kubernetes 集群,支持定制化配置和大规模部署。
  • RKE (Rancher Kubernetes Engine):RKE 是Rancher 提供的 Kubernetes 管理工具,可以快速部署和管理生产级别的 Kubernetes 集群。
  • 托管服务:是指一些云提供商,如AWS EKS、Google GKE、阿里云 ACK等提供的托管服务,用户可以直接在这些平台上创建和管理K8s集群,无需关心底层的基础设施。
3.k8s特点:
  • 自动化部署: k8s支持自动化部署、自动化容器扩缩容,包括自动启动、停止、和重启容器。
  • 服务发现于负载均衡:k8s提供服务发现于负载均衡功能,帮助容器之间相互通信并分配请求。
  • 自我修复: k8s具有自我修复的能力,它能够重新调度(重启或重新创建)已失败的容器,以保证服务的连续性。
  • 可移植性:k8s支持在不同环境下中运行,包括公有云、私有云、混合云等。
  • 可扩展性:由于其模块化和插件化的设计,k8s可以根据需要动态地扩展资源和服务
  • 声明式配置:k8s允许用户以声明式方式配置应用,而不是通过命令或脚本,这使得管理更加简单和高效。
  • 社区和生态系统:作为一个开源项目,k8s拥有庞大且活跃的社区和丰富的生态系统,提供广泛的工具和服务支持。
  • 跨云兼容性k8s设计时考虑到了跨云运行的需求,支持多种云平台,使得企业可以在不同的云环境中灵活部署和管理应用。
三、企业级容器调度平台
Apache Mesos :

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

        优势: 支持超大型规模的节点管理,模拟测试支持超过 5w+ 节点,在大规模上拥有较大优势;支持容器化和非容器化的工作负载,支持多个框架和多个调度器,通过不同的 Framework 可以运行 Haddop/Spark/MPI等多种不同的任务。

Docker Swarm:

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

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

Google Kubernetes:

        Kubernetes 是基于 Google 在过去十五年来大量生产环境中运行工作负载的经验。Kubernetes 的实现参考了 Google 内部的资源调度框架,但并不是 Borg 的内部容器编排系统的开源,而是借鉴 Google 从运行 Borg 获得的经验教训,形成了 Kubernetes 项目。

        它使用 Label 和 Pod 的概念来将容器划分为逻辑单元。Pods 是同地协作(co-located)容器的集合,这些容器被共同部署和调度,形成了一个服务,这是 Kubernetes 和其他两个框架的主要区别。相比于基于相似度的容器调度方式(就像 Swarm 和Mesos),这个方法简化了对集群的管理。

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

        不足:搭建和配置k8s集群相对困难;相对于简单的应用程序,可能涉及不到上K8s。

    

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值