最近在研究K8S的使用,小有心得,特将自己这几天的学习心得写下。
K8S的MASTER和NODE的组件构成就不说了,都可以查到。这里主要介绍在K8S里面我们常用的几个资源组件的介绍和基本的原理。
第一个资源组件pod,pod是K8S里的最小管理单元,pod可以由几个容器组成,也可以由多个容器组成,但是最少由一个容器,其中还有一个pause容器(主要用于给pod内的容器提供对外的地址)

第二个资源组件就是deployment,这个组件简单说就是用于保证pod的数量的,创建deployment的时候同时也会创建pod,所以不需要单独创建pod。这里面主要就是要注意在定义metadata和spec属性时,metadata里的selector标签筛选器筛选的标签要和sepc里定义的容器的标签一致,同时在spec中需要添加容器的端口以及对外暴露的端口信息。

第三个资源组件就是statefulset,这个资源组件和deployment的作用对象不一样,deployment是针对无状态服务的,statefulset是针对有状态服务的(该服务有这些特点,StatefulSet除了要与PV卷捆绑使用以存储Pod的状态数据,还要与Headless  Service配合使用,即在每个StatefulSet定义中都要声明它属于哪个Headless Service。Headless Service与普通Service的关键区别在于,它没有Cluster IP,如果解析Headless Service的DNS域名,则返回的是该service对应的全部Pod的Endpoint列表。)

第四个资源组件就是service,这里service主要分为两种,一种是关联deployment的,一种是关联statefulset的,后一种需要设置clusterIP=none,同时关联statefulset里的service name参数。

第五个资源组件就是ingress,如果service是基于4层负载均衡的,那么ingress就是基于7层负载均衡的。

第六个资源组件就是hpa,如果说deployment实现了手动控制pod数量,那么hpa则是实现了动态的pod管理维护。

以上6个资源组件就组成了K8S管理集群的核心。