> 资讯 >

焦点精选!kubernetes启动探针

时间:2023-05-01 05:06:19       来源:腾讯云


(相关资料图)

一、概述

Kubernetes启动探针是一种机制,用于确保在Pod中的容器已经启动并准备好接受网络流量。它们通常与存活性探针一起使用,以确保容器在运行时不仅处于活动状态,而且已经完成了初始化并准备好接受流量。

二、启动探针类型

Kubernetes提供了两种类型的启动探针:HTTP和Exec。它们都允许在容器启动后立即执行命令或请求,并在容器已准备好接受流量时返回成功状态。下面是每种类型的详细信息和示例。

HTTP启动探针

HTTP启动探针使用HTTP GET请求检查应用程序是否已经启动并准备好接受流量。它需要指定一个HTTP路径,并且期望在启动后立即返回200响应代码。以下是一个使用HTTP启动探针的示例:

apiVersion: v1kind: Podmetadata:  name: my-podspec:  containers:    - name: my-container      image: my-image      ports:        - containerPort: 8080      readinessProbe:        httpGet:          path: /healthz          port: 8080        initialDelaySeconds: 5        periodSeconds: 10

在上面的示例中,我们在容器规格中添加了一个名为my-container的容器,并指定了一个HTTP启动探针。探针将在容器启动后的5秒钟后发送一个HTTP GET请求到容器的端口8080,并期望获得响应代码200。如果探针未能获得响应或者响应代码不是200,则Kubernetes将不会将流量发送到该容器。

Exec启动探针

Exec启动探针允许在容器启动后立即执行一个命令,并检查其退出代码。如果命令返回零退出代码,则Kubernetes将认为容器已准备好接受流量。以下是一个使用Exec启动探针的示例:

apiVersion: v1kind: Podmetadata:  name: my-podspec:  containers:    - name: my-container      image: my-image      ports:        - containerPort: 8080      readinessProbe:        exec:          command:            - /bin/sh            - -c            - check-service.sh        initialDelaySeconds: 5        periodSeconds: 10

在上面的示例中,我们使用Exec启动探针来执行一个名为check-service.sh的脚本,并检查其退出代码。如果脚本返回零退出代码,则Kubernetes将认为容器已准备好接受流量。

关键词: