zoukankan      html  css  js  c++  java
  • kubernetes基础概念

    master组件:

      1、apiserver:唯一管理入口,各组件的协调者,所有对象资源的增删改查和监听操作都交给apipserver处理后再提交给etcd存储。

      2、controller-manager:控制器管理器,处理集群中常规后台任务,一个资源对应一个控制器,而controller-manager就是负责管理这些控制器的。

      3、scheduler:核心功能就是监听apiserver来获取podaec.nodename为空的pod,然后为这样的pod创建一个binding指示pod应该调度到哪个节点上,掌管pods到nodes的调度,如下:

        1)创建pod

        2)scheduler发现新创建的pod没有分配node

        3)schedule为pod分配node

    node组件:

      1、kubelet:是master在node节点上的agent,管理本机运行容器的生命周期,如,创建容器,pod挂载数据卷,下载secret,获取容器和节点状态等,kubelet降每个pod转换成一组容器。

      2、proxy:node节点上实现pod网络代理,维护网络规则和四层负载均衡工作。

      3、docker:容器引擎,负责运行容器。

    pod控制器:

      pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行重启,当根据重启策略无效,则会重新新建pod资源。

      1、ReplicationController:简称RC,主要作用是确保pod以你指定的副本数运行,如果有容器异常退出,会自动创建新的pod来代替,而异常多出来的容器也会自动回收。

      2、ReplicaSet:简称RS,来取代 ReplicationController,没有本质的不同,只是名字不一样,并且 ReplicaSet 支持集合式的 selector(ReplicationController 仅支持等式),虽然也 ReplicaSet 可以独立使用,但建议使用 Deployment 来自动管理 ReplicaSet,这样就无需担心跟其他机制的不兼容问题(比如 ReplicaSet 不支持 rolling-update 但 Deployment 支持),并且Deployment还支持版本记录、回滚、暂停升级等高级特性。

        帮助用户管理无状态的pod资源,精确反应用户定义的目标数量,但是ReplicaSet不是直接使用的控制器,而是使用Deployment。

        主要三个组件组成:

        1)用户期望的pod副本数量

        2)标签选择器,判断哪个pod归自己管理

        3)当现存的pod数量不足,会根据pod资源模板进行新建

      3、Deployment:

         管理无状态应用,支持滚动更新和回滚功能,还提供声明配置

      4、statefulset:

        管理有状态的

      5、daemonset:

        用于确保集群中的每一个节点,只运行特定的pod副本,通常用于实现系统级后台任务比如elk

      6、job:

        只要完成就退出,不需要持续后台运行

      7、cronjob:

        周期性任务控制器,不需要持续后台运行。

  • 相关阅读:
    linux每日命令(31):tar命令
    Django——model基础
    Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)
    Django
    linux每日命令(30):Linux 用户及用户组相关文件、命令详解
    linux每日命令(29):chown命令
    20170430深圳Meetup
    静态库嵌套引用问题
    JD-Store购物网站复盘——20170312
    20170305Meetup Git、heroku drop db
  • 原文地址:https://www.cnblogs.com/liuyam/p/13499689.html
Copyright © 2011-2022 走看看