01_K8s干货笔记之认识K8s

前言

Kubernetes(K8s)是Google开源的管理容器化应用的平台,旨在简化部署、更新和维护。它源于Google多年生产经验,具备自动修复、弹性伸缩、服务发现等特性。对比Apache Mesos(侧重资源管理,支持大规模非容器负载)和Docker Swarm(轻量易用,随Docker内置),Kubernetes通过Pod抽象和强大生态,成为最流行的容器编排方案,虽节点规模不如Mesos,但功能全面、适用性广,是现代云原生应用的核心工具。

一、什么是Kubernetes?

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

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

二、为什么需要Kubernetes?

三、K8s的特点

1.自动修复

2.弹性伸缩

3.自动部署和回滚

4.服务发现和负载均衡

5.机密和配置管理

6.存储编排

7.批处理

四、三点平台对比

4.1 Apache Mesos

基本概念

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

优势

经过时间的检验,作为资源管理器的Apache Mesos在容器之前就已经出现很久了,支持运行容器化和非容器化的工作负载。可以支持应用程序的健康检查,开放的架构,支持多个框架和多个调度器,通过不同的 Framework 可以运行 Haddop/Spark/MPI 等多种不同的任务。

支持超大型规模的节点管理,模拟测试支持超过 5w+ 节点,在大规模上拥有较大优势。

4.2 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 的人非常容易上手学习。

入门门槛、学习成本较低,使用更便捷,适用于中小型系统。

4.3 Google Kubernetes

基本概念

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

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

优势

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

适用度更广,功能更强大,相较于 Mesos 来说节点规模较小。

相关推荐
XiaQ091917 分钟前
Linux 常用命令学习笔记(用户管理篇):用户、组与权限的钥匙
linux·开发语言·笔记·学习
He BianGu18 分钟前
【笔记】使用Assembly.LoadFrom和AssemblyLoadContext加载插件对比,以及有没有更合适的加载插件方案
笔记
hhwyqwqhhwy20 分钟前
正点原子-ZYNQ7020 开发笔记
笔记
LuminousCPP23 分钟前
栈和队列专题(四):LeetCode 232. 用栈实现队列|双栈分工 + 按需迁移 + 摊还 O(1)
c语言·数据结构·笔记·算法·leetcode
刚入门的大一新生28 分钟前
Linux-Linux的进程状态
linux·运维·服务器
GGMM78936 分钟前
富士 EP‑3957E‑C4 电源驱动板维修实战笔记
笔记·变频器·变频器维修
Wang's Blog1 小时前
PostgreSQL笔记37:数据库性能瓶颈排查方法论与工具链
数据库·笔记·postgresql
Wang's Blog1 小时前
PostgreSQL笔记23:Checkpoint机制与脏页处理深度解析
笔记·postgresql
迪康coolmu1 小时前
企业文件外发防泄漏实践:从通道封堵到三层全链路管控
大数据·运维·网络·人工智能·安全·阿里云
To_OC8 小时前
跑了3个Docker容器后,我终于搞懂镜像和容器到底啥关系
后端·docker·容器