#####Kubernets快速入门########
##四组基本概念
1.Pod/Pod控制器
****Pod****
a.Pod是K8S里能够被运行的最小的逻辑单元(原子单元),最小单元并不是容器
b.1个pod里面可以运行多个容器,容器间共享UTS+NET+IPC名称空间(可以把pod理解成豌豆荚,每个容器就是一颗颗豌豆)
****Pod控制器****
a.Pod控制器是Pod启动的一种模板,用来保证在K8S里启动的Pod应该始终按照人们的预期运行(副本数、生命周期、健康状态检查)
;如果Pod不按照预期来,控制器会有相应动作来保证容器按预期来。
b.K8S内提供了众多的Pod控制器,常用的有以下几种:
。Deployment
。DaemonSet
。ReplicaSet
。StatefulSet
。Job
。Cronjob
2.Name/Namespce
****Name****
a.由于K8S内部,使用“资源”来定义每一种逻辑概念(逻辑功能);故每种“资源”都应该有自己的“名称”,用于区分;K8s是面向对象的,
每一种功能都是模板的实例化,所以要区分。
b.资源都有5个维度的信息:
。api版本(apiVersion)
。类别(kind);Deployment、pod、policy、list、service
。元数据(metadata):资源的名称就定义在这里边
。定义清单(spec)specifics:
。状态(status):
c. “名称”通常定义在“资源”的元数据信息里
****NameSpace(理解为分组)****
a.随着项目增多、人员增加、集群规模的扩大,需要一种能欧冠隔离K8S内各种“资源”的方法,这就是名称空间---将资源按什么特性分组,就像分班级一样。
b.名称空间可以理解为K8S内部的虚拟集群组
c.不同名称空间内的“资源”,名称可以相同;但是相同名称空间内的同种资源不能同名称----同班不同名,但不同班可以同名
d.合理的使用K8S的名称空间,使得集群管理员能够更好的对交付到K8S里的服务进行分类管理和浏览。
e.K8S里默认存在的名称空间有:default、kub-system、Kub-public;还可以自定义名称空间
f.查询K8S里特定“资源”要带上相应的名称空间
3.Lable/Lable选择器
****Lable****
a.标签是k8s特色的管理方式,便于分类管理资源对象。
b.一个标签可以对应多个资源,一个资源也可以有多个标签,它们是多对多的关系
c.一个资源拥有多个标签,可以实现不同维度的管理。
d.标签的组成:key=value
e.与表亲啊类似的,还有一种“注解” (annotations);但是标签定义更严格,不能超过63位,且以数字和字母组成,中间可以是下划线、
中划线、点组成
****Lable选择器****
a.给资源打上标签后,可以使用标签选择器过滤指定的标签(就是以什么标签规则找到自己要的资源)
b.标签选择器目前有两种:基于等值关系(等于、不等于)和基于集合关系(属于in、不属于not in、存在exsit)
c.许多资源支持内嵌标签选择器字段
。matchLables
。matchExpressions
4.Service/Ingress
****Service****
a.在K8S的世界里,虽然每个Pod都会被分配一个单独的Ip地址,但这个IP地址会随着Pod的销毁而消失。那消失了,我调用的任务是不是怎么才能继续调用这类资源?
b.Service就是用来解决这个问题的核心概念
c.一个Service可以看作一组提供相同服务的Pod的对外访问接口
d.Service作用于哪写Pod是通过标签选择器来定义的
****Ingress****
a.Ingress是K8s集群里的工作在OSI网络参考模型下,第7层的应用,对外暴漏的接口。
b.Service只能进行L4流量调度,表现形式是ip+POrt
c.ingress则可以调度不同业务、不同URL访问路径的业务流量
d.流程Ingress-->Service--->Pod
K8S学习笔记
最新推荐文章于 2024-10-19 20:09:26 发布