orchestrator, ingest und worker unterstützen jeweils nodeSelector, tolerations, affinity und podAnnotations.
Auf amd64 ausführen
FineParser-Images werden ausschließlich fürlinux/amd64 erstellt. Wenn Ihr Cluster auch arm64-Knoten umfassen kann, legen Sie jede Komponente fest auf diese Architektur fest:
fineparser-values.yaml
Eigene Knoten für Worker bereitstellen
Ein großer Pool kann jeden Knoten auslasten, auf dem er ausgeführt werden darf. Platzieren Sie Worker auf einer dedizierten Knotengruppe mit Taint, und betreiben Sie den Orchestrator und die Ingest-Komponente auf anderen Knoten. Für Knoten mit dem Label und Taintfineparser.abbyy.com/pool=worker:
fineparser-values.yaml
Vorab-Pull des Worker-Images
Wenn viele Worker gleichzeitig auf einem neuen Knoten starten, können ihre Image-Pulls das Pull-Ratenlimit des kubelet erreichen und den gleichzeitigen Start ausbremsen. Istworker.prepull aktiviert, warten die Worker, bis der Knoten das Image einmal gepullt hat.
fineparser-values.yaml
NoSchedule-Taint registrieren, dessen Schlüssel taintKey ist. Ein DaemonSet lädt das Image auf jeden neuen Knoten herunter und entfernt anschließend den Taint.
- Karpenter: Tragen Sie den Taint in die
startupTaintsdes NodePools ein. - Cluster Autoscaler: Erstellen Sie die Knoten der Knotengruppe mit dem Taint. Am Präfix des Standardschlüssels erkennt Cluster Autoscaler, dass der Taint nur vorübergehend ist.
images.worker.pullPolicy muss auf IfNotPresent gesetzt sein, und worker.tolerations darf den Taint nicht tolerieren. Wenn diese Funktion aktiviert ist, wird eine ClusterRole erstellt, die Nodes abrufen und patchen darf.
