云原生架构系列——Pod的生命周期

在这里插入图片描述
pause容器:
参见:kubernetes原理及核心组件

init容器:
一个主容器可以创建一个或多个init容器,init容器用于为主容器加载一些资源。
事例

#init.yaml
apiVersion: demo/v1
kind: Pod
metadata:
 name: init-demo
 labels:
   app: demo
spec:
 containers:
 - name: demo-container
   image: www.harbor.com/harbor/demo:v1
 #init容器
 initContainers:
 - name: init-mydb
   image: hub.kaikeba.com/library/busybox:v1
   #可以在此处写脚本加载一些资源
   command: []

post start和pre stop函数:
start函数用于在主容器创建完成之后执行一些额外的操作
stop用于在停止容器之前执行一些额外的操作
事例

apiVersion: demo/v1 
kind: Pod 
metadata:
  name: demo
spec:
  containers:
  - name: demo-container
    image: www.harbor.com/harbor/demo:v1
    lifecycle:
      poststart:
        exec:
          #可以在此处写脚执行一些额外的操作
          command: []
      prestop:
        exec:
          #可以在此处写脚本执行一些额外的操作
          command: []

容器探针:
探针是指kubelet定期对容器执行诊断,检测容器是否按预期运行。kubelet通过调用容器实现的Handler来进行诊断。有三种类型的处理程序:

  • exec:在容器内执行指定命令。如果命令退出时返回码为0则认为通过诊断。

  • tcpSocket:对指定端口上的容器的IP地址进行TCP检查。如果端口打开,则诊断被认为是成功的。

  • httpGet:对指定的端口和路径上的容器的IP地址执行HTTPGet请求。如果响应的状态码大于等于200且小于400,则诊断被认为是成功的

  • 成功:通过诊断。

  • 失败:未通过诊断。

  • 未知:诊断失败,不会采取任何行动

探测方式

  • readinessProbe:检测容器是否准备好服务请求。可以通过调用服务的一个接口来进行检测。如果探测未通过,端点控制器将从与Pod匹配的所有Service的端点中删除该Pod的IP地址。初始延迟之前的就绪状态默认为Failure。如果容器不提供就绪探针,则默认状态为Success
  • livenessProbe:检测容器是否正在运行。如果检测未通过,则kubelet会杀死容器。如果容器不提供存活探针,则默认状态为Success,可能会出现pod是Running状态单服务不可用的情况。
    事例
#就绪探针
apiVersion: demo/v1 
kind: Pod 
metadata:
  name: demo
  namespace: default
spec:
  containers:
  - name: demo-container 
    image: www.harbor.com/harbor/demo:v1 
    imagePullPolicy: IfNotPresent
    readinessProbe:
      httpGet:
        port: 80
        #检测接口路径
        path: /health
      #1秒后执行
      initialDelaySeconds: 1
      #每3秒执行1次
      periodSeconds: 3

################################
#存活探针
apiVersion: v1 
kind: Pod 
metadata:
  name: demo
  namespace: default 
spec:
  containers: 
  - name: demo-container 
    image: www.harbor.com/harbor/demo:v1
    imagePullPolicy: IfNotPresent 
    livenessProbe:
      exec:
        #执行命令进行检测
        command: []
      initialDelaySeconds: 1
      periodSeconds: 3
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值