您当前的位置: 首页 >  kubernetes
  • 3浏览

    0关注

    1477博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Kubernetes 小白学习笔记(2)--基本概念2

软件工程小施同学 发布时间:2020-09-20 18:56:16 ,浏览量:3

一、Kubernetes和传统操作系统的关系

 

      传统的操作系统(Linux、Windows)是底层硬件的一个抽象层,向下管理计算机的硬件(内存、 CPU等,向上对应用层提供易用的硬件接口。

     Kubernetes 也是一种操作系统,是多台计算机组成的集群的一个抽象层,向下管理这些普通的计算机。Kubernetes  把这些计算机当成一个资源池来 统一管理,向上对容器化的应用提供支撑。

 

二、容器化应用

   可以理解为一个应用安装文件,安装文件打包了所有的依赖库,比如 libc 这些。这些应用不会依赖底层操作系统的库文件来运行,所以Kubernetes不关心这些计算机各自的操作系统和硬件。

 

三、单体应用、微服务、容器编排

单体应用(传统应用):

      比如开发网站时,可能只需要把所有的模块放在一个可执行文件里,就像上图一样,我们有 UI、数据和业务三个模块,这三个模块被编译成一个可执行文件,跑在一台服务器上。

 

微服务:

     业务量的大幅增长,没有办法通过升级服务器配置的方式来扩容化时。可以把单体应用拆分成低耦合的小应用。这些应用各自负责一块业务,然后每个应用的实例独占一台服务器,它们之间通过网络互相调用。

    优点:可以通过增加实例个数,来对小应用做横向扩容,解决了单台服务器无法扩容的问题。

 

容器编排(Kubernetes):

          微服务一个实例占用一台服务器的问题,资源的浪费其实是比较严重的。我们可以把这些实例混部到底层服务器上。但是混部会引入两个新问题,一个是依赖库兼容性问题。这些应用依赖的库文件版本可能完全不一样,安装到一个操作系统里,必然会出问题。另一个问题就是应用调度和集群资源管理的问题。

          这里的依赖库兼容性问题,是靠容器化来解决的,也就是每个应用自带依赖库,只跟其他应用共享内核。而调度和资源管理就是 Kubernetes 所解决的问题。

 

四、集群控制器

中心数据库:集群的核心存储系统;

API Server:集群的管控入口;

调度器(Secheduler):把应用调度到资源充沛的节点上;

控制器:一句话概括,就是“让梦想照进现实”;

Kubelet :管理工作节点,包括应用在节点上启动和停止之类的工作;

Proxy :把服务的定义落实成具体的 iptables 或者 ipvs 规则;

服务:利用 iptables 或者 ipvs 来实现负载均衡;

 

 

参考文档:

https://mp.weixin.qq.com/s/2TRVWe01jHUtOioW31ukeg

关注
打赏
1665320866
查看更多评论
立即登录/注册

微信扫码登录

0.2865s