首页 > 其他分享 >Pod 镜像拉取策略+重启策略

Pod 镜像拉取策略+重启策略

时间:2022-10-25 01:33:45浏览次数:91  
标签:容器 必选 策略 拉取 nginx Pod 端口号 name

Pod镜像拉取策略

通过 spec.containers[].imagePullPolicy 参数可以指定镜像的拉取策略,目前支持的策略如下
  • Always      总是拉取,当镜像 tag 为 latest 时,且 imagePullPolicy 未配置,默认为 Always
  • Never       不管是否存在都不会拉取 
  • IfNotPresent     镜像不存在时拉取镜像,如果 tag 为非 latest,且 imagePullPolicy 未配置,默认为 IfNotPresent
更改镜像拉取策略为 IfNotPresent:
apiVersion: v1 # 必选,API 的版本号
kind: Pod # 必选,类型 Pod
metadata: # 必选,元数据
 name: nginx # 必选,符合 RFC 1035 规范的 Pod 名称
spec: # 必选,用于定义 Pod 的详细信息
 containers: # 必选,容器列表
 - name: nginx # 必选,符合 RFC 1035 规范的容器名称
 image: nginx:1.15.12 # 必选,容器所用的镜像的地址
 imagePullPolicy: IfNotPresent # 可选,镜像拉取策略
 ports: # 可选,容器需要暴露的端口号列表
 - containerPort: 80 # 端口号

Pod重启策略

可以使用 spec.restartPolicy 指定容器的重启策略
  • Always  默认策略。容器失效时,自动重启该容器
  • OnFailure   容器以不为 0 的状态码终止,自动重启该容器
  • Never  无论何种状态,都不会重启
apiVersion: v1 # 必选,API 的版本号
kind: Pod # 必选,类型 Pod
metadata: # 必选,元数据
 name: nginx # 必选,符合 RFC 1035 规范的 Pod 名称
spec: # 必选,用于定义 Pod 的详细信息
 containers: # 必选,容器列表
 - name: nginx # 必选,符合 RFC 1035 规范的容器名称
 image: nginx:1.15.12 # 必选,容器所用的镜像的地址
 imagePullPolicy: IfNotPresent
 command: # 可选,容器启动执行的命令
 - sleep
 - "10"
 ports: # 可选,容器需要暴露的端口号列表
 - containerPort: 80 # 端口号
 restartPolicy: Never
Pod 的三种探针:
  • startupProbe  指示容器中的应用是否已经启动。如果提供了启动探针,则所有其他探针都会被 禁用,直到此探针成功为止。如果启动探测失败,kubelet 将杀死容器, 而容器依其重启策略进行重启。 如果容器没有提供启动探测,则默认状态为 Success
  • livenessProbe 指示容器是否正在运行。如果存活态探测失败,则 kubelet 会杀死容器, 并且容器将根据其重启策略决定未来。如果容器不提供存活探针, 则默认状态为 Success
  • readinessProbe 指示容器是否准备好为请求提供服务。如果就绪态探测失败, 端点控制器将从与 Pod 匹配的所有服务的端点列表中删除该 Pod 的 IP 地址。 初始延迟之前的就绪态的状态值默认为 Failure。 如果容器不提供就绪态探针,则默认状态为 Success
livenessProbe 和 readinessProbe 创建一个没有探针的 Pod:
apiVersion: v1 # 必选,API 的版本号
kind: Pod # 必选,类型 Pod
metadata: # 必选,元数据
 name: nginx # 必选,符合 RFC 1035 规范的 Pod 名称
spec: # 必选,用于定义 Pod 的详细信息
 containers: # 必选,容器列表
 - name: nginx # 必选,符合 RFC 1035 规范的容器名称
 image: nginx:1.15.12 # 必选,容器所用的镜像的地址
 imagePullPolicy: IfNotPresent
 command: # 可选,容器启动执行的命令
 - sh
 - -c
 - sleep 10; nginx -g "daemon off;"
 ports: # 可选,容器需要暴露的端口号列表
 - containerPort: 80 # 端口号
 restartPolicy: Never
