meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
virtualizacion:kubernetes:probes [2020/10/31 09:11] lcvirtualizacion:kubernetes:probes [2023/01/18 14:37] (actual) – editor externo 127.0.0.1
Línea 3: Línea 3:
  
 Tenemos tres tipos: Tenemos tres tipos:
-  * Readiness Probe  +  * Readiness Probe -> Se utiliza para saber cuando un contenedor está listo para aceptar tráfico 
-  * Liveness Probe  +  * Liveness Probe - > Se usa liveness probe para saber cuando hay que reiniciar un contenedor 
-  * Startup Probe +  * Startup Probe  -> Se utiliza para saber cuando la aplicación de un container se ha iniciado. (por ejemplo si es una aplicación que tarda mucho en cargar)
  
 +Tenemos tres formas de hacer la comprobación de un probe:
 +
 +  * por HTTP. Se hace una petición GET, si la respuesta no está entre 200 y 300 implica algún tipo de error
 +  * por un comando . Ejecutamos un comando. Si devuelve 0 se considera saludable, si da otro resultado no saludable
 +  * por un puerto TCP Se intenta una conexión TCP a un puerto especificado. Si hay conexión se considera saludable, en caso contrario es que hay problemas
  
 ==== Readiness Probe ==== ==== Readiness Probe ====
  
 ==== Liveness Probe ==== ==== Liveness Probe ====
 +Con liveness probe revisamos el estado del contenedor y si el estado del contenedor no es el correcto Kubernetes lo reiniciará de forma automática 
 +=== Ejemplo de liveness probe por http === 
 +<sxh yaml> 
 +apiVersion: v1 
 +kind: Pod 
 +metadata: 
 +  labels: 
 +    test: liveness 
 +  name: liveness-http 
 +spec: 
 +  containers: 
 +  - name: liveness 
 +    image: k8s.gcr.io/liveness 
 +    args: 
 +    - /server 
 +    livenessProbe:    #hace una petición por el puerto 8080 en espera de obtener un valor de 200 
 +      httpGet: 
 +        path: /healthz 
 +        port: 8080 
 +        httpHeaders: 
 +        - name: Custom-Header 
 +          value: Awesome 
 +      initialDelaySeconds:
 +      periodSeconds:
 +   </sxh> 
 +=== Ejemplo de liveness probe por comando === 
 +<sxh yaml> 
 +apiVersion: v1 
 +kind: Pod 
 +metadata: 
 +  labels: 
 +    test: liveness 
 +  name: liveness-exec 
 +spec: 
 +  containers: 
 +  - name: liveness 
 +    image: k8s.gcr.io/busybox 
 +    args: 
 +    - /bin/sh 
 +    - -c 
 +    - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600   #creamos un fichero , espera 30 sg, lo borra y  vuelve a esperar 600s 
 +    livenessProbe:       # LA prueba ses hacer un cat del fichero que creamos anteriormente cada 5 s 
 +      exec: 
 +        command: 
 +        - cat 
 +        - /tmp/healthy 
 +      initialDelaySeconds: 5   #Tiempo de espera antes de empezar las comprobaciones 
 +      periodSeconds: 5    #Cada cuanto tiempo hace las comprobaciones 
 + </sxh> 
 +<note>Un uso común de ejecutar un comando sería controlar el espacio disponible por si nuestro container se queda sin espacio se reinicie y kubernetes lo crea de nuevo</note> 
 +=== ejemplo de liveness probe por tcp === 
 +<sxh yaml> 
 +apiVersion: v1 
 +kind: Pod 
 +metadata: 
 +  name: goproxy 
 +  labels: 
 +    app: goproxy 
 +spec: 
 +  containers: 
 +  - name: goproxy 
 +    image: k8s.gcr.io/goproxy:0.1 
 +    ports: 
 +    - containerPort: 8080 
 +    readinessProbe: 
 +      tcpSocket: 
 +        port: 8080 
 +      initialDelaySeconds:
 +      periodSeconds: 10 
 +    livenessProbe: 
 +      tcpSocket: 
 +        port: 8080 
 +      initialDelaySeconds: 15 
 +      periodSeconds: 20 
 +  </sxh>
 ==== Startup Probe ==== ==== Startup Probe ====
  
  
 ==== Referencias ==== ==== Referencias ====
 +  * https://github.com/ricardoandre97/k8s-resources/tree/master/probes 
 +  * https://www.elladodelmal.com/2020/01/kubernetes-como-comprobar-la-salud-de.html