zoukankan      html  css  js  c++  java
  • kubernetes之pod生命周期,pod重启策略, 镜像拉取策略

    pod声明周期(状态):pending , running, succeeded, failed, unknown

    挂起(Pending):Pod 已被 Kubernetes 系统接受,但有一个或者多个容器镜像尚未创建。等待时间包括调度 Pod 的时间和通过网络下载镜像的时间,这可能需要花点时间。
    运行中(Running):该 Pod 已经绑定到了一个节点上,Pod 中所有的容器都已被创建。至少有一个容器正在运行,或者正处于启动或重启状态。
    成功(Succeeded):Pod 中的所有容器都被成功终止,并且不会再重启。
    失败(Failed):Pod 中的所有容器都已终止了,并且至少有一个容器是因为失败终止。也就是说,容器以非0状态退出或者被系统终止。
    未知(Unknown):因为某些原因无法取得 Pod 的状态,通常是因为与 Pod 所在主机通信失败。
    

    pod重启策略: 当某个容器异常退出或者健康检查失败, kubelet将根据RestartPolicy的设置来进行相应的操作, 重启策略有Always , OnFailure, Never

    Always: 当容器失效时, 由kubelet自动重启该容器
    OnFailure: 当容器终止运行且退出码不为0时, 由kubelet自动重启该容器
    Never: 不论容器运行状态如何, kubelet都不会重启该容器
    

    kubelet重启失效容器的时间间隔以sync-frequency乘以2n来计算, 例如1丶2丶4丶8倍等, 最长延时5min, 并且在重启后的10min后重置该时间
    pod的重启策略与控制方式息息相关

    RC和DeamonSet必须设置为Always,需要保证该容器持续运行
    Job: OnFailure或Never, 确保容器执行完成后不再重启
    

    镜像拉取策略

    Always: 表示每次都尝试重新拉取镜像
    IfNotPresent: 表示如果本地有镜像, 则使用本地的镜像, 本地不存在时拉取镜像
    Never: 表示仅使用本地镜像
    

    示例

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      namespace: default 
      labels:
        app: nginx
    spec:
      selector:
        matchLabels:
          app: nginx
      replicas: 1
      template:
        metadata:
          labels:
            app: nginx
    
        spec:
          restartPolicy: Always
          containers:
          - name: nginx
            image: nginx:1.12
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 80
    
  • 相关阅读:
    包 (package)
    Object类
    异常
    接口
    抽象类
    多态(经典案例)
    三大特性:(经典代码)
    对象创建的过程(重点理解)
    final关键字
    cocos2dx工程中接入支付宝sdk
  • 原文地址:https://www.cnblogs.com/lovelinux199075/p/11284419.html
Copyright © 2011-2022 走看看