配置健康检查:
apiVersion: v1 # 必选,API 的版本号
kind: Pod # 必选,类型 Pod
metadata: # 必选,元数据
 name: nginx # 必选,符合 RFC 1035 规范的 Pod 名称
spec: # 必选,用于定义 Pod 的详细信息
 containers: # 必选,容器列表
 - name: nginx # 必选,符合 RFC 1035 规范的容器名称
 image: nginx:1.15.12 # 必选,容器所用的镜像的地址
 imagePullPolicy: IfNotPresent
 command: # 可选,容器启动执行的命令
 - sh
 - -c
 - sleep 10; nginx -g "daemon off;"
 readinessProbe: # 可选,健康检查。注意三种检查方式同时只能使用一种。
 httpGet: # 接口检测方式
 path: /index.html # 检查路径
 port: 80
 scheme: HTTP # HTTP or HTTPS
 #httpHeaders: # 可选, 检查的请求头
 #- name: end-user
 # value: Jason 
 initialDelaySeconds: 10 # 初始化时间, 健康检查延迟执行时间
 timeoutSeconds: 2 # 超时时间
 periodSeconds: 5 # 检测间隔
 successThreshold: 1 # 检查成功为 2 次表示就绪
 failureThreshold: 2 # 检测失败 1 次表示未就绪
 livenessProbe: # 可选,健康检查
 tcpSocket: # 端口检测方式
 port: 80
 initialDelaySeconds: 10 # 初始化时间
 timeoutSeconds: 2 # 超时时间
 periodSeconds: 5 # 检测间隔
 successThreshold: 1 # 检查成功为 2 次表示就绪
 failureThreshold: 2 # 检测失败 1 次表示未就绪
 ports: # 可选,容器需要暴露的端口号列表
 - containerPort: 80 # 端口号
 restartPolicy: Never
配置 StartupProbe
apiVersion: v1 # 必选,API 的版本号
kind: Pod # 必选,类型 Pod
metadata: # 必选,元数据
 name: nginx # 必选,符合 RFC 1035 规范的 Pod 名称
spec: # 必选,用于定义 Pod 的详细信息
 containers: # 必选,容器列表
 - name: nginx # 必选,符合 RFC 1035 规范的容器名称
 image: nginx:1.15.12 # 必选,容器所用的镜像的地址
 imagePullPolicy: IfNotPresent
 command: # 可选,容器启动执行的命令
 - sh
 - -c
 - sleep 30; nginx -g "daemon off;"
 startupProbe:
 tcpSocket: # 端口检测方式
 port: 80
 initialDelaySeconds: 10 # 初始化时间
 timeoutSeconds: 2 # 超时时间
 periodSeconds: 5 # 检测间隔
 successThreshold: 1 # 检查成功为 2 次表示就绪
 failureThreshold: 5 # 检测失败 1 次表示未就绪
 readinessProbe: # 可选,健康检查。注意三种检查方式同时只能使用一种。
 httpGet: # 接口检测方式
 path: /index.html # 检查路径
 port: 80
 scheme: HTTP # HTTP or HTTPS
 #httpHeaders: # 可选, 检查的请求头
 #- name: end-user
 # value: Jason 
 initialDelaySeconds: 10 # 初始化时间, 健康检查延迟执行时间
 timeoutSeconds: 2 # 超时时间
 periodSeconds: 5 # 检测间隔
 successThreshold: 1 # 检查成功为 2 次表示就绪
 failureThreshold: 2 # 检测失败 1 次表示未就绪
 livenessProbe: # 可选,健康检查
 exec: # 端口检测方式
 command:
 - sh
 - -c
 - pgrep nginx
 initialDelaySeconds: 10 # 初始化时间
 timeoutSeconds: 2 # 超时时间
 periodSeconds: 5 # 检测间隔
 successThreshold: 1 # 检查成功为 2 次表示就绪
 failureThreshold: 2 # 检测失败 1 次表示未就绪
 ports: # 可选,容器需要暴露的端口号列表
 - containerPort: 80 # 端口号
 restartPolicy: Never
