1-Kubernetes基本概念

Posted sellsa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1-Kubernetes基本概念相关的知识,希望对你有一定的参考价值。

Kubernetes中的大部分概念如NodePodReplication ControllerService等都可以看作一种"资源对象",几乎所有的资源对象都可以通过Kubernetes提供的kubectl工具(或者API编程调用)执行增、删、改、查等操作并将其保存在etcd中持久化存储。从这个角度来看,Kubernetes其实是一个高度自动化的资源控制系统,它通过跟踪对比etcd库里保存的"资源期望状态"与当前环境中的"实际资源状态"的差异来实现自动控制和自动纠错的高级功能。

 

Master

Kubernetes里的Master指的是集群控制节点,每个Kubernetes集群里需要一个Master节点来负责整个集群的管理和控制,基本上Kubernetes所有的控制命令都是发给它,它来负责具体的执行过程,我们后面所有执行的命令基本上都是在Master节点上运行的。Master节点通常会占据一个独立的服务器或者一个虚拟机。一个主要的原因是他太重要了,它是整个集群的"首脑"。如果它宕机不可用,那么我们所有的控制命令将失效。

Master节点上运行着以下一组关键进程:

  • Kubernetes API Server(kube-apiserver),提供了HTTP Rest接口的关键服务进程,是Kubernetes里所有资源的增,删,改,查等操作的唯一入口,也是集群控制的入口进程
  • Kubernetes Controller Manager(kube-controller-manager), Kubernetes里所有资源对象的自动化控制中心,可以理解为资源对象的"大总管"
  • Kubernetes Scheduler(kube-scheduler), 负责资源调度(Pod调度)的进程,相当于公交公司的"调度室"

其实Master节点上往往还启动了一个etcd Server进程,因为Kubernetes里的所有资源对象的数据全部保存在etcd中的。

 

Node

除了Master,Kubernetes集群中的其他机器称为Node节点。与Master一样,Node节点可以是一台物理机,也可以是一台虚拟机。Node节点才是Kubernetes集群中的工作负载节点,每个Node都会被Master分配一些工作负载(Docker容器),当某个Node宕机时,其上的工作负载会被Master自动转移到其他节点上去。

每个Node节点上都运行着以下一组关键进程:

  •  kubelet:负载Pod对应的容器的创建、启停等任务,同时与Master节点密切协作,实现集群管理的基本功能
  •  kube-proxy:实现Kubernetes Service的通信与负载均衡机制的重要组件
  •  Docker Engine( docker):Docker引擎,负载本机的容器创建和管理工作

Node节点可以在运行期间动态添加到Kubernetes集群中,前提是这个节点上已经正确安装配置和启动了上述关键进程,在默认情况下kubelet会向Master注册自己。一旦Node被纳入集群管理范围,kubelet进程会定时向Master节点汇报自身的情报,例如操作系统版本、Docker版本、机器的CPU和内存情况,以及有哪些Pod在运行等,这样Master可以获知每个Node的资源使用,并实现高效均衡的资源调度策略。而某个Node超过指定时间不上报信息时,会被Master判定为"失联", Node的状态会被标记为不可用(Not Ready), 随后Master会触发"工作负载大转移"的自动流程

以上是关于1-Kubernetes基本概念的主要内容,如果未能解决你的问题,请参考以下文章

再战 k8s:k8s 概述

GWAS基本概念

WEBRTC基本概念

RocketMQ基本概念介绍

Threejs基本概念(六)加载器

GAN的基本概念