2019独角兽企业重金招聘Python工程师标准>>>
Pod介绍
[1]. Endpoint
k8s会根据service关联到pod的podIP信息组合成一个endpoint。Endpoint :Pod_IP+container_port .它代表了此Pod的一个服务进程对外通讯的地址。
[2]. Event
Event: 是一个事件的记录,记录事件的最早生成时间,最后重现时间,重复次数,发起者类型,以及导致此事件的原因等众多信息。Event是排查故障的重要参考.node和Pod都具有Event记录。
[3] ConfigMap
ConfigMap:资源对象, 可以被用来1.设置Pod环境变量的值,2.在容器里设置命令行参数,3.在数据卷里面创建config文件等。目的把应用的代码和配置分开,通过配置configmap管理pod,类似于linux下的/etc/统一存放各种服务的配置文件。创建好ConfigMap后可以通过通过环境变量方式使用ConfigMap和volumeMount形式引用。
[4]. Pod生命周期状态
Pending :已经创建Pod但Pod内容器还未创建成功。
Running:Pod已经成功创建.至少有一个容器正常运行.
Succeeded:Pod内容器已成功推出。
Failed:Pod内至少有一个容器退失败。
Unknown:由于某种原因无法获取容器状态。
[5]. Pod的重启策略
Pod的重启根据RestartPolicy的设置进行相应操作
Always:当容器失效时,kubelet自动重启它
OnFailure:当容器终止运行,且退出代码不为0时,kubelet重启它
Never:无论容器状态如何都不重启它。
具体:https://k.i4t.com/kubernetes_pod666.html
[6]. Pod的健康检查
对Pod的健康状态检查可以通过两类探针来检查:LivenessProbe和ReadinessProbe
livenessProbe 活性探针;用于判断容器是否存活(Running状态)如果不健康则kubelet将杀死容器并通过重启策略做出相应处理。
ReadinessProbe 可用性探针。判断容器是否为可用状态(可以接受请求)如果探测失败。则更改Pod状态。Endpoint Controller将从service中删除包含容器的Pod中的Endpoint.
[7]. Pod的调度
1.全自动调度:Deployment/RC
KubernetesMaster上的Scheduler服务(kube-scheduler进程)负责实现Pod的调度,这个调度过程通过一系列复杂的算法,最终为每个Pod计算出一个最佳的目标节点,这一过程是自动完成的,通常我们无法指定Pod最终会被调度在哪个节点上此过程用户无法干预调度过程和结果。
2.定向调度
Kubernetes也提供了丰富的调度策略,用户只需要在Pod的定义中使用NodeSelector NodeAffinity PodAffinity Pod 驱逐等更加细粒的调度策略设置,就能完成对Pod的精准调度。在实际强开中,可以将pod调度到指定的一些Node上,可以通过Node的标签(Label)和Pod的nodeSelector属性相匹配,来达到目的。https://k.i4t.com/kubernetes_pod666.html