Wie man

So führen Sie Telnet / tcpdump in OpenShift v4 CoreOS-Knoten aus

So führen Sie Telnet / tcpdump in OpenShift v4 CoreOS-Knoten aus

Ab OpenShift 4 Release ist Red Hat Enterprise Linux CoreOS (RHCOS) das empfohlene und unterstützte Betriebssystem, das auf allen OpenShift Container Platform-Maschinen läuft. RHCOS kombiniert die Qualitätsstandards von Red Hat Enterprise Linux (RHEL) mit den automatisierten Remote-Upgrade-Funktionen von Container Linux.

RHCOS wird nicht mit Paketmanagern wie yum oder dnf geliefert. Dieses Betriebssystem bietet Transaktions-Upgrades mit dem U/min-Ostree System, bei dem Updates über Container-Images bereitgestellt werden und Teil des OpenShift Container Platform-Update-Prozesses sind.

Ohne OS-Paketmanager und Unterstützung für den direkten Download und die Installation von RPM-Paketen ist die einzige Möglichkeit, Tools auszuführen, die nicht mit dem Betriebssystem vorgepackt sind, über Container. Das Gute daran ist, dass CoreOS mit einem Skript namens . geliefert wird Werkzeugkasten der einen Container startet, mit dem Sie Ihre bevorzugten Debugging- oder Admin-Tools einbringen können.

OpenShift-Kurse:

Praktisches OpenShift für Entwickler - Neuer Kurs 2021

Ultimate Openshift (2021) Bootcamp von School of Devops

Toolbox-Container in OpenShift 4 RHCOS-Maschinen ausführen

Sie können den Toolbox-Container über die Schaltfläche . starten Werkzeugkasten Skript bereitgestellt. Greifen Sie jedoch zuerst auf den OpenShift-Knoten zu, von dem aus Sie Admin-Tools im Container ausführen möchten.

Sie können verwenden ok debuggen Befehl oder SSH.

--- Zugriff auf Knoten mit SSH --- $ ssh [email protected] --- Zugriff auf Knoten mit oc debug-Befehl --- $ oc debug node/

Zugang mit oc debuggen Beispiel.

$ oc Debug-Knoten/Knoten01.okp.Computerforgeeks.com pod/node01ocpcomputingforgeekscom-debug starten… Um Host-Binärdateien zu verwenden, führen Sie 'chroot /host'

Die Eingabeaufforderung stammt aus einem speziellen Tools-Container, der das Root-Dateisystem des Knotens am /Gastgeber Ordner und ermöglicht es yoy, die Dateien vom Knoten zu inspizieren.

Sie müssen beginnen a chroot Schale in der /Gastgeber Ordner wie in der Befehlsausgabe gezeigt. Dadurch können Sie Host-Binärdateien in der Shell verwenden.

chroot /host

Sie sehen eine Ausgabe wie unten:

chroot /host Pod-IP: 10.10.30.235 Wenn keine Eingabeaufforderung angezeigt wird, drücken Sie die Eingabetaste. sch-4.2# chroot /host sh-4.4# 

Um den Toolbox-Container zu starten, verwenden Sie den folgenden Befehl.

$ /usr/bin/toolbox

Wenn Sie das Skript zum ersten Mal ausführen, wird das Toolbox-Container-Image auf Ihren Knoten heruntergeladen.

Versuchen, die Registrierung zu ziehen.roter Hut.io/rhel8/support-tools… Image-Quellsignaturen abrufen Blob kopieren ec1681b6a383 done Blob kopieren c4d668e229cd done Blob kopieren 6b1688d3542f done Kopieren der Konfiguration 50b63c2aff done Schreiben des Manifests in das Image-Ziel Speichern von Signaturen 50b63c2aff8c13f9f8594c6fd5c8c13f9f8594c6fd5c

Dann dreht es den Container mit Podman.

Erstellen eines Containers 'toolbox-core' mit dem Bild 'registry.roter Hut.io/rhel8/support-tools' Detected RUN-Label im Container-Image. Verwenden Sie das als Standardbefehl: podman run -it --name toolbox-core --privileged --ipc=host --net=host --pid=host -e HOST=/host -e NAME=toolbox-core - e IMAGE=Registrierung.roter Hut.io/rhel8/support-tools:latest -v /run:/run -v /var/log:/var/log -v /etc/machine-id:/etc/machine-id -v /etc/localtime:/ etc/localtime -v ///hostregistry.roter Hut.io/rhel8/support-tools:neueste

