如何在 K8S 的 IP 表中阻止传出流量到 ip

How to block outgoing traffic to ip in IP tables in K8S

我想阻止流向 K8s 中 IP 表中的 ip(例如 DB)的传出流量。

我知道在 K8s 中 ip 表只存在于节点级别。

而且我不确定应该在哪个文件中进行更改以及需要什么命令或更改。

请帮我解决这个问题。

谢谢。

您可以部署 istio,特别是 istio 出口网关。

这样您就可以在 istio 清单中管理传出流量

如果可以的话,您可以在节点上直接 运行 IPtable 命令(例如 iptables -A OUTPUT -j REJECT)。

但是文件取决于 OS:/etc/sysconfig/iptables 这是针对 ipv4

我建议检查 Kubernetes 中的网络策略,使用它可以阻止传出流量。

https://kubernetes.io/docs/concepts/services-networking/network-policies/

不需要像 Istio 或其他任何东西那样的额外设置。

您可以在后端使用网络策略处理集群安全,它仅使用 IP 表。

例如,通过仅应用 YAML 来阻止特定 CIDR 或 IP 上的流量

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      role: db
  policyTypes:
    - Egress
  egress:
    - to:
        - ipBlock:
            cidr: 10.0.0.0/24
      ports:
        - protocol: TCP
          port: 5978