Kubernetes(K8s)的简介及基础知识
Kubernetes,简称又叫K8s,为什么简称要叫K8s,据说是因为Kubernetes单词中K字母和S字母之间相隔8个字母,所以Kubernetes就此简称K8s了,使用K8s利于应用扩展,使部署容器化应用更加的简洁和高效。
1、关于Kubernetes(K8s)的简介
Kubernetes,简称又叫K8s,为什么简称要叫K8s,据说是因为Kubernetes单词中K字母和S字母之间相隔8个字母,所以Kubernetes就此简称K8s了,使用K8s利于应用扩展,使部署容器化应用更加的简洁和高效。
2、关于K8s的诞生
当使用的Docker容器的数量变得越来越多时,对于端口、Docker容器的管理变得越来越麻烦,这时为方便管理容器,资源管理器随之出现,其中最出名的就是K8s,K8s是由谷歌用go语言开发的在2014年进行开源的一个容器化集群管理系统,K8s的前身是谷歌内部具有15年运行经验的容器化基础架构borg(柏格)。(知识拓展:最早出现的资源管理框架是Apache的开源分布式的资源管理框架Mesos,由于K8s的出现,Mesos逐渐被取代;后续出现的是docker官方的swarm,这个框架体量很轻,但功能比主流的K8s少,所以用的公司也比较少)
3、K8s的优点
(1)轻量级:由于K8s是使用go语言编写的,所以K8s运行时占用的资源非常少。
(2)开源
(3)弹性伸缩:K8s非常方便的增加、减少容器的数量,便以管理和控制集群的规模。
(4)负载均衡:K8s自带使用IPVS实现的负载均衡,不需要再去手动搭建。
4、K8s的功能特性
(1)自动装箱:自动部署应用容器
(2)自我修复:当容器停止时,会自动重启容器;部署的节点出问题时,会对容器进行重新部署和重新调度
(3)水平扩展:通过简单的命令对应用容器进行大规模的扩大或减裁
(4)服务发现:对外提供统一入口,自身提供服务发现和负载均衡
(5)滚动更新:对运行中的应用容器进行批量式的更新
(6)版本回退:根据应用的部署情况,可以在应用出现问题时进行历史版本的即时回退
(7)密钥和配置管理:在不重启集群的情况下部署新的应用容器
(8)存储编排:自动实现存储系统挂载及应用,支持访问外部的存储系统
(9)批处理:提供一次性任务、定时任务,满足批量数据处理和分析的场景
5、K8s的架构组件
K8s有两个节点,分别为Master node(主节点)和Worker node(工作节点),节点下又存在有不同作用的组件,详情如下:
(1)Master node(主节点)
【1】apiserver(集群统一入口:所有请求方式用restful风格进行)
【2】scheduler(节点调度:选择节点进行应用部署)
【3】controller-manager(处理集群中常规后台任务,每个应用对应一个控制器)
【4】etcd(存储系统:用于保存集群相关的数据)
(2)Worker node(工作节点)
【1】kubelet(负责维护容器的生命周期,即通过控制docker来创建、更新、销毁容器)
【2】kube-proxy(提供网络代理、负载均衡等操作)
6、K8s核心概念
(1)Pod
【1】K8s中最小的核心单元
【2】一组容器的集合(一个Pod里可以有很多的容器)
【3】Pod内的容器会共享网络
【4】生命周期是短暂的(服务器重启,重新部署后的Pod不再是此前的Pod)
(2)Controller
【1】确保预期的Pod副本的数量
【2】无状态应用部署(当一个节点挂了,另一个节点能无条件的接受挂掉节点的应用)
【3】有状态应用部署(当一个节点挂了,另一个节点需要满足条件后才能接收挂掉节点的应用,条件可以是依赖存储、网络Ip等)
【4】确保所有的node运行同一个Pod
【5】支持一次性任务和定时任务
(3)Service
【1】定义一组Pod的访问规则(可以指定特定的请求访问特定的Pod)
其他:
K8s官方网站:
更多推荐
所有评论(0)