Docker Kubernetes 健康检查

Docker Kubernetes 健康检查

提供Probe探测机制,有以下两种类型:

  • livenessProbe:如果检查失败,将杀死容器,然后根据Pod的重启策略来决定是否重启。
  • readinessProbe:如果检查失败,Kubernetes会把Pod从服务代理的分发后端剔除。

Probe支持以下三种检查方法:

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


环境:

  • 系统:Centos 7.4 x64
  • Docker版本:18.09.0
  • Kubernetes版本:v1.8
  • 管理节点:192.168.1.79
  • 工作节点:192.168.1.78
  • 工作节点:192.168.1.77


创建yaml文件

vim check.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.10
    ports:
    - containerPort: 80
    livenessProbe:
      httpGet:
        path: /index.html
        port: 80

# api版本
apiVersion: v1
# 指定创建资源对象
kind: Pod
# 源数据、可以写name,命名空间,对象标签
metadata:
# 服务名称
  name: nginx-pod
# 标签
  labels:
# 标签名
    app: nginx
# 容器资源信息
spec:
# 容器管理
  containers:
# 容器名称
  - name: nginx
# 容器镜像
    image: nginx:1.10
# 端口管理
    ports:
# 指定暴露端口
    - containerPort: 80
# 健康检查模式(httpGet、exec、tcpSocket)
    livenessProbe:
# 选择健康检查类型
      httpGet:
# 选择检查文件
        path: /index.html
# 选择检查暴露端口
        port: 80

文件注释

创建Pod

kubectl create -f check.yaml

命令:kubectl describe pods nginx-pod

# 探测端口为80,探测文件名index.html,timeout超市时间为一秒,period每10秒探测一次
    Liveness:       http-get http://:80/index.html delay=0s timeout=1s period=10s #success=1 #failure=3

查看健康检查pod状态

原文地址:https://www.cnblogs.com/xiangsikai/p/10012087.html

时间: 2024-10-31 00:05:02

Docker Kubernetes 健康检查的相关文章

docker HealthCheck健康检查

需求 最近遇到的问题:线上跑的一个 Node 镜像是在运行的,状态为 up ,但是访问报 502 ,重启镜像无效,重新拉了个镜像运行才恢复正常.于是想研究下如何从应用层面去检查容器的状态 为什么 docker ps STATUS 列显示容器的状态 [[email protected] ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1cfb357dd83f 9962e62376bc "/bin/sh -

docker 构建带健康检查的redis镜像

=============================================== 2018/11/5_第1次修改                       ccb_warlock =============================================== 由于希望引入docker的健康检查,即对不健康容器的策略(如果容器进入 unhealthy 状态,它会停止容器并且重新启动一个新容器来取代它),故根据官方给出的脚本进行修改后构建出带健康检查的redis镜像.

k8s之健康检查(Health Check)

强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性.自愈的默认实现方式是自动重启发生故障的容器.除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精细的健康检查,进而实现如下需求: 零停机部署. 避免部署无效的镜像. 更加安全的滚动升级. 下面通过实践学习 Kubernetes 的 Health Check 功能. 默认的健康检查 首先学习 Kubernetes 默认的健康检查机制: 每个容器启动时都会执行一个进程,此进程由 Dockerfil

Kubernetes 健康状态检查(九)

强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性.自愈的默认实现方式是自动重启发生故障的容器.除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精细的健康检查,进而实现如下需求: 零停机部署. 避免部署无效的镜像. 更加安全的滚动升级. 一.Liveness 探测 Liveness 探测让用户可以自定义判断容器是否健康的条件.如果探测失败,Kubernetes 就会重启容器. 我们创建一个 Pod 的配置文件liveness.yaml,可以使

kubernetes之pod健康检查

目录 kubernetes之pod健康检查 1.概述和分类 2.LivenessProbe探针(存活性探测) 3.ReadinessProbe探针(就绪型探测) 4.探针的实现方式 4.1.ExecAction 4.2.HTTPGetAction 4.3.TCPSocketAction 5.探测行为属性 6.扩展的探测机制 kubernetes之pod健康检查 1.概述和分类 pod通过两类探针来检查容器的健康状态.分别是LivenessProbe(存活性探测)和ReadinessProbe(就

Docker 健康检查功能

Docker1.12及以上版本,自带了健康检查功能.通常情况下只能使用docker ps 来查看容器是否是up的状态,但是服务是否正常我们不可知,而健康检查功能,可以允许我们在容器中执行一些健康检查的命令,然后将容器的状态在"STATUS"中标识: [[email protected]]# docker ps CONTAINER ID        IMAGE                        COMMAND             CREATED             

docker容器HEALTHCHECK 健康检查

docker容器的健康检测是在编写dockerfile时,将检测机制写入到dockerfile中,基于此docerfile生成的镜像,在运行容器时会有健康检测的功能. dockerfile中的格式: HEALTHCHECK [选项] CMD <命令>:设置检查容器健康状况的命令. HEALTHCHECK NONE:如果基础镜像有健康检查指令,使用这行可以屏蔽掉其健康检查指令. HEALTHCHECK 指令是告诉 Docker引擎应该如何进行判断容器的状态是否正常,这是 Docker 1.12

Docker Kubernetes 项目

Kubernetes 是 Google 团队发起并维护的基于Docker的开源容器集群管理系统,它不仅支持常见的云平台,而且支持内部数据中心. 建于Docker之上的Kubernetes可以构建一个容器的调度服务,其目的是让用户透过Kubernetes集群来进行云端容器集群的管理,而无需用户进行复杂的设置工作.系统会自动选取合适的工作节点来执行具体的容器集群调度处理工作.其核心概念是Container Pod(容器仓).一个Pod是有一组工作于同一物理工作节点的容器构成的.这些组容器拥有相同的网

k8s健康检查(9)

一.默认的健康检查 强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性.自愈的默认实现方式是自动重启发生故障的容器.除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精细的健康检查,进而实现如下需求: (1)零停机部署. (2)避免部署无效的镜像. (3)更加安全的滚动升级. 每个容器启动时都会执行一个进程,此进程由 Dockerfile 的 CMD 或 ENTRYPOINT 指定.如果进程退出时返回码非零,则认为容器发生故障,Kubernet