本文主要是介绍Kubenetes中Pod的概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Pod是由一组共享网络和存储的容器组成,它是部署的最小单元,一个pod相当于一个虚拟的主机,在这个Pod下的一组容器可以使用localhost互相访问,不同的Pod在同一个共享的网络空间下,可以使用pod的ip进行访问,pod的共享网络是这样实现的:在pod中会创建一个根容器pause容器,其他的业务容器会加入到这个pause容器下,由于在同一个namespace下他们的网络是共享的;pod的共享存储是这样实现的,通过容器数据卷,进行容器数据的持久化实现共享存储。
Pod的镜像拉取策略默认是不存在拉取,还支持总是拉取、从不拉取,从资源编排文件定义。
Pod的重启策略默认是总是重启,还支持异常退出重启、从不重启,从资源编排文件定义。
Pod支持健康检查,有三种方式:http请求方式、exec方式和tcp方式,http请求方式,返回正确的请求码即为检查成功;exec方式返回正确的执行码即为成功;Tcp方式,建立Tcp连接即成功。健康检查策略有两种:存活检查和就绪检查,存活检查:检查失败则会kill掉pod,然后根据pod重启策略进行重启;就绪检查:检查失败,在service移除pod,健康检查在资源描述文件进行定义。
Pod创建过程是这样:在Master节点发送创建pod请求,apiserver组件把pod创建请求保存到etcd,与此同时schedual组件监听Pod创建,一旦有pod创建请求,则schedule会根据节点调度算分选择节点发送请求,这个节点的kubelet组件会经apiserver组件去etcd查询创建pod的信息,根据这个信息运行一组docker容器,然后把结果经apiserver保存到etcd组件中。Pod的节点调度算分,还会受到:资源限制、节点选择器、亲和性和污点等因素的影响。资源限制:在资源编排文件定义限制资源,会选择满足限制的节点进行调度;节点标签选择器:给节点打标记,会选择满足标记的节点进行调度;亲和性:和节点标签选择器类似,包括硬亲和合软亲和,硬亲和:根据节点的标签进行选择节点;软亲和:尽量选择满足标记的节点。污点:给节点标记污点,影响节点调度,污点值有三种:一定不会被调度、尽量不会调度、一定不会调度并且驱逐该节点已有的pod到其他节点,可以在资源编排文件上配置污点容忍忽略污点。
镜像拉取策略:
pod资源限制:
pod重启策略:
健康检查:
pod创建流程:
节点亲和性:
污点:
这篇关于Kubenetes中Pod的概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!