preStop 和 postStart
apiVersion: v1 # 必选,API 的版本号
kind: Pod # 必选,类型 Pod
metadata: # 必选,元数据
 name: nginx # 必选,符合 RFC 1035 规范的 Pod 名称
spec: # 必选,用于定义 Pod 的详细信息
 containers: # 必选,容器列表
 - name: nginx # 必选,符合 RFC 1035 规范的容器名称
 image: nginx:1.15.12 # 必选,容器所用的镜像的地址
 imagePullPolicy: IfNotPresent
 lifecycle:
 postStart: # 容器创建完成后执行的指令, 可以是 exec httpGet TCPSocket
 exec:
 command:
 - sh
 - -c
 - 'mkdir /data/'
 preStop:
 exec:
 command:
 - sh
 - -c
 - sleep 10
 ports: # 可选,容器需要暴露的端口号列表
 - containerPort: 80 # 端口号
 restartPolicy: Never

 

参考文档:配置存活、就绪和启动探针 | Kubernetes  

标签:容器,必选,策略,拉取,nginx,Pod,端口号,name
From: https://www.cnblogs.com/slx-yyds/p/16823614.html

相关文章

  • 基于工厂模式和策略模式改造支付系统
    1.vo@Data@AllArgsConstructor@NoArgsConstructor@BuilderpublicclassPayVO{/***支付类型:egsendwyre*/privateStringpayType;/***端......
  • JavaScript 设计模式之策略模式
    什么是设计模式?为什么需要学习设计模式?学习设计模式的目的是:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工......
  • redis的延迟双删策略
    1,redis数据为什么会存在和数据库数据不一致的问题在多线程并发情况下,假设有两个数据库修改请求,为保证数据库与redis的数据一致性,修改请求的实现中需要修改数据库后,级联修......
  • IPv6改造方案之多段式防护安全策略-中科三方
    今年两会中提出的“加强新型基础设施建设,发展新一代信息网络”,标识了国家网络发展的风向标,如今国家正在积极发展下一代互联网建设工作,IPv6端到端贯通能力提升专项行动也在如......
  • Prometheus之Cadvisor实现pod资源监控
    一Cadvisor介绍GitHub地址:https://github.com/google/cadvisorcadvisor由谷歌开源,cadvisor不仅可以搜集一台机器上所有运行的容器信息,还提供基础查询界面和http接口,方便其......
  • 第二十五章 CSP Session 管理 - 选择策略时的注意事项
    第二十五章CSPSession管理-选择策略时的注意事项组的注意事项本节包含创建身份验证组时要考虑的一些要点。仅当决定必须通过会话对象共享数据时才使用会话共享。......
  • 限流策略了解
    转自:https://www.cnblogs.com/brxHqs/p/9767942.html 1.突发流量 高并发情况下带来的突发流量: 常见的优化方案有两种:1)上游队列缓冲(push阻塞),限速发送;2)下游队列缓冲......
  • 如何使用git通过ssh协议拉取gitee上的项目代码——如何正确的免密使用git
    如何在gitee网站上生成/添加SSH公钥见教程:生成/添加SSH公钥    测试公私秘钥是否成功:[email protected]     ===============================......
  • Kubernetes--Pod节点选择器nodeSelector(标签)
    Pod节点选择器是标签及标签选择器的一种应用,它能够让Pod对象基于集群中工作节点的标签来挑选倾向运行的目标节点。Kubernetes的kube-scheduler守护进程负责在各工作节点......
  • k8s基础篇 pod(七)污点和容忍度
    7.1node节点亲和性node节点亲和性调度:nodeAffinity[root@k8s01~]#kubectlexplainpod.spec.affinityKIND:PodVERSION:v1RESOURCE:affinity<Object>DESCRIPTION......