So konfigurieren Sie die externen IPs des Dienstes in Kubernetes verweigern

So konfigurieren Sie die externen IPs des Dienstes in Kubernetes verweigern

Sie können auf ein Problem stoßen, während Sie einen Kubernetes -Cluster einrichten, wenn Sie nur wissen, wie Sie Nodeport verwenden, um Ihren Kubernetes -Service über das Internet zugänglich zu machen. Bei der Verwendung des Nodeport -Service -Typs wird eine hohe Portnummer zugewiesen und Sie müssen Verbindungen zu diesen Ports in Ihrer Firewall -Regel zulassen. Es ist schädlich für Ihre Infrastruktur. Sie können einen Block von IP -Adressen außerhalb des Clusters als Cluster -Administrator zuweisen, der dort den Datenverkehr an Dienste übertragen kann. Genau dies werden in diesem Artikel sprechen: Alle kritischen Informationen zum Konfigurieren von Deny -Service -externen IPs in Kubernetes finden.

Was ist externer IP -Dienst?

Einer der Serviceendpunkte erhält den Datenverkehr, der den Cluster über die externe IP (als Ziel -IP) und den Serviceport eingibt. Kubernetes ist nicht für die Verwaltung externer IP verantwortlich.

In dieser Situation ist es entscheid. Mit dem externen IP -Service -Typ können wir den Dienst an die IP -Adresse binden, die zum Zugriff auf den Cluster verwendet wird.

Die Tatsache, dass das Kubernetes -Netzwerk mit dem Overlay -Netzwerk interagiert, ist wichtig, um diese Situation zu verstehen. Dies impliziert, dass Sie praktisch auf jeden Knoten im Cluster zugreifen können, sobald Sie einen der Knoten erreicht (Master- oder Arbeiterknoten).

Das Netzwerk wird auf diese Weise gezeigt:


Beide Knoten 1 und 2 im Diagramm teilen eine einzige IP -Adresse. Der echte Schote lebt auf Knoten 1, aber die IP -Adresse 1.2.3.6 ist an den Nginx -Dienst auf Knoten 1 gebunden. IP -Adresse des Knoten 1, 1.2.3.4, ist an den HTTPD -Dienst gebunden, und dort befindet sich der tatsächliche Pod des Knotens 2 dort.

Dies wird durch die Grundlagen des Overlay -Netzwerks ermöglicht. Wenn wir die IP -Adresse 1 kräuseln 1.2.3.4, der HTTPD -Dienst sollte antworten; Wenn wir 1 kräuseln.2.3.5, der Nginx -Dienst sollte antworten.

Vorteilhafte und benachteiligte externe IP

Hier sind die Vor- und Nachteile von externem IP:

Es ist vorteilhaft, externe IP zu verwenden, da:

    • Ihre IP liegt vollständig in Ihrer Kontrolle. Anstatt die ASN des Cloud -Anbieters zu verwenden, können Sie IP verwenden, die zu Ihrem eigenen ASN gehört.

Die Nachteile von externer IP enthalten Folgendes:

    • Das unkomplizierte Setup, das wir jetzt durchlaufen, ist nicht sehr leicht verfügbar. Dies impliziert, dass der Service, wenn der Knoten ausfällt, nicht mehr zugänglich ist und Sie das Problem manuell beheben müssen.
    • Um die IPS zu bewältigen, ist beträchtliche menschliche Arbeitskräfte erforderlich. Da die IPs nicht dynamisch für Sie zugewiesen werden, müssen Sie es manuell tun.

Was ist standardmäßig Verhalten verweigern/zulassen?

Der "Standard zulassen”bezeichnet, dass der gesamte Verkehr standardmäßig zulässig ist. Sofern nicht ausdrücklich zulässig ist, wird der gesamte Verkehr standardmäßig abgelehnt, wenn der Begriff verwendet wird. “Standardleugnen.Außer wenn eine Netzwerkrichtlinie angegeben ist.

    • Der gesamte Verkehr zu und von einer POD ist zulässig, wenn für diese Pod keine Netzwerkrichtlinien in Kraft sind.
    • Wenn eine oder mehrere Netzwerkrichtlinien für einen Schoten mit dem Eindringen in Kraft sind, ist nur dieser durch diese Richtlinien ausdrücklich gestattete Verkehr zulässig.
    • Wenn eine oder mehrere Netzwerkrichtlinien für einen Schoten mit dem Ausgangstyp gelten, ist nur der von diesen Richtlinien zulässige Ausstiegsverkehr zulässig.

