pod的状态,拉取策略

1.pod状态

Pending pod未调度,或者pod已经调度正在拉取镜像
Running pod已经运行
Failed pod内容器运行停止
Success pod内容器运行成功结束
Unknown master与node失联,pod状态无法正常获取到

2.重启策略:

Always: 当容器终止退出后,总是 重启容器,默认策略
OnFailure: 当容器异常退出(退出状态码非0)时,才重启容器
Nerver: 当容器终止退出,从不重启容器.

2.1健康检查有以下3种类型

livenssProbe(存活检查):如果检查失败,将杀死容器,根据pod的restartPoilcy来操作.

readinessProbe(就绪检查):如果检查检查失败,kubernetes会把pod从service endpoints中剔除.

startupProbe(启动检查)

2.2支持以下三种检查方式:

httpGet: 发送HTTP请求,返回200-400范围状态码为成功
exec: 执行shell命令返回状态码是0为成功.
tcpSocket:发起TCP Socket建立成功.


Init Container
init container:顾名思义,用于初始化工作,执行完就结束,可以理解为一次性任务.
支持大部分应用容器部署,但不支持健康检查
优先应用容器执行.

应用场景:
环境检查:例如确保应用容器依赖的服务启动后再启动应用容器
初始化配置:例如给应用容器准备配置文件

示例:部署一个web网站,网站程序没有打到镜像中,而是希望从代码库中动态拉取放到应用容器中.

apiVersion: v1
kind: Pod
metadata:     
  name: init-demo
spec:
  initContainers:         
  - image: busybox
    name: download
    command:
    - wget
    - "-O"
    - "/opt/index.html"
    - http://registry.thunisoft.com
    volumeMounts:
    - mountPath:  "/opt"
      name: wwwroot
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80
    volumeMounts:
    - name: wwwroot
      mountPath: /usr/share/nginx/html 
  volumes:
  - name: wwwroot
    emptyDir: {}

因此,pod中会有这几种类型的容器:
Infrastructure Container: 基础容器
维护整个pod网络空间
InitContainers: 初始化容器
先于业务容器开始执行
Containers: 业务容器
并行启动

posted @ 2021-02-25 13:41  翟超  阅读(372)  评论(0)    收藏  举报