k8s(Kubernetes)简介

一、什么是k8s?

k8s全称是Kubernetes,k8s是一个docker容器管理工具。

Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。它是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

 

通过Kubernetes你可以

快速部署应用

快速扩展应用

无缝对接新的应用功能

节省资源,优化硬件资源的使用

 

Kubernetes 特点

可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)

可扩展: 模块化, 插件化, 可挂载, 可组合

自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展

 

K8s总体架构

K8s集群由两节点组成:Master和Node。在Master上运行etcd,Api Server,Controller Manager和Scheduler四个组件。后三个组件构成了K8s的总控中心,负责对集群中所有资源进行管控和调度.在每个node上运行kubectl,proxy和docker daemon三个组件,负责对节点上的Pod的生命周期进行管理,以及实现服务代理的功能。另外所有节点上都可以运行kubectl命令行工具。

 

API Server作为集群的核心,负责集群各功能模块之间的通信。集群内的功能模块通过Api Server将信息存入到etcd,其他模块通过Api Server读取这些信息,从而实现模块之间的信息交互。Node节点上的Kubelet每隔一个时间周期,通过Api Server报告自身状态,Api Server接收到这些信息后,将节点信息保存到etcd中。Controller Manager中 的node controller通过Api server定期读取这些节点状态信息,并做响应处理。Scheduler监听到某个Pod创建的信息后,检索所有符合该pod要求的节点列表,并将pod绑定到节点列表中最符合要求的节点上。如果scheduler监听到某个Pod被删除,则调用api server删除该Pod资源对象。kubelet监听pod信息,如果监听到pod对象被删除,则删除本节点上的相应的pod实例,如果监听到修改Pod信息,则会相应地修改本节点的Pod实例。

 

二、为什么需要 k8s?

1、应用部署模式的演进

k8s(Kubernetes)简介-1

k8s(Kubernetes)简介-2

 

2、相比虚拟机和容器

容器更加轻量级,启动更快(秒级)

容器可移植性更好

管理大量的容器带来了新的挑战

容器编排调度引擎 —— k8s 的好处

简化应用部署

提高硬件资源利用率

健康检查和自修复

自动扩容缩容

服务发现和负载均衡

 

三、k8s 的集群架构

主节点,承载 k8s 的控制和管理整个集群系统的控制面板

作节点,运行用户实际的应用

k8s(Kubernetes)简介-3

 

四、pod —— k8s 调度的最小单元

1、 一个 pod 包含一组容器,一个 pod 不会跨越多个工作节点

 

2、了解 pod

pod 相当与逻辑主机,每个 pod 都有自己的 IP 地址

pod 内的容器共享相同的 IP 和端口空间

默认情况下,每个容器的文件系统与其他容器完全隔离

标签

发表评论