Kubernetes Logging
Kubernetes captura logs de cada contenedor que existe en un pod en ejecucion, estos logs viene del stdout del contenedor.
Estos logs son efimeros y se pierden si se llega a eliminar el pod, por esto es una buena practica contar con una solucion de logging centralizada para evitar que se pierdan.
Por defecto kubelet hace que estos logs esten disponibles por medio del cliente de kubectl con el comando de kubectl logs.
Laboratorio: Kubernetes Logging
Descripción
Es necesario entender la bases de como se generan y muestran los logs por defecto en un cluster de kubernetes.
Objetivos
- Observar la forma por defecto de mostrar logs de kubernetes
- Explorar formas alternativas y mas personalizaciones para los logs.
Antes de comenzar
- Contar con el acceso al ambiente del laboratorio
- Haber realizado la guía de Instalación Rancher Kubernetes Engine (RKE)
- Haber realizado la guía de Acceso a rancher y kubernetes cluster
Inicio de laboratorio
- Ingrese al CLI del sistema operativo del servidor usado como Bastion con el usuario y la contraseña proporcionados.
Ingresar al cluster de Kubernetes cluster-users con sus respectivas credenciales
Crear un nuevo namespace llamado example-logging
kubectl create ns example-logging
Establcer el nuevo namespace por defecto en el contexto actual:
kubectl config set-context --current --namespace=example-logging
apiVersion: v1
kind: Pod
metadata:
name: counter
spec:
containers:
- name: count
image: busybox:1.28
args: [/bin/sh, -c,
'i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done']
kubectl apply -f default-logging.yaml
kubectl get pods
kubectl logs counter
0: Fri Apr 1 11:42:23 UTC 2022
1: Fri Apr 1 11:42:24 UTC 2022
2: Fri Apr 1 11:42:25 UTC 2022
kubectl logs counter -c count
kubectl delete -f default-logging.yaml