Просмотр состояния подов кластера
Просмотр статуса и логов подов может понадобиться при решении проблем с системой. Инструкция по поиску подов, на которых расположены сервисы системы, описана в разделе Список подов сервисов.
Просмотр состояния подов в списке
Чтобы просмотреть состояние подов кластера, выполните следующую команду:
kubectl -n <namespace> get pods
Здесь:
-
<namespace>
— имя пространства имен, в котором установлен кластер.
Пример списка подов кластера
NAME READY STATUS RESTARTS AGE
clickhouse-shard0-0 1/1 Running 1 (7h53m ago) 2d3h
clickhouse-shard1-0 1/1 Running 0 2d3h
....
nats-0 3/3 Running 0 22d
nats-box-575 1/1 Running 0 22d
pgbouncer-846c 2/2 Running 1 (27d ago) 35d
postgresql-0 1/1 Running 0 64d
service-orchestrator-85c 1/1 Running 0 103m
Состояние подов отображается в столбце STATUS
. Возможные статусы:
-
Pending
: под принят кластером, но один или несколько контейнеров еще не установлены и не подготовлены к запуску. Этот статус включает время, в течение которого под ожидает планирования, а также загружаются по сети образы контейнеров. -
Running
: под привязан к узлу, а также все его контейнеры созданы. По крайней мере один контейнер работает или находится в процессе запуска или перезапуска. -
Succeeded
: все контейнеры пода успешно завершили работу и не будут перезапущены. -
Failed
: все контейнеры пода завершили работу, и по крайней мере один контейнер завершил работу с ошибкой (с кодом, не равным 0, или был остановлен системой) и не будет автоматически перезапущен. -
Unknown
: состояние пода не может быть получено. Такое состояние обычно возникает из-за ошибки связи с узлом, в котором под должен работать.
Также состояние подов кластера можно просмотреть на дашборде Grafana в разделе SIEM Инструменты → Мониторинг. |
Просмотр подробной информации о поде
Чтобы просмотреть подробную информацию о поде, в том числе состояние, узел, на котором он находится, список его контейнеров и так далее, выполните следующую команду:
kubectl -n <namespace> describe pods/<pod_name>
Здесь:
-
<namespace>
— имя пространства имен, в котором установлен кластер. -
<pod_name>
— имя пода, информацию о котором требуется просмотреть.
Пример вывода команды kubectl describe
Name: test-pod
Namespace: siem
Priority: 0
Service Account: default
Node: dev.siem.local/10.0.0.13
Start Time: Wed, 30 Oct 2024 14:49:49 +0300
Labels: app.kubernetes.io/component=nats
app.kubernetes.io/instance=nats
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=nats
app.kubernetes.io/version=2.10.20
controller-revision-hash=nats-56bcf785dd
helm.sh/chart=nats-1.2.4
statefulset.kubernetes.io/pod-name=nats-0
Annotations: checksum/config: 8b3d84c2a7387f68211b5f98f2d6d910a2c0491fcaef10d1187d3d1fac81dea9
cni.projectcalico.org/containerID: d1f8a2f334f8f1c9a47c835ef92f6e95b8cf43c1e085982de2c396c972203e9f
cni.projectcalico.org/podIP: 10.0.0.191/32
cni.projectcalico.org/podIPs: 10.0.0.191/32
Status: Running
IP: 10.0.0.191
IPs:
IP: 10.0.0.191
Controlled By: StatefulSet/nats
Containers:
nats:
Container ID: containerd://b3638b859a891ae7b6dc897ec50aa234ff09698decf4eccb5adca0a0794f7e24
Image: sec/nats-server:2.10.20-scratch
Image ID: sec/nats-server@sha256:d5508b97e054c298bba593e55ec35b7c5a164def88a4ccd9c456d4b598d1a674
Ports: 4222/TCP, 8222/TCP
Host Ports: 0/TCP, 0/TCP
Args:
--config
/etc/nats-config/nats.conf
State: Running
Started: Wed, 30 Oct 2024 14:49:51 +0300
Ready: True
Restart Count: 0
Liveness: http-get http://:monitor/healthz%3Fjs-enabled-only=true delay=10s timeout=5s period=30s #success=1 #failure=3
Readiness: http-get http://:monitor/healthz%3Fjs-server-only=true delay=10s timeout=5s period=10s #success=1 #failure=3
Startup: http-get http://:monitor/healthz delay=10s timeout=5s period=10s #success=1 #failure=90
Environment:
POD_NAME: nats-0 (v1:metadata.name)
SERVER_NAME: $(POD_NAME)
Mounts:
/etc/nats-config from config (rw)
/var/run/nats from pid (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-4fwsp (ro)
Events: <none>
Раздел Подробная информация о команде |
Просмотр логов пода
Логи пода очищаются при его остановке. |
Чтобы просмотреть логи контейнеров, расположенных на поде, выполните команду kubectl logs
.
Просмотр логов конкретного контейнера:
kubectl -n <namespace> logs <pod_name> -c <container_name>
Просмотр логов всех контейнеров на поде:
kubectl -n <namespace> logs <pod_name> --all-containers=true
Здесь:
-
<namespace>
— имя пространства имен, в котором установлен кластер. -
<pod_name>
— имя пода, логи которого требуется просмотреть. -
<container_name>
— имя контейнера, логи которого требуется просмотреть.
Чтобы логи передавались в потоковом режиме, то есть обновлялись в реальном времени, укажите опцию
|
С подробной справкой о команде kubectl logs
можно ознакомиться в документации Kubernetes.
Просмотр потребления подом ресурсов процессора и памяти
Чтобы просмотреть потребление подом ресурсов процессора и памяти, выполните следующую команду:
kubectl -n <namespace> top pod <pod_name>
Здесь:
-
<namespace>
— имя пространства имен, в котором установлен кластер. -
<pod_name>
— имя пода, информацию о котором требуется просмотреть.
Пример вывода команды kubectl top pod
NAME CPU(cores) MEMORY(bytes)
test-pod 29m 109Mi
Чтобы наблюдать за изменением потребления ресурсов со временем, используйте команду выше как аргумент команды watch
:
watch -n<seconds> kubectl -n <namespace> top pod <pod_name>
Здесь:
-
<namespace>
— имя пространства имен, в котором установлен кластер. -
<pod_name>
— имя пода, информацию о котором требуется просмотреть. -
<seconds>
— число секунд между запусками команды, являющейся аргументомwatch
.
С подробной справкой о команде kubectl top pod
можно ознакомиться в документации Kubernetes.