一、Pod的生命周期

init container -- Post start  --  running -- pre stop -- main container

创建Pod经历的过程:->apiServer->etcd保存->scheculer->etcd调度结果->当前节点运行pod(把状态发回apiServer)->etcd保存

Pod的状态:Pending  Running  Failed   Succeeded  Unkown

Pod生命周期中的重要行为:

1、初始化行为(init container)

2、容器探测:

    存活性状态检测(liveness):存活不代表容器能够提供服务。用于判断容器是否健康,如果不包含此探针,则默认Success,决定Pod状态。

    就绪性状态检测(readiness):容器中服务是否正常,是否能够提供服务。用于判断容器是否启动完成并准备接收请求。

    【存活性探测(spec.containers.livenessprobe)和就绪性探测(spec.containers.readinessprobe)都拥有以下三种探针:ExecAction、TCPSocketAction、HTTPGetAction】

    就绪性探测与service调度性存在重要关系。如果不做就绪性探测,只要标签匹配上,pod一旦创建就被绑定为service的后端, service直接将用户请求调度到已存活但未就绪的pod上,那么在一段时间内用户请求可能是失败的。

  3、容器的重启策略:

  pod.spec.restartPolicy <string>   # 容器的重启策略字段

  pod.spec.restartPolicy:#容器的重启策略。有三种,Always(只要退出就重启,默认),OnFailure(当容器终止运行且退出码不为0时, 由kubelet自动重启该容器),Never(只要退出就不重启)。kubelet重新启动的已退出容器将以指数退避延迟(10秒,20秒,40秒......)重新启动,上限为300s,并在成功执行十分钟后重置。

# Pod一旦调度成功,就永远在已调度的节点上,不会重新调度,除非节点挂了或pod被删除了,才会被重新调度。

  4、lifecycle

  启动后钩子(spec.containers.lifecycle.postStart):容器创建后立即执行,如果执行失败,容器终止,重启与否取决于重启策略。

  终止前钩子(spec.containers.lifecycle.preStop):exec  httpGet  tcpSocket

Tips:容器的command比lifecycle的postStart exec command先执行。

 二、常用命令

# kubectl logs            #获取pod 中的日志
# kubectl get pods --show-labels #展示所有pod的标签
# kubectl get pods -L app #显示有app标签的标签值
# kubectl get pods -l app,release #过滤出有标签app,release标签的pod资源
# kubectl label --help #给资源对象打标签
# kubectl get pods –l release=canary,app=myapp #等值标签选择器,“与”
# kubectl label nodes node1 disktype=ssd #给node1打标,disktype=ssd

# 许多资源支持内嵌字段,matchLabels或matchExpressions来定义标签选择器

matchLabels:直接给定键值

matchExpressions:基于给定的表达式来定义使用的标签选择器

{key:”KEY”,operator:”OPERATOR” ,values:[VALUE1,VALUE2,VALUE3]}   #操作符一般是逻辑表达式,(In、 NotIn),values的值必须为非空列表,(Exists、NotExists),values的值必须为空列表等。

3.Pod控制器应用进阶的更多相关文章

  1. 6and7.Pod控制器应用进阶

    Pod控制器应用进阶:imagepullpolicy: 镜像获取策略 Always,Never,IfNoPresent 暴露端口: portslabels 标签可以后期添加修改. ========== ...

  2. 05-kubernetes Pod控制器应用进阶

    目录 Pod 资源 标签 给资源打标签 标签选择器 Pod 生命周期 实际操作 livenessProbe 实战 livenessProbe exec 测试 livenessProbe httpGet ...

  3. Kubernetes 学习6 Pod控制器应用进阶

    一.资源配置清单 1.自主式Pod资源 2.资源的清单格式,大多数清单格式都遵循如下条件: a.一级字段:apiVersion(group/version),kind,metadata(name,na ...

  4. 五,pod控制器应用进阶

    目录 Pod 资源 标签 给资源打标签 标签选择器 Pod 生命周期 pod状态探测 livenessProbe 状态探测 livenessProbe exec 测试 livenessProbe ht ...

  5. Kubernetes 学习7 Pod控制器应用进阶2

    一.容器探测器 1.所谓的容器探测无非就是我们在里面设置了一些探针,或者称之为传感器来获取相应的数据作为判定其存活与否或就绪与否的标准,目前k8s所支持的存活性和就绪性探测方式都是一样的. 2.k8s ...

  6. 6、Kubernetes Pod控制器应用进阶

    定义pod时,在spec字段中常用的定义字段有哪些? master ~]# kubectl explain pods.spec.containers KIND: Pod VERSION: v1 RES ...

  7. kubernetes系列07—Pod控制器详解

    本文收录在容器技术学习系列文章总目录 1.Pod控制器 1.1 介绍 Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无 ...

  8. 9.Pod控制器概念和基本操作2

    利用一个简单的例子来启动一个deployment的Pod控制器 [root@master song]# cat deploy.yml apiVersion: apps/v1 kind: Deploym ...

  9. k8s学习笔记之六:Pod控制器(kube-controller-manager)

    第一章.什么是kube-controller-manager? Controller Manager 由 kube-controller-manager 和 cloud-controller-mana ...

随机推荐

  1. win 10 系统激活

    win10企业版永久激活方法?win10企业版是针对企业用户推出的版本,随着win10系统的不断完善,现在越来越多的人选择升级win10,升级完系统就需要激活它.那么今天就为大家分享一下怎么永久激活w ...

  2. 关于 if __name__ == '__main__':的使用

    当是用  if __name__ == '__main__': 时,下面调用函数只是在当前脚本调试, 而我们需要在别处导入这个脚本中的类或者函数时,这个if __name__ == '__main__ ...

  3. harbor设置开机自启

    [root@bogon harbor]# vi /lib/systemd/system/harbor.service [Unit]Description=RedisAfter=network.targ ...

  4. 启动elasticsearch-head显示集群健康值:未连接

    ES启动后,进行es header访问的话,使用localhost:9100会显示集群健康值未连接 2种情况(均为windows10环境下): 1:未在elasticsearch-6.8.0\conf ...

  5. cocos2dx[3.2](2) 3.x巨变

    [v3.0 亮点]     > 使用 C++(C++11) 的特性取代了 Objective-C 的特性     > 优化了 Labels     > 优化了渲染器(比 v2.2 更 ...

  6. java 换包

    1.进入目录:cd /opt/cw_isc/ 2.查看:ls 3.查看进程:ps -ef|grep aw-sc-package-all.jar 4.杀死进程kill -9 3982 5.查看进程:ps ...

  7. Neo4j下载与使用

    Neo4j 官网 : https://neo4j.com/ Neo4j 国内: http://neo4j.com.cn/topic/5b003eae9662eee704f31cee http://we ...

  8. spring boot-15.缓存

    为了减轻数据库压力和提高访问速度,从spring3.1开始映入了基于注解的缓存机制. 1.Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, ...

  9. [转帖]2018年全球ERP软件行业市场规模与发展趋势分析 云ERP将兴起【组图】

    2018年全球ERP软件行业市场规模与发展趋势分析 云ERP将兴起[组图] https://www.qianzhan.com/analyst/detail/220/190215-4b1d6868.ht ...

  10. Linux mv命令(7)

    mv命令,move的缩写,顾名思义是移动文件的意思.其实就相当于剪切操作,而前面说的cp命令,就是复制粘贴,这两个有什么区别想必不用多说. 基本使用 使用格式 mv 源文件 目标文件 我的根目录下有 ...