zoukankan      html  css  js  c++  java
  • Kubernetes基本概念

    一、概念图

     

    二、基本概念

      Node:Node是kubernates的工作机器,可以是物理机或者是虚拟机。根据角色分类为主控节点(Master)与从属几点(Minion)。Master提供调试与控制功能,负责整个集群的管理工作。

      Pod:Pod是Kubernates上的基本操作单元,相关的一个或者多个容器构成一个Pod,一个Pod中容器,共享相同的Volume和Network namespace。

      Service: Services也是Kubernetes的基本操作单元,是真实应用服务的抽象。Kubernete用于定义一系列Pod逻辑关系与访问规则,服务的目标是为了隔绝前端与后端的耦合性。通过服务Proxy的port和服务selector决定服务请求传递给后端提供服务的容器,对外表现为一个单一访问接口,外部不需要了解后端如何运行。

      Replication Controller:是Kubernates副本控制器,确保集群中有指定数量的Pod副本

      Label:label是附加在各个对象Node,pod,service上的键值对,是Kubernete中最重要的节点分组方法,用于区分Pod、Service、Replication Controller。每个Pod、Service、 Replication Controller可以有多个label,但是每个label的key只能对应一个value。Labels是Service和Replication Controller运行的基础,Kubernete通过Label来选择正确的容器,将访问Service的请求转发给后端提供服务的多个容器。同样,Replication Controller也使用labels来管理通过pod 模板创建的一组容器。

    三、基本组件

      一、Master

      (1)、kube-apiserver:kube-apiserver用于暴露Kubernetes API。任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行

      (2)、ETCD:etcd是Kubernetes提供默认的存储系统,保存所有集群数据,使用时需要为etcd数据提供备份计划。

      (3)、kube-controller-manager:运行管理控制器,他们是集群中处理常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,他们都被编译成单个二进制文件,并在单个进程中运行。包括

    •   节点控制器:Node
    •   副本控制器:服务维护系统的中每个副本中的Pod
    •   端点控制器:填充Endpoint对象,连接Services&Pods
    •   Serivce Account和token控制器:为新的Namespace创建默认账户访问API Token.

      (4)、cloud-controller-manage:云控制器管理器负责与底层云提供商的平台交互。云控制器管理器是Kubernetes版本1.6中引入的,目前还是Alpha的功能。

    云控制器管理器仅运行云提供商特定的(controller loops)控制器循环。可以通过将--cloud-provider flag设置为external启动kube-controller-manager ,来禁用控制器循环。

    cloud-controller-manager 具体功能:

    • 节点(Node)控制器
    • 路由(Route)控制器
    • Service控制器
    • 卷(Volume)控制器

      (5)kube-scheduler:监视新创建没有分配到Node的Pod,为Pod选择一个Node。

      (6)、插件 addons:插件(addon)是实现集群pod和Services功能的 。Pod由Deployments,ReplicationController等进行管理。Namespace 插件对象是在kube-system Namespace中创建。

      (7)、DNS:虽然不严格要求使用插件,但Kubernetes集群都应该具有集群 DNS。群集 DNS是一个DNS服务器,能够为 Kubernetes services提供 DNS记录。由Kubernetes启动的容器自动将这个DNS服务器包含在他们的DNS searches中。

      (8)、用户界面:kube-ui提供集群状态基础信息查看。

      (9)、容器资源监测:容器资源监控提供一个UI浏览监控数据。

      (10)、Cluster-level Logging:Cluster-level logging,负责保存容器日志,搜索/查看日志。

      二、Node 

      节点组件运行在Node,提供Kubernetes运行时环境,以及维护Pod。

      (1)、kubelet:kubelet是主要的节点代理,它会监视已分配给节点的pod,具体功能:

    • 安装Pod所需的volume。
    • 下载Pod的Secrets。
    • Pod中运行的 docker(或experimentally,rkt)容器。
    • 定期执行容器健康检查。
    • Reports the status of the pod back to the rest of the system, by creating a mirror pod if necessary.
    • Reports the status of the node back to the rest of the system.

      (2)、kube-proxy:kube-proxy通过在主机上维护网络规则并执行连接转发来实现Kubernetes服务抽象。

      (3)、docker:docker用于运行容器。

      (4)、RKT:rkt运行容器,作为docker工具的替代方案。

      (5)、supervisord:supervisord是一个轻量级的监控系统,用于保障kubelet和docker运行。

      (6)、fluentd:fluentd是一个守护进程,可提供cluster-level logging.。

  • 相关阅读:
    阿里巴巴的云原生应用开源探索与实践
    Helm 3 发布 | 云原生生态周报 Vol. 27
    带你上手一款下载超 10 万次的 IDEA 插件
    最强CP!阿里云联手支付宝小程序如何助力双11?
    媲美5G的Wifi网速、“备战”资产一键领……揭秘双11小二背后的保障力量
    dubbo-go 的开发、设计与功能介绍
    饿了么交付中心语言栈转型总结
    数据一致性检测的应用场景与最佳实践
    2684亿!阿里CTO张建锋:不是任何一朵云都撑得住双11
    《DNS稳定保障系列3--快如闪电,域名解析秒级生效》
  • 原文地址:https://www.cnblogs.com/yanyouqiang/p/9389027.html
Copyright © 2011-2022 走看看