kubernetes的7个核心概念

1、container

容器可以运行服务和程序,容器是独立运行的一个或一组应用。容器可以进行启动、开始、停止、删除等操作,每个容器都是相互隔离的。可以把容器看作是一个简易版的linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行其中的应用程序。

2、pod

在kubernetes系统中,pod是最小部署单元,一个pod包含一个或多个容器(一组容器的集合),pod是一个可以被创建、销毁、调度、管理的最小部署单元。kubernates为每个pod都分配了唯一的ip地址,称之为PodIP,一个pod里的多个容器共享podip地址,它负责外部跟容器之间进行通信。

3、controllers:控制器

kubernetes不会直接创建pod,而是通过controller来管理pod的,所以controller负责维护集群的状态,比如故障检测、自动扩展、滚动更新。控制器有replication controller、node controller、daemon set controller、deployment、statefulSet。

4、services

services是kubernetes最外围的单元,通过虚拟一个访问ip及服务端口,可以访问我们定义好的pod资源,是通过iptables的nat转发来实现,转发的目标端口为kube_proxy生成的随机端口。services代理pod集合对外表现是一个访问入口,分配一个集群ip地址,来自这个ip的请求将负载均衡转发后端pod中的容器,service通过lable selector选择一组pod提供服务。

5、job:一次性任务

一次性任务,运行完成后pod销毁,不再重新启动新容器。还可以任务定时运行。

6、cronjob:定时任务

cronjob其实就是在job的基础上加上了时间调度,我们可以:在给定的时间点运行一个任务,也可以周期性的在给定时间点运行。与linux中的crontab类似。

7、labels:标签

标签用于区分对象(比如pod和services),kubernetes中的任意对象都是通过label进行标识,label的实质是一系列的key/value键值对,其中key与value由用户自己指定。label可以附加到各种资源对象上,如node、pod、service、RC等,一个资源对象可以定义任意数量的label,可以通过label selector(标签选择器)查询和筛选资源对象。label是rc和service运行的基础,两者通过label来进行关联node上运行的pod

posted @ 2020-07-31 10:53  轩辕吊雷  阅读(160)  评论(0编辑  收藏  举报