Итак, у вас есть кластер OpenShift .
Проверка журналов узлов кластера – это нормальная операция при устранении неполадок в кластере, например, неисправных служб, проблем с сетью и хранилищем.
В этом руководстве мы рассмотрим, как можно отображать журналы узлов OpenShift с помощью инструментов командной строки.
Начиная с OpenShift Container Platform 4.0, узлы OpenShift основаны на Red Hat Enterprise Linux CoreOS (RHCOS), а в версиях OKD используется Fedora CoreOS (FCOS).
Эти операционные системы запускают очень мало локальных сервисов, которым требуется прямой доступ к узлу для проверки их состояния.
Отображение логов хостов OpenShift
Большинство системных служб в RHCOS / FCOS работают как контейнеры, за исключением механизма контейнеров CRI-O и Kubelet, которые являются единицами Systemd.
sh-4.4# systemctl status crio
● crio.service - Open Container Initiative Daemon
Loaded: loaded (/usr/lib/systemd/system/crio.service; disabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/crio.service.d
└─10-default-env.conf
Active: active (running) since Sat 2020-03-28 10:59:50 UTC; 1h 7min ago
Docs: https://github.com/cri-o/cri-o
Main PID: 2937 (crio)
Tasks: 42
Memory: 322.4M
CPU: 5min 28.410s
CGroup: /system.slice/crio.service
└─2937 /usr/bin/crio --enable-metrics=true --metrics-port=9537
.....
sh-4.4# systemctl status kubelet
● kubelet.service - Kubernetes Kubelet
Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/kubelet.service.d
└─10-default-env.conf
Active: active (running) since Sat 2020-03-28 11:00:11 UTC; 1h 7min ago
Process: 3028 ExecStartPre=/bin/rm -f /var/lib/kubelet/cpu_manager_state (code=exited, status=0/SUCCESS)
Process: 3026 ExecStartPre=/bin/mkdir --parents /etc/kubernetes/manifests (code=exited, status=0/SUCCESS)
Main PID: 3030 (hyperkube)
Tasks: 56 (limit: 26213)
Memory: 241.6M
CPU: 5min 7.547s
CGroup: /system.slice/kubelet.service
└─3030 /usr/bin/hyperkube kubelet --config=/etc/kubernetes/kubelet.conf --bootstrap-kubeconfig=/etc/kubernetes/kubeconfig --kubeconfig=/var/lib/kubelet/kubeco
.....
Команда oc adm node-logs может использоваться для просмотра этих журналов, не требуя прямого ssh для узлов кластера.
Синтаксис:
oc adm node-logs [-l LABELS] [NODE...] [flags]
$ oc adm node-logs node01.ocp.itsecforu.ru
$ oc adm node-logs <node-name> -u crio
Покажем логи, доступные на ноде в /var/log:
$ oc adm node-logs node01.ocp.itsecforu.ru --path=/
audit/
btmp
chrony/
containers/
crio/
es-containers.log.pos
fluentd/
glusterfs/
journal/
journal_pos.json
lastlog
openvswitch/
pods/
private/
samba/
sssd/
vmware-network.1.log
vmware-network.2.log
vmware-network.log
vmware-vgauthsvc.log.0
vmware-vmsvc.1.log
vmware-vmsvc.log
wtmp
oc adm node-logs node01.ocp.itsecforu.ru --path=/audit/audit.log
oc adm node-logs --role master -u kubelet
oc adm node-logs --role worker -u kubelet
oc adm node-logs --role master --path=/
oc adm node-logs --role worker --path=/
oc adm node-logs --role infra --path=/