Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。
名称 Kubernetes 源于希腊语,意为 “舵手” 或 “飞行员”。Google 在 2014 年开源了 Kubernetes 项目。Kubernetes 建立在 Google 在大规模运行生产工作负载方面拥有十几年的经验的基础上,结合了社区中最好的想法和实践。
传统部署时代
早期,组织在物理服务器上运行应用程序。无法为物理服务器中的应用程序定义资源边界,这会导致资源分配问题。
例如,如果在物理服务器上运行多个应用程序,则可能会出现一个应用程序占用大部分资源的情况,结果可能导致其他应用程序的性能下降。一种解决方案是在不同的物理服务器上运行每个应用程序,但是由于资源利用不足而无法扩展,并且组织维护许多物理服务器的成本很高
虚拟化部署时代
作为解决方案,引入了虚拟化功能,它允许您在单个物理服务器的 CPU 上运行多个虚拟机(VM)。虚拟化功能允许应用程序在 VM 之间隔离,并提供安全级别,因为一个应用程序的信息不能被另一应用程序自由地访问。
因为虚拟化可以轻松地添加或更新应用程序、降低硬件成本等等,所以虚拟化可以更好地利用物理服务器中的资源,并可以实现更好的可伸缩性
容器部署时代
容器类似于 VM,但是它们具有轻量级的隔离属性,可以在应用程序之间共享操作系统(OS)。因此,容器被认为是轻量级的。容器与 VM 类似,具有自己的文件系统、CPU、内存、进程空间等。由于它们与基础架构分离,因此可以跨云和 OS 分发进行移植
容器因为具有许多优势而变得很流行,容器是打包和运行应用程序非常好的方式,在生产环境中会面临一个问题:
在日常工作中,管理运行的应用程序,并确保不会停机,例如,如果一个容器发送故障,则需要启动另一个容器。如果给系统处理,效率会较低
Master组件:
提供集群的管理控制中心。Master组件可以在集群中任何节点上运行。但是为了简单起见,通常在一台VM/机器上启动所有Master组件,并且不会在此VM/机器上运行用户容器。
**① kube-apiServer(核心组件) **
Kubernetes API,集群的统一吐口,各组件协调者,以RESTful api 提供接口服务,所有的对象资源的增删改查和监听操作都是叫给APIServer处理后再提交给Etcd存储
② kube-controller-manager
处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManaager就是负责管理这些控制器的
控制器包括(部分):
③ kube-scheduler
根据调度算法为新创建的Pod选择一个Node节点,可以任意部署,可以再部署再同一个节点上,也可以部署再不同的节点上。
调度算法(之后会对此进行介绍):
④ Etcd
分布式键值存储系统,用于保存集群状态数据,比如Pod、Service等对象信息
Etcd 具有服务发现系统,这是mysql、Oracle数据库锁没有的,同时还有以下特点:
之后也会对Etcd进行单篇博客介绍
节点组件运行在Node,提供Kubernetes运行时环境,以及维护Pod。
① kublet
kubelet 是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作。kubelet将每个Pod转换成一组容器
② kube-proxy
在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。
③ docker或rocket
容器引擎,运行容器
Pod
① 最小部署单元
② 一组容器的集合
③ 一个Pod中的容器共享网络命名空间(可以理解在同一个局域网)
④ Pod 是短暂的(有生命周期)
Controllers
① ReplicaSet:确保预期的Pod副本数量(参数,可进行设置)
② Deployment:无状态应用(例如:web、nignx、apache、tomcat)
③ StatefulSet:有状态应用部署
④ DaemonSet:确保所有的Node运行同一个Pod(把所有的Node设置为同一个命名空间)
⑤ Job:一次性任务(类比linux:at)
⑥ Cronjob:定时任务(类比linux:crontab)
更高层次对象,部署和管理Pod
Service
防止Pod失联
定义一组Pod访问的策略(主要作用)
确保每个Pod之间的独立性(安全)
Label
标签,附加到某个资源上,用于关联对象、查询和筛选
Namespaces
命名空间,将对象逻辑上隔离
Annotations
注释
本篇博客介绍了k8s中的基础概念,之后会逐步进行深入介绍~~~