Die Standardeinstellung für andere Endpunkttypen (VMs, Host -Schnittstellen) besteht darin, den Verkehr zu blockieren. Es ist nur der zulässige Datenverkehr zulässig, der ausdrücklich zulässig ist, auch wenn für den Endpunkt keine Netzwerkrichtlinien gelten.

Best Practice: Implizite Standard -Verweigerung der Richtlinie

Sie müssen eine implizite Standardverweigerungsrichtlinie konfigurieren, die für Ihre Kubernetes -Pods erstellt wurde. Dies stellt sicher, dass der unerwünschte Verkehr automatisch blockiert wird. Denken Sie daran, dass implizite Standard die Richtlinien immer zuletzt in Kraft treten. Wenn andere Richtlinien den Verkehr zulassen, gilt die Ablehnung nicht. Die Ablehnung wird erst umgesetzt, nachdem alle anderen Richtlinien berücksichtigt wurden.

So erstellen Sie eine Standardeinstellung verweigert Richtlinien für Kubernetes -Pods?

Wir empfehlen bei der Nutzung der globalen Netzwerkrichtlinie auch dann, wenn eine der folgenden Regeln verwendet werden kann, um eine Standardpolitik für Kubernetes -Pods zu erstellen. Eine globale Netzwerkrichtlinie wird auf alle Workloads (VMs und Container) über alle Namensbereiche und Hosts angewendet. Eine globale Netzwerkrichtlinie fördert einen vorsichtigen Sicherheitsansatz bei der Verteidigung der Ressourcen.

    • Aktivieren Sie die Standardeinstellung, um die globale Netzwerkrichtlinie nicht zu verweigern, nicht namitierte
    • Aktivieren Sie die Standardeinstellung, um die Netzwerkrichtlinie zu verweigern, namensspace
    • Aktivieren Sie die Standardeinstellung, um die kubernetes -Richtlinie zu verweigern, namensspace

Was ist IP -Block?

Damit werden bestimmte IP -CIDR -Bereiche so ausgewählt, dass sie als Ein- oder Ausstiegsziel. Angesichts der Tatsache, dass POD-IPs vorübergehend und unvorhersehbar sind, sollten diese cluster-externen IPs sein.

Die Quell- oder Ziel -IP von Paketen muss häufig umgeschrieben werden, wenn die Clustereingangs- und Ausstiegsmethoden verwendet werden. Abhängig vom jeweiligen Netzwerk -Plugin (Cloud -Dienstanbieter, Service -Implementierung usw.) Das wird verwendet, das Verhalten kann sich ändern.

Dies gilt für den Eintritt und bedeutet, dass Sie in einigen Fällen eingehende Pakete filtern müssen. Andererseits kann die „Quell -IP“, auf der die NetworkPolicy arbeitet.

Dies zeigt, dass Verbindungen zwischen Pods und Service-IPs, die zu Cluster-externen IPs umgeschrieben werden.

Was sind die Standardrichtlinien??

Alle Ein- und Ausstiegsverkehr zu und von Schoten in einem Namespace sind standardmäßig zulässig, wenn für diesen Namespace keine Steuerelemente vorhanden sind. Sie können das Standardverhalten des Namespace anhand der folgenden Beispiele ändern.

Standardmäßig den gesamten Verkehr verweigern

Wenn Sie eine Netzwerkrichtlinie erstellen, die alle Pods auswählt, jedoch keinen eingehenden Verkehr zu diesen Schoten enthält, können Sie eine Isolationsrichtlinie für die Eingangseingangsanlage erstellen, und das gilt für einen Namespace.


Dies stellt sicher, dass alle Schoten, unabhängig davon. Diese Regel gilt nicht für die Isolation für das Verlassen eines Pods.

Standardmäßig den gesamten Ausstiegsverkehr verweigern

Wenn Sie ein Netzwerkpolicy erstellen, das alle Pods auswählt, aber den Ausstiegsverkehr von diesen Schoten verbietet, können Sie eine „Standard“ -Inus -Isolationspolitik erstellen, und das gilt auch für einen Namespace.

Abschluss

In diesem Leitfaden drehte sich alles um die Verwendung von DenyServiceExternalips. Wir haben auch eine diagrammatische Darstellung entwickelt, um unsere Benutzer zu verstehen, dass es funktioniert. Wir haben auch Beispielkonfigurationen bereitgestellt.