zoukankan      html  css  js  c++  java
  • k8s核心组件和术语

    Kubernets是什么

    1. 基于容器技术的分布式架构方案。
    2. 开放的开发平台。  
    3. 完备的分布式支撑平台。

    Master

      Master指的是集群控制节点,每个k8s集群里需要有一个Master节点来负责整个集群的管理和控制,基本上k8s的所有控制命令都发给它,它来负责具体的执行过程。为了实现高可用,部署多个Master,Master节点上运行着以下一组关键进程。

      Kubernets API Server:提供了HTTP Rest接口的关键服务进程,是Kubernets里所有资源的增删改查等操作的唯一入口,也是集群控制的入口进程。

      Kubernets Controller Manager:Kubernets里所有资源对象的自动化控制中心,管理集群的所有资源。

      Kubernets Scheduler:负责资源调度的进程。

    另外,Master节点上还需要启动一个etcd服务,Kubernets里的所有资源对象的数据全部保存在ectd。

    Node

      除了Master,Kubernets集群中的其他机器被称为Node节点,Node节点可以是虚拟机也可以是物理机。Node节点是集群中工作负载节点,当某个Node宕机后,其上的工作负载会自动转移到其他节点上。

      每个Node都有以下关键进程。

       kubelet:复杂Pod对应的容器的创建,启动,停止等任务,同时与Master协作,实现集群管理的功能。

       kube-proxy:实现Kubernets Service的通信于负载均衡机制。

       Docker Engine:DOcker引擎。

    Pod

      Pod是k8s中最重要也是最基本的概念,每个Pod内包含一个特殊的根容器(Pause容器),Pause容器对应的镜像属于k8s平台的一部分,除了Pause容器外,每个Pod还包含至少一个或多个用户业务容器。Pod的设计理念,(当你想包含一个已经存在的东西,你得弄出一个比已有东西更大概念)。Pod里面多个业务容器共享Pause容器的IP,共享Pause容器挂接的Volume,Pod分为俩类,普通Pod和静态Pod,静态Pod不存放在k8s的ectd中存储,而是存放在本地Node的文件中,因此只能在本Node内存在。

    Label

      Label是k8s系统中另外一个概念,一个Label是一个key-val的键值对,Label可以附加到任何资源对象上。给某个资源对象定一个Label就相当于给它打了一个标签,随后可以通过Label Selector查询和筛选拥有某些Label的资源对象。

      1.kube-controller进程通过资源对象RC上定义的Label Selector来筛选要监控的Pod副本的数量。

      2.kube-proxy进程通过Service的Label Selector来选择对应的Pod,自动建立起每个Service到对应Pod的请求转发路由表,从而实现Service的负载均衡。

      3.通过对某些Node定义特定的Label,并且在Pod定义文件中使用NodeSelector这种标签调度策略,kube-scheduler 可以实现Pod定向调度的特性。

    Replication Controller

      RC定义了Pod的副本数量在任意时刻都符合某个预定值,所以RC的内容如下。

      1.Pod期待的副本数。

      2.用户筛选目标Pod的Label Selector

      3.当Pod的副本数量小于预期数时,创建新Pod的模板。

    Deployment

      引入Deployment是为了解决Pod的编排问题。Deployment相对于RC的最大一个升级就是我们可以随时知道部署的进度。

    Horizontal Pod AutoScaler

      HPA为对应用自定义指标进行自动扩容和缩容的功能进行增强。它是k8s内的一种资源对象,通过追踪分析RC控制的所有目标Pod的负载变化情况,来确定是否需要针对性的调整目标Pod的副本数。

      1.CPU 使用率百分比

      2.应用程序自定义指标,比如TPS,QPS。

    StatefulSet

      在k8s中,Pod的管理对象RC,Deployment,DaemonSet和Job都是面向无状态的服务,但现实中有很多服务是有状态的,特别是一些中间件集群,如MySQL,ZK。它们每个节点都有自己的身份ID,集群规模固定。

    Service

      k8s里面每个Service其实就是微服务架构中的一个微服务,它定义了一个服务的访问入口地址,前端应用通过这个入口地址访问其背后一组由Pod副本组成的集群实例,Service与其后端Pod副本集群之间则是通过Label Selector来实现无缝对接,而RC的作用实际上保证Service的服务能力和服务质量始终处于预期的标准。

    IP

      k8s集群内存在三种IP。

      1.Node IP,物理机的IP。

      2.Pod IP,Pod的IP地址。它是Docker Engine根据Docker0网桥来分配的。

      3.Cluster IP:Service IP地址。Cluster IP是一个虚拟IP,但更像是一个伪造的IP,

        3.1.Cluster IP仅仅作用于Kubernets Service这个对象,并由Kubernetes管理和分配IP地址。

        3.2.Cluster IP无法被ping,因为不存在网络实体来响应(Ping 协议是网络层协议)

        3.3.Cluster IP只能结合Service Port 组成一个具体的通信端口。

        3.4.在Kubernets集群之内,Node IP网,Pod IP于Cluster IP之间的通信采用K8s自己设计的一种特殊的路由规则。

    Volume

      Volume中文名为存储卷,它是Pod中能被多个容器共享的目录。它的生命周期和Pod相关,k8s支持多种存储卷,如GlusterFS,Ceph等先进的分布式文件系统。

    Namespace

      Namespace用于实现多租户的资源隔离。Namespace通过将集群内部的资源对象分配到不同的Namespace中,形成逻辑上分组的不同项目或用户组,便于不同的分组在共享使用整个集群的资源同时还能被分别管理。

    Annotation

      Annotation与Label类似,也使用key-val的形式,不同的是Label有严格命名规则,它定义K8s对象的元数据,而Annotation则是用户任意定义的附加信息,以便于外部工具进行查找。

  • 相关阅读:
    OpenCV2:总结篇 PS算法实现
    DirectX9:第四部分 顶点着色器
    DirectX9:基础篇 第一章 初始化Direct3D
    OpenCV2:高中篇 图像锐化技术-边缘检测算子
    他山之石:C++书籍推荐
    C89:论回调函数
    OpenCV2:幼儿园篇 第六章 图像转换
    四维空间引发-维度空间(0-10)来自我的教授的班长
    802.11全家
    提示窗UIAlertView与UIAlertController的用法(持续更新中)
  • 原文地址:https://www.cnblogs.com/shuiyonglewodezzzzz/p/11048622.html
Copyright © 2011-2022 走看看