• k8s基本对象及架构


    一.基本对象

    pod

    pod是最小的部署单元,一个pod由一个或多个容器组成,pod中的容器共享存储和网络,在同一台docker主机上运行。

    service

    service是一个应用服务的抽象,定义了pod的逻辑集合和访问这个pod集合的策略。

    service代理pod集合,对外表现是一个访问入口,分配一个集群ip地址,来自这个ip的请求将负载均衡转发给后端pod中的容器。

    service通过Lable Selector选择一组pod提供服务。

    volume

    数据卷,共享pod中容器使用的数据。

    namespace

    命名空间将对象逻辑上分配到不同的namespace,可以是不同的项目、用户等区分管理,并设定控制策略从而实现多用户,命名空间也成为虚拟集群。

    lable

    标签用于区分对象(比如pod、service),以键/值对形式存在,每个对象可以有多个标签,通过标签关联对象。

    二.基于基本对象的高层次抽象

    replicaSet

    下一代Reolication Controller,确保任何给定时间内指定的pod副本数量,并提供声明式更新等功能。

    RC与RS的唯一区别是lable selector支持不同,RS支持基于集合的新标签,RC仅支持基于等式的标签,RS会逐步取代RC。

    deployment

    deployment是一个更高层次的API对象,它管理replicaSet和pod,并提供声明式更新等功能。

    官方建议使用deployment管理replicaSet而不是直接使用replicaSet,即基本不需要直接操作replicaSets对象。

    statefulSet

    statefulSet适合持久性的应用程序,有唯一的网络标识符(IP),吃鸡存储,有序的部署、扩展、删除和滚动更新。

    daemonSet

    daemonSet确保所有(或一些)节点运行同一个pod,当节点加入kubernetes集群中,pod会被调度到该节点上运行,当节点被移除时,daemonSet的pod会被删除,删除daemonSet会清理它创建的所有pod。

    job

    一次性任务,运行完成后po被销毁,不再重新启动新容器,还可以定时运行任务。

    三.系统架构及组件功能

    1.master组件

    kube-apiserver:集群的统一入口,各组件协调者,以HTTP API提供接口服务,所有对象资源的增、删、改、查和监听操作都由APIServer处理后再提交给etcd存储。

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

    kube-scheduler:根据调度算法为新创建的pod选择一个node节点

    2.node组件

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

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

    docker或rocket/rkt:运行容器

    3.第三方服务

    etcd:分布式键值存储系统,用于保持集群状态,比如pod、service等对象信息。

  • 相关阅读:
    bootstrap modal 垂直居中对齐
    BootStrap同时显示多个Modal解决方案
    Echarts使用及动态加载图表数据 折线图X轴数据动态加载
    jQuery操纵DOM元素属性 attr()和removeAtrr()方法使用详解
    jQuery修改class属性和CSS样式
    JS中的substring和substr函数的区别
    select into from和insert into select from两种表复制语句区别
    SQL查询遍历数据方法一 [ 临时表 + While循环]
    JSSDK实现微信自定义分享---java 后端获取签名信息
    Spring 自带的定时任务Scheduled
  • 原文地址:https://www.cnblogs.com/Forever77/p/10701145.html
Copyright © 2020-2023  润新知