Skip to content

Czym jest Ingress w NetworkPolicy w Kubernetes?

Jest to definicja dla ruchu sieciowego wchodzącego na Poda, to do czego ma być zlecony dostęp z zewnętrznych Podów.

ingress_kubernetes

Możliwe typy wybierania ruchu typu Igress (ingress.from)

  • podSelector - wybieranie jaki Pod ma mieć dostęp, po konkretnym Labelu Poda
  • namespaceSelector - jaki namespace ma mieć dostęp na ruch wchodzący na Poda
  • ipBlock - jaki adres lub podsieć ma mieć dostęp do Poda

Przykładowy Ingress w NetworkPolicy

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
    name: db-net_policy
spec:
    podSelector:
        matchLabels:
            role: db
    policyTypes:
        - Ingress
    ingress:
        - from:
              - podSelector:
                    matchLabels:
                        role: api # selector dopuszczony na Podach
                namespaceSelector:
                    matchLabels:
                        kubernetes.io/metadata.name: lab # nazwa namespace
              - ipBlock:
                    cidr: 10.1.1.24/32 # adres dopuszczony
          ports:
              - protocol: TCP
                port: 3306

Tylko Pody z selectorem role: api, z namespace lab będą miały dostęp na port 3306.

Dodatkowo host 10.1.1.24 ma również taki dostęp.