Führen Sie telnet / tcpdump in OpenShift v4 CoreOS-Servern aus

Sobald Sie sich in der Container-Shell befinden, können Sie lecker Paketmanager, um die gewünschten Debug- und Verwaltungstools zu installieren.

--- Netzwerktools installieren --- # yum -y iproute net-tools installieren --- Telnet installieren --- # yum -y Telnet installieren --- tcpdump installieren --- # yum -y tcpdump installieren --- Beliebiges anderes Tool installieren --- # yum -y installieren 

Telnet verwenden:

#telnet  

tcpdump verwenden:

Identifizieren Sie den Schnittstellennamen - Sie müssen Netzwerktools installiert haben.

# IP-Link anzeigen | Kopf 1: siehe:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens3:  mtu 1500 qdisc mq state UP Modus DEFAULT group default qlen 1000 link/ether 00:1a:4a:16:01:73 brd ff:ff:ff:ff:ff:ff 7: ovs-system:  mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 4e:66:b9:32:0d:26 brd ff:ff:ff:ff:ff:ff 8: br0:  mtu 1450 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 72:d6:df:e8:13:48 brd ff:ff:ff:ff:ff:ff 9: vxlan_sys_4789:  mtu 65000 qdisc noqueue master ovs-system state UNKNOWN mode DEFAULT group default qlen 1000 link/ether 4a:c4:7f:c1:85:f7 brd ff:ff:ff:ff:ff:ff 

Verwenden von tcpdump.

# tcpdump 

Dieses Beispiel dient zum Erfassen von Paketen von jeder Schnittstelle, die für Port bestimmt ist 443. Wir speichern die Ausgabe in einem Pfad im Node-Dateisystem, auf den zugegriffen werden kann /Gastgeber Verzeichnis.

# tcpdump -i beliebiger Port 443 -s 0 -vv -s 0 -w /host/tmp/testpaketname.pcap

Sie können ersetzen irgendein mit Schnittstellenname, e.G:

-ich ens3

Um die Aufnahme zu beenden, drücken Sie Strg-C.

Ausführen von tcpdump-Capture aus einem Container

Öffnen Sie eine Debug-Shell oder SSH für einen Knoten, auf dem der Ziel-Pod ausgeführt wird:

$ oc Debug-Knoten/ --- ODER --- $ ssh [email protected]

Identifizieren Sie die ID der Prozess-ID des Ziel-Pods mithilfe der crictl ps Befehl:

#crictl ps

Meine Container-ID lautet 51a17d9a4b376. Speichern wir das als Variable.

container_id="51a17d9a4b376"

Container-PID abrufen:

container_pid=$(crictl inspect --output yaml $container_id | grep 'pid:' | awk 'print $2')

Wert bestätigen:

# echo $container_pid 1124033 # ps 1124033 PID TTY STAT TIME COMMAND 1124033 ? Ss 0:00 /bin/sleep 3650d

Sie können den tcpdump im Netzwerk-Namespace des Containers mit dem folgenden Befehl starten.

# nsenter -n -t $container_pid -- tcpdump  --- Beispiel --- # tcpdump -i beliebiger Port 443 -s 0 -vv -s 0 -w /host/tmp/testpaketname.pcap

Bitte beachte, dass tcpdump muss im Container installiert werden, bevor die Befehle ausgeführt werden.

OpenShift-Kurse:

Praktisches OpenShift für Entwickler - Neuer Kurs 2021

Ultimate Openshift (2021) Bootcamp von School of Devops

Weitere Artikel zu OpenShift.

So installieren Sie ArgoCD auf einem OpenShift-Cluster

So installieren Sie Istio Service Mesh auf OpenShift 4.x

Führen Sie die Ceph-Toolbox für Rook auf Kubernetes / OpenShift aus

So installieren Sie Foreman 2.x auf Ubuntu 20.04
Foreman ist ein kostenloses Open-Source-Tool für die Verwaltung des Serverlebenszyklus – Bereitstellung und Konfiguration bis hin zu Orchestrierung un...
Installieren und konfigurieren Sie Nagios 4 unter Debian 10 (Buster)
PräambelIn dieser Anleitung werden wir Nagios 4 auf Debian 10 (Buster) Linux installieren. Nagios ist ein leistungsstarkes Überwachungssystem, das es ...
Veröffentlichung von Linux Sudo 1.9 - Besser und sicherer
Jeder, der sich mit Linux oder Unix auskennt, weiß, was der sudo-Befehl bietet, wenn er in seinem Toolkit enthalten ist. Sobald du hast "sudo rechte” ...