首页 > 其他分享 >#我的新年Flag#Pod生命周期

#我的新年Flag#Pod生命周期

时间:2023-02-08 23:01:59浏览次数:50  
标签:容器 生命周期 name demo init Flag io Pod

生命周期流程
  • 创建主容器(containers)是必现的操作;
  • 初始化容器(initContainers)
  • 容器启动后钩子
  • 启动探测、存活性探测(livenessprobe)、就绪性探测(readnessprobe)
  • 容器终止前钩子
Pod声明周期几个状态
  • Pending:创建pod资源并存入etcd中,尚未完成调度
  • ContainerCreating: Pod调度完成,被分配到指定Node上。处于容器创建过程中,通常是在拉取镜像的过程中
  • Running:Pod 包含所有容器都已经成功创建,并且成功运行起来
  • Succeeded:Pod中的所有容器都已经成功终止且不会被重启
  • Failed: 所有容器都意见终止,但至少有一个容器终止失败
容器探测
  • Startup: 探测容器是否正常运行
  • Liveness:判断容器师傅处于running 状态,根据重启策略决定是否重启容器
  • Readiness:判断容器是否准备就绪并对外提供服务,可将容器设置为不可用,不接受service转发的请求
三种探测Pod探针
  • ExecAction: 容器中执行一个命令,并根据返回的状态码进行诊断,只有返回0为成功
  • TCPSocketAction: 通过与容器的某个TCP端口尝试建立连接
  • HTTPGetAction: 通过向容器IP地址的某个端口的path发起HTTP GET请求
initContainer案例
  • Yaml

[root@k8smaster4 ~]# cat init-demo.yaml 
apiVersion: v1
kind: Pod
metadata:
name: initcontainer-demo
namespace: default
labels:
kubernetes.io/name: MyApp
name: init-test
spec:
initContainers:
- name: init-myservice
image: docker.io/library/busybox:1.28
imagePullPolicy: IfNotPresent
command: ['sh', '-c', "until nslookup myservice.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for myservice; sleep 2; done"]
- name: init-mydb
image: docker.io/library/busybox:1.28
imagePullPolicy: IfNotPresent
command: ['sh', '-c', "until nslookup mydb.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for mydb; sleep 2; done"]
containers:
- name: myapp-container
image: docker.io/library/busybox:1.28
imagePullPolicy: IfNotPresent
command: ['sh', '-c', 'echo The app is running! && sleep 3600']

  • 查看Pod状态

[root@k8smaster4 ~]# kubectl get -f init-demo.yaml

  • 查看Pod详细信息

[root@k8smaster4 ~]# kubectl describe -f init-demo.yaml

  • 查看指定容器日志

[root@k8smaster4 ~]# kubectl logs initcontainer-demo -c init-myservice

标签:容器,生命周期,name,demo,init,Flag,io,Pod
From: https://blog.51cto.com/u_11726705/6044948

相关文章

  • POD状态整理(持续更新)
    penddingPod一直停留在Pending状态,可能表示,该Pod不能被调度到某一个节点上------我遇到的一个情况确实是这样的,因为我要mount的卷是在worker1上的,由于pod运行时,我没有......
  • pod
    1.强制删除kubectldeletepodhook-demo1--force--grace-period=0 默认所有的优雅退出时间都在30秒内。kubectldelete命令支持--grace-period=<seconds>选项,......
  • maven生命周期、maven概念模型图
    maven生命周期图解maven概念模型图......
  • Blazor组件生命周期
        SetParameterAsync这个方法在组件运行后执行。参数们,也就是被标记了 Parameter 特性的参数在被设置以后,通过该方法的 ParameterView 参数传入进来。但是......
  • pod的网络通讯方式
    导言    我们继续去学习我们的基础概念中的另一个就是网络的通讯方式,我们要先对k8s中的网络通讯有一定的认知以后,那才能帮助我们比较好的去构建我们的k8s。那首......
  • React.Component详细 API(生命周期)
    前言:几年不用react,已发生翻天覆地变化,比如生命周期的方法,现在重写学习,记录变化。  组件的生命周期每个组件都包含“生命周期方法”,你可以重写这些方法,以便于在运行......
  • 688~689 Servlet生命周期的详解 AND Servlet3.0注解配置
    Servlet生命周期方法:1.被创建:执行一次init方法,只执行一次Servlet什么时候被创建默认情况下,第一次被访问时,Servlet被创建可以配置......
  • Pod 概念
    那上节课呢给大家讲了一些我们k8s的组件的一些相关的功能,包括它的一些原理性介绍,对吧?那这节课呢大家去看一下我们k8s中最重要的一些技术概念,比如我们的pod的是怎样的?比如我......
  • Kubernetes:如何实现跨集群节点均匀调度分布Pod(Pod拓扑分布约束)
    写在前面分享一些k8s跨集群节点均匀调度分布Pod的笔记博文内容涉及:pod调度&&拓扑分布约束简单介绍跨节点均匀分布podDemo&&相关配置字段说明多个拓扑分......
  • Windows安装podman报错:Error: the WSL import of guest OS failed: exit status 0xfff
     执行podmanmachineinit报错: Error:theWSLimportofguestOSfailed:exitstatus0xffffffff 更新下wsl服务https://yvioo.lanzouw.com/iOus30mrzpid下......