kubernetes启动探针

2023-04-29 10:32:08 浏览数 (1)

一、概述

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

二、启动探针类型

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

HTTP启动探针

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

代码语言:javascript复制
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  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启动探针的示例:

代码语言:javascript复制
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  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将认为容器已准备好接受流量。

0 人点赞