Kubernetes Logs
To view the logs of a container using Docker, we have the following scenario:
# Running an image locally that simulates events, we can observe that output is shown in the console output normally
docker run davidpuziol/event-simulator:latest
[2023-12-29 13:52:21,254] INFO in event-simulator: USER4 is viewing page1
[2023-12-29 13:52:22,254] INFO in event-simulator: USER1 is viewing page3
[2023-12-29 13:52:23,256] INFO in event-simulator: USER1 logged in
[2023-12-29 13:52:24,258] INFO in event-simulator: USER1 logged in
[2023-12-29 13:52:25,258] INFO in event-simulator: USER1 is viewing page2
[2023-12-29 13:52:26,260] WARNING in event-simulator: USER5 Failed to Login as the account is locked due to MANY FAILED ATTEMPTS.
[2023-12-29 13:52:26,260] INFO in event-simulator: USER1 logged out
[2023-12-29 13:52:27,261] INFO in event-simulator: USER4 logged in
[2023-12-29 13:52:28,263] INFO in event-simulator: USER4 logged out
[2023-12-29 13:52:29,264] WARNING in event-simulator: USER7 Order failed as the item is OUT OF STOCK.
[2023-12-29 13:52:29,265] INFO in event-simulator: USER1 logged in
# Running a container in daemon mode, we would have this
docker run -d davidpuziol/event-simulator:latest
d835e4d49d68cd7c2075d54c4965bfc6753c5894d7ee45097f47fba8399a8329
# To view the logs, we could use a follow to keep displaying the logs
docker logs d835e4d49d68cd7c2075d54c4965bfc6753c5894d7ee45097f47fba8399a8329 -f
Now let's run a pod in Kubernetes.
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: event-simulator
name: event-simulator
spec:
containers:
- image: davidpuziol/event-simulator
name: event-simulator
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
kubectl run event-simulator --image davidpuziol/event-simulator -o yaml --dry-run=client > pod-simulator.yaml
kubectl apply -f pod-simulator.yaml
pod/event-simulator created
kubectl get pods event-simulator
NAME READY STATUS RESTARTS AGE
event-simulator 1/1 Running 0 11s
kubectl logs -f event-simulator
2023-12-29 14:15:32,686] INFO in event-simulator: USER4 is viewing page3
[2023-12-29 14:15:33,688] INFO in event-simulator: USER3 is viewing page1
[2023-12-29 14:15:34,689] WARNING in event-simulator: USER5 Failed to Login as the account is locked due to MANY FAILED ATTEMPTS.
[2023-12-29 14:15:34,690] INFO in event-simulator: USER3 logged out
[2023-12-29 14:15:35,691] INFO in event-simulator: USER4 logged in
[2023-12-29 14:15:36,692] INFO in event-simulator: USER1 is viewing page1
Creating another pod with more than one container. Let's use the same one just to see the logs coming out. Create the file pod-simulator-multi.yaml:
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: event-simulator-multi
name: event-simulator-multi
spec:
containers:
- image: davidpuziol/event-simulator
name: event-simulator
resources: {}
- image: davidpuziol/event-simulator
name: event-simulator2
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
kubectl apply -f pod-simulator-multi.yaml
pod/event-simulator-multi created
kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 1 (12h ago) 40h
event-simulator 1/1 Running 0 3m15s
event-simulator-multi 2/2 Running 0 12s
# Showing only logs from the container called event-simulator
kubectl logs -f event-simulator-multi event-simulator
# Showing only logs from the container called event-simulator2
kubectl logs -f event-simulator-multi event-simulator2