Explicación detallada de Kubernetes (18) - Sonda de preparación de pod en la práctica

Hoy, continuaré presentando el conocimiento relevante de la operación y el mantenimiento de Linux. El contenido principal de este artículo es el combate real de la sonda de preparación de Pod.

1. Descripción general de las sondas de preparación de pods

En algunos escenarios de aplicaciones, después de que el objeto Pod se ejecuta correctamente, debe realizar algunos procesos de inicialización y ejecutar algunas instrucciones antes de que pueda proporcionar servicios con normalidad. Por ejemplo, la carga de datos o configuración, o el funcionamiento del programa requiere el calentamiento de determinadas clases, etc. Sin embargo, Kubernetes en sí mismo no puede percibir la etapa de inicialización del objeto Pod. Si el clúster de Kubernetes en este nodo presenta una solicitud de servicio al objeto Pod, el objeto Pod no puede proporcionar servicios normalmente.
Para resolver este problema, los clústeres de Kubernetes introducen la configuración de sondas de preparación. De manera similar a la sonda de actividad, la sonda de preparación también sondea periódicamente el contenido especificado en el contenedor Pod. Cuando la sonda es exitosa, significa que el contenedor está listo. Pero a diferencia de la sonda de actividad, la sonda de preparación no elimina ni reinicia el contenedor cuando detecta una falla, sino que hace que el contenedor pase a un estado "no disponible" y desencadena operaciones que dependen de su estado de preparación para garantizar que no se realicen solicitudes a la vaina

2. Combate HTTP de sondeo de preparación de pods

También hay tres tipos de sondas de preparación de Pod: Exec, HTTP y TCP. A continuación, realizaremos el combate real de las sondas de preparación de Pod. En este combate real, usamos sondas de tipo HTTP y otros tipos de sondas. Es similar, así que No entraré en detalles aquí.
Creamos el manifiesto de configuración de recursos de un Pod, ready-probe.yaml, y le escribimos lo siguiente:

apiVersion: v1
kind: Pod
metadata:
  name: ready-pod
  namespace: default
  labels:
    probe: ready
spec:
  containers:
  - name: ready-probe
    image: nginx:1.14
    ports:
    - name: http
      containerPort: 80
    readinessProbe:
      httpGet:
        path: /index.html
        port: http
        scheme: HTTP

En este archivo de configuración, introducimos una sonda de preparación de tipo HTTP, que detecta la existencia del archivo index.html en el servidor web. Si el archivo no existe, significa que el contenedor es anormal.
Después de completar la configuración anterior, ejecutamos el manifiesto para crear un Pod, y el resultado de la ejecución es el siguiente: Como
inserte la descripción de la imagen aquí
puede ver, nuestro Pod se ejecuta normalmente. A continuación, examinemos el efecto de la sonda de preparación. Ingrese al contenedor Pod, elimine el archivo index.html en el directorio raíz de nuestro servicio web y luego observe el estado del contenedor Pod, los resultados son los siguientes:
inserte la descripción de la imagen aquí
Como se puede ver en la figura anterior, cuando eliminamos el archivo , la sonda detectará una excepción, el contenedor todavía se está ejecutando, pero se ha configurado como no disponible. ¡Nuestra sonda de preparación de pod se configuró correctamente!
La originalidad no es fácil, indique la fuente para la reimpresión: https://blog.csdn.net/weixin_40228200

Supongo que te gusta

Origin blog.csdn.net/weixin_40228200/article/details/124286758
Recomendado
Clasificación