【Kubernetes】基本概念介绍

What?

      Kubernetes是一个基于容器技术的分布式架构方案,是一个集群管理系统,一个完备的分布式系统支撑平台。它具有完备的集群管理能力,包括多层次的安全防护和准入机制,多租户应用支撑能力,透明的服务注册和服务发现机制,内建智能负载均衡器,强大的故障发现和自我修复能力,服务滚动升级和在线扩容能力,可扩展的资源自动调度机制,以及多粒度的资源配额管理能力。

WHY?

       如果我们引入了kubernetes,就不用再费心负载均衡器的选型和部署实施的问题,不必考虑引入或自己开发一个复杂的服务治理框架,不必头疼于服务监控和故障处理模块的开发。可以给我们节省不少于30%的开发成本,让我们的精力更加集中于业务本身。由于Kubernetes提供了强大的自动化机制,系统后期的运维难度和运维成本大幅度降低。 目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率最大化。

一张导图

 


Kubernetes Cluster


①Master in graphs:

           Master指的是集群控制节点,每个K8s集群都需要一个Master 节点来负责整个集群的管理和控制。

扫描二维码关注公众号,回复: 1068869 查看本文章

          其中运行着一组关键进程:

  • Kubernetes API Server: 提供了HTTP Rest接口的关键服务进程,是所有资源操作(CRUD)的唯一入口。
  • Kubernetes Controller Manager:所有资源对象的自动化控制中心(大总管)
  • Kubernetes Schedule:负责资源调度(Pod)的进程(调度室)
  • etcd Server进程:资源对象的数据保存在这里。

②Node

        除了Master的其他机器,被称为Node节点,可以是一台物理主机,也可以是虚拟机,是集群中的工作负载节点,会被Master分配一些工作负载(docker容器),当Node宕机时,其他工作负载会被转移到其他节点上。

  • Kubelet:负责Pod对应的容器的创建,启停,与Master密切协作,实现集群管理的基本功能。
                           它会向Master注册自己,也是kubernetes推荐Node的方式。
                            会定时向Master节点汇报自身情况。(长时间不报,就定为失联,Not Ready)
  • kube-proxy:实现kubernetes service的通信与负载均衡。
  • Docker Engine:docker引擎,负责本机的容器创建和管理。
    Node节点会动态添加到kubernetes集群中,前提是节点正确安装,配置和启动关键进程

③Pod
        
         
  •  一个Pod是在创建或部署kubernetes对象模型最小最简单的单元基本构建块。Pod表示集群上正在运行的进程。
  • pod封装了应用程序容器(一个或多个容器),存储资源。
  • Pod表示一个部署单元
  • pod为其组成容器组提供两种共享资源:网络和存储。 
          每个pod均分配一个唯一的IP地址(pod里面的容器共享此网络)。
  • 默认情况下,pod里面某个容器停止,kubernetes会自动检测到这个问题并且重新启动这个pod,(重启里面所有容器),如果pod所在的node宕机,则会把这个node上的所有pod重新调度到其他节点上。       

④Label标签
         
             一个label是一个key=value的键值对,其中key和value由用户自己指定,label可以附加到各种资源对象上。例如Node/Pod/Service /RC等。一个资源对象可以定义任意数量的label。同一个label也可以被添加到任意数量的资源对象上去。

⑤RC
 
                  RC(Replication Controller),定义了一个期望的场景,即声明某种Pod的副本数量在任意时刻都符合某个预期值,当我们定义了一个RC,并提交到kubernetes集群中后,Master节点上的Controller Manager组件就得到通知,定期巡检系统中当前存活的目标Pod,并确保目标Pod实例的数量刚好等于RC的值,不过逐渐被Replica Set 和Deployment这两个重要资源对象逐步替换了RC的作用。
  • Pod期待的副本数
  • 用于筛选目标Pod的label Selector
  • 当pod副本数量小于预期数量的时候,用于创建新Pod的Pod模板。
⑥Service

       Pod、RC等资源对象其实都是为Service做“嫁衣”的。
      

        前端应用(POD)通过这个service定义的这个服务访问入口的地址访问其背后的一组由Pod副本组成的集群实例。Service与其后端Pod副本集群之间则是通过Label selector来实现无缝对接的。RC保证Service的服务能力和质量始终处于预期标准。

小结:
       kubernetes的基本概念介绍到这里,接下来持续了解一下Devops这套理论,希望能看得到更广的天地。

猜你喜欢

转载自blog.csdn.net/binggetong/article/details/78997558