Kubernetes(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官方网站:

https://kubernetes.io/icon-default.png?t=M85Bhttps://kubernetes.io

你可能感兴趣的:(kubernetes,kubernetes)