kubernetes的基本概念

什么是容器?

容器就是视图隔离、资源可以限制、独立文件系统的进程集合。在以往的服务中,很多进程都存在一些特点:进程之间可以相互通信,并且是可见的;进程与进程之间可以在相同的文件上进行读写;进程可能会占用过多的资源,导致其他进程低效。这些问题的解决办法是:使用namespace技术在资源上试图进行隔离;使用chroot技术来解决文件之间的问题;使用Cgroup来解决进程资源的问题。在这样的一个催生下,便可以使用这些特征来定义这些进程集合,那便是容器。

什么是镜像?

容器运行所需要的所有文件的集合称之为镜像。

容器与VM

VM利用Hypervisor虚拟化技术来模拟CPU、内存等硬件资源,这样就可以在宿主机上面建立一个Guest OS,每一个OS都有一个独立的内核,这样应用之间是相互独立的,那么很好的提供了一个隔离,但是这样的缺点便是将资源交给虚拟化,无法充分利用计算资源,并且占据着巨大的磁盘资源。这个时候即便催生了容器。

容器是针对进程而言的,无需Guest OS,只需要独立的文件系统,所有的文件隔离都是进程级别,那么相比于VM要更快一些,但是进程级别的隔离并没有VM那么好。

什么是Kubernetes Master?

kubernetes里的Master指的是集群控制节点,每一个kubernetes集群需要有一个Master节点来负责整个集群的管理和控制,基本上kubernetes的所有控制命令都是在Master节点上运行。

什么是Kubernetes Node?

Node节点是kubernetes集群中的工作负载节点。可以是一台物理主机,也可以是一台虚拟机。

什么是Pod?

是kubernetes的最小调度资源以及资源单元。它是由一个或者多个容器组成。

什么是Replication Controller?

RC是kubernetes系统中的核心概念之一,它定义了一个期望的场景,即声明某种Pod的副本数量在任意时刻都符合某一个预期值。(与Kubernetes代码中模块Replication Controller同名,所以升级成了一个Replica Set)

什么是Replica Set?

与Replication Controller不同的是,Replica Set支持基于集合的Label Selector,而与RC只支持基于等式的Label Selector。

什么是Volume?

Volume就是卷的概念,是用来管理kubernetes的存储的,它可以挂载在一个或者多个容器的指定路径下,支持多种后端存储的抽象,比如像ceph,GlusterFS。

什么是Horizontal Pod Autoscaler?

通过追踪分析RC控制所有的目标Pod的负载变化情况,来确定那些需要针对性的调整资源;这就是HPA。

什么是Deployment?

Deployment是Pod的更上一层的抽象,它可以定义Pod的副本数,以及这个Pod的版本等信息。一般都是使用Deployment来做应用真正的管理。

什么是Service?

Service提供一个或者多个Pod实例稳定的访问地址。支持多种访问方式:ClusterIP、NodePort、LoadBalancer。

什么是Namespace?

namespaces是用来做内部的逻辑隔离的,包括了权限、资源等。

什么是annotation?

用key-value的方式进行定义,但是它可以添加用户自定义的附加信息,比如build信息,release信息等。

什么是Label?

Label是kubernetes系统中的一个核心概念。一个Label是一个key-value的键值对,其中key与value由用户自己指定。Label可以附加到各种资源对象上,例如:Node、Pod、Service、RC等,一个资源对象可以定义任意数量的Label。

Last updated