Просмотр состояния подов кластера
Просмотр статуса и логов подов может понадобиться при решении проблем с системой. Инструкция по поиску подов, на которых расположены сервисы системы, описана в разделе Список подов сервисов.
Просмотр состояния подов в списке
Чтобы просмотреть состояние подов кластера, выполните следующую команду:
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
Состояние подов отображается в столбце STATUS
. Возможные статусы:
-
Pending
: под принят кластером, но один или несколько контейнеров еще не установлены и не подготовлены к запуску. Этот статус включает время, в течение которого под ожидает планирования, а также загружаются по сети образы контейнеров. -
Running
: под привязан к узлу, а также все его контейнеры созданы. По крайней мере один контейнер работает или находится в процессе запуска или перезапуска. -
Succeeded
: все контейнеры пода успешно завершили работу и не будут перезапущены. -
Failed
: все контейнеры пода завершили работу, и по крайней мере один контейнер завершил работу с ошибкой (с кодом, не равным 0, или был остановлен системой) и не будет автоматически перезапущен. -
Unknown
: состояние пода не может быть получено. Такое состояние обычно возникает из-за ошибки связи с узлом, в котором под должен работать.
Также состояние подов кластера можно просмотреть на дашборде Grafana в разделе Инструменты → Мониторинг веб-интерфейса системы. |
Просмотр подробной информации о поде
Чтобы просмотреть подробную информацию о поде, в том числе состояние, узел, на котором он находится, список его контейнеров и так далее, выполните следующую команду:
kubectl -n <namespace> describe pods/<pod_name>
Здесь:
-
<namespace>
— имя пространства имен, в котором установлен кластер. -
<pod_name>
— имя пода, информацию о котором требуется просмотреть.
Пример вывода команды kubectl describe
Name: test-pod Namespace: system Priority: 0 Service Account: default Node: dev.system.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.