Readiness/Liveness Probes
Desarrollo del tema
La presente guía aborda la configuracion de health checks a Pods mediante pruebas de Kubernetes.
Laboratorio: Readiness/Liveness Probes
Descripción
La presente guía aborda la configuracion de health checks a Pods mediante pruebas de Kubernetes.
Objetivos
- Crear un Deployment a partir de un archivo YAML
- Configurar pruebas de Readiness al Deployment
- Configurar pruebas de Liveness al Deployment
- Validar las configuraciones proporcionadas al Deployment
Antes de comenzar
- Contar con el acceso al ambiente de laboratorio
Conexión hacia cluster
-
Ingrese al cluster asignado con las credenciales proporcionadas
-
Obtenga el archivo kubeconfig posicionando sobre la carpeta a trabajar y cambiando su nombre a config
mv /path/to/kubeconfig ~/.kube/config -
Configure la variable
KUBECONFIGexport KUBECONFIG=~/.kube/config -
Verifique el acceso mediante comandos
kubectl get namespaces kubectl config set-context --current --namespace=userx
Inicio de laboratorio
-
Cree un directorio llamado
k8s-probesy ubíquese dentro de ellamkdir k8s-probes ; cd k8s-probes -
Cree un archivo llamado
deployment-probes.yamlcon el siguiente contenido1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
apiVersion: apps/v1 kind: Deployment metadata: name: basic-api namespace: userx labels: app: basic-api spec: replicas: 1 selector: matchLabels: app: basic-api template: metadata: labels: app: basic-api spec: containers: - name: basic-api image: quay.io/rlam/api-demo:1.0 ports: - containerPort: 8080 -
Agregue el bloque
livenessProbeenspec.template.spec.containers[0]de tipo HTTP Request1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
apiVersion: apps/v1 kind: Deployment metadata: name: basic-api namespace: userx labels: app: basic-api spec: replicas: 1 selector: matchLabels: app: basic-api template: metadata: labels: app: basic-api spec: containers: - name: basic-api image: quay.io/rlam/api-demo:1.0 livenessProbe: httpGet: path: / port: 8080 ports: - containerPort: 8080 -
Agregue al livenessProbe los parametros
initialDelaySecondsyperiodSeconds1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
apiVersion: apps/v1 kind: Deployment metadata: name: basic-api namespace: userx labels: app: basic-api spec: replicas: 1 selector: matchLabels: app: basic-api template: metadata: labels: app: basic-api spec: containers: - name: basic-api image: quay.io/rlam/api-demo:1.0 livenessProbe: httpGet: path: / port: 8080 initialDelaySeconds: 20 periodSeconds: 3 ports: - containerPort: 8080 -
Levante el recurso
kubectl apply -f deployment-probes.yaml -
Revise los deployments en el namespace
kubectl get deployments -
Revise los eventos
kubectl get events -
Revise los pods en el namespace
kubectl get pods -
Agregue el bloque
readinessProbeenspec.template.spec.containers[0]de tipo TCP1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
apiVersion: apps/v1 kind: Deployment metadata: name: basic-api namespace: userx labels: app: basic-api spec: replicas: 1 selector: matchLabels: app: basic-api template: metadata: labels: app: basic-api spec: containers: - name: basic-api image: quay.io/rlam/api-demo:1.0 livenessProbe: httpGet: path: / port: 8080 initialDelaySeconds: 20 periodSeconds: 3 readinessProbe: tcpSocket: port: 8080 initialDelaySeconds: 25 periodSeconds: 10 ports: - containerPort: 8080 -
Sincronize los cambios
kubectl apply -f deployment-probes.yaml -
Revise los deployments en el namespace
kubectl get deployments -
Revise los pods en el namespace
kubectl get pods -
Revise los eventos
kubectl get events -
Limpie el ambiente
kubectl delete -f deployment-probes.yaml