kubernetes系列01-介绍

2022年01月13日 阅读数:4
这篇文章主要向大家介绍kubernetes系列01-介绍,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

本章介绍kubernetes是什么,为何要用它,具有什么价值。linux

kubernetes是容器的编排系统,可以方便地对容器进行管理,包括升级、扩缩容等等,而且还具有健康检查自动治愈等实用功能。 能够把kubernetes想象成一套容器管理系统,经过k8s(kubernetes的简称,k和s之间有8个字符)可以方便的分配资源、管理容器。网络

软件发展历史

要理解kubernetes出现的缘由,就要理解它解决的问题。这些问题要从服务端软件发展的历史提及。架构

微服务兴起

最近几年服务架构从单体应用到微服务的转变已经成为不可扭转的趋势,对于比较复杂的系统,拆分红多个微服务,微服务直接经过rpc接口、消息接口通讯,这样高内聚低耦合的设计,可以下降维护成本,各个微服务可以快速发展,而且微服务拆分后也方便拆分给不一样的团队、人员维护,减小共同维护同一个服务的冲突和开销。 拆分红小的服务后,每一个服务能够根据各自的需求决定部署须要的资源。运维

微服务变多带来的运维成本增长

可是微服务意味着部署复杂度的提高,每一个微服务都须要单独部署、升级,每一个微服务的负载可能各不相同,因此也须要单独进行扩容缩容。 服务部署升级扩容缩容,意味着咱们须要给每一个微服务分配机器资源,为了提升资源利用率,咱们经常会在一个机器上部署多个微服务。可是在一个机器上部署多个微服务,可能出现CPU内存网络等资源争抢问题,每一个微服务所须要的环境可能也各不相同,例如依赖不一样版本的软件类库。这些问题致使了微服务的部署管理难度持续增大。微服务

容器和kubernetes来解决微服务的容器维护管理难题

为了解决这些问题,出现了虚拟机、容器等解决方案。虚拟机能够想象成一个机器上的多个子机器,每一个虚拟机具备本身独立的操做系统、文件、CPU内存网络资源,解决了资源争抢和环境冲突的问题。不过虚拟机的开销比较大,每一个虚拟机内部都有一层操做系统,致使执行速度较慢、占用空间较大。linux中的容器技术,提供了更为轻量的解决方案,linux中经过namespace实现了进程间的资源视图隔离,经过cgroup实现了CPU内存网络等资源隔离能力,Docker在此基础上增长了可移植性等优化,经过Docker,咱们能够方便的定位容器(镜像)、共享分发镜像、启动容器。工具

而Docker并无提供完整的容器管理方案,好比资源调度、监控检查服务自动治愈、自动扩缩容等能力,最先由google开源的kubernetes就是为容器提供资源调度管理的工具,Docker是容器技术的一种实现。优化

经过kubernetes可以把应用和底层的基础设施进行解耦,对于应用来讲,只须要关心须要什么样的资源、如何自动、有哪些依赖等,而不用关心底层是部署在云厂商仍是物理机、虚拟机等各类状况。google