Kubernetes网络策略出口端口

时间:2019-08-28 08:09:12

标签: kubernetes kubernetes-networkpolicy

我有以下网络策略用于限制对前端服务页面的访问:

conditionals

我的问题是:我可以使用出口规则(443上的端口限制)强制实施HTTPS,如果可以,这如何工作?假设客户端连接到前端服务,则客户端在其机器上选择一个随机端口进行此连接,Kubernetes如何知道该端口,或者集群中是否存在某种端口映射,因此流回客户端的流量为在端口443上,并在离开群集时被映射回客户端原始端口?

1 个答案:

答案 0 :(得分:2)

您可能对网络策略(NP)有错误的理解。

这是您应解释本节的方式:

egress:
    - to:
        - ipBlock:
            cidr: 0.0.0.0/0
        ports:
          - protocol: TCP
            port: 443

打开端口443,以获取0.0.0.0/0 cidr中所有pod的传出流量。

您要问的问题

  

Kubernetes如何知道该端口,或者有一种端口   在群集中进行映射,以便流回客户端的流量在端口上   443,并在离开时映射回客户端原始端口   集群?

由kube-proxy通过以下方式进行管理:

对于从Pod到外部地址的流量,Kubernetes仅使用SNAT。它的作用是将主机的内部源IP:port替换为主机的IP:port。当返回数据包返回主机时,它将主机的IP:端口重写为目的地,并将其发送回原始主机。整个过程对原始的pod完全透明,而原始的pod根本不知道地址的翻译。

请查看Kubernetes networking basics,以更好地理解。