1. Pod

. Pod是K8S里能够被运行的最小的逻辑单元(原子单元)
. 1个Pod里面可以运行多个容器,他们共享UTS+NET+IPC名称空间
. 可以把Pod理解成豌豆荚,而同一Pod内的每个容器都是一颗颗豌豆
. 一个Pod里运行多个容器,又叫:边车(SideCar)模式

2. Pod控制器

. Pod控制器是Pod启动的一种模板,用来保证在K8S里启动的Pod应始终按照人们的预期运行(副本数,生命周期,健康状态检查…)
. K8S内提供了众多的Pod控制器,常用的有以下几种:
. Deployment
. DaemonSet
. ReplicaSet
. StatefulSet
. Job
. Cronjob

3. Name

. 由于K8S内部,使用”资源”来定义每一种逻辑概念(功能),故每种“资源”,都应该有自己的“名称”
. “资源”有API版本(apiVersion)类别(kind)、元数据(metadata)、定义清单(spec)、状态(status)等配置信息
. “名称”通常定义在“资源”的“元数据”信息里

4. Namespace

. 随着项目增多、人员增加、集群规模的扩大,需要一种能够隔离K8S内各种“资源”的方法,这就是名称空间
. 名称空间可以理解为K8S内部的虚拟集群组
. 不同名称空间内的“资源”,名称可以相同,相同名称空间内的同种“资源”,“名称”不能相同
. 合理的使用K8S的名称空间,使得集群管理员能够更好的交付到K8S里的服务进行分类管理和浏览
. K8S里默认存在的名称空间有: default、kube-system、kube-public
. 查询K8S里特定“资源”要带上相应的名称空间

5. Label

. 标签是k8s特色的管理方式,便于分类管理资源对象
. 一个标签可以对应多个资源,一个资源也可以有多个标签,它们是多对多的关键系。
. 一个资源拥有多个标签,可以实现不同维度的管理
. 标签的组成: key=value
. 与标签类似的,还有一种“注解”(annotations)

6. Label选择器

. 给资源打上标签后,可以使用标签选择器过滤指定的标签
. 标签选择器目前有两个: 基于等值关系(等于、不等于)和基于集合关系(属于、不属于、存在)
. 许多资源支持内嵌标签选择器字段
. matchLabels
. matchExpressions

7. Service

. 在K8S的世界里,虽然每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失
. Service(服务)就是用来解决这个问题的核心概念
. 一个Service可以看做一组提供相同服务的Pod的对外访问接口
. Service作用于哪些Pod是通过标签选择器来定义的

8. Ingress

. Ingress是K8S集群里工作在OSI网络参考模型下,第7层的应用,对外暴露的接口
. Service只能进行L4流量调度,表现形式是 ip+port
. Ingress则可以调度不同业务与、不同URL访问路径的业务流量