Kubernetes网络策略出口端口

Kubernetes网络策略出口端口,kubernetes,kubernetes-networkpolicy,Kubernetes,Kubernetes Networkpolicy,我有以下限制访问前端服务页面的网络策略: apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: namespace: namespace-a name: allow-frontend-access-from-external-ip spec: podSelector: matchLabels: app: frontend-service ingress: - from:

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

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  namespace: namespace-a
  name: allow-frontend-access-from-external-ip
spec:
  podSelector:
    matchLabels:
      app: frontend-service
  ingress:
    - from:
        - ipBlock:
            cidr: 0.0.0.0/0
        ports:
          - protocol: TCP
            port: 443
  egress:
    - to:
        - ipBlock:
            cidr: 0.0.0.0/0
        ports:
          - protocol: TCP
            port: 443

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

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

以下是您对本节的解释:

egress:
    - to:
        - ipBlock:
            cidr: 0.0.0.0/0
        ports:
          - protocol: TCP
            port: 443
开放端口
443
用于
0.0.0.0/0
cidr内所有POD的传出流量

你问的问题

库伯内特斯是怎么知道那个港口的,还是有一种港口 在集群中进行映射,以便返回到客户端的流量位于端口上 443,并在离开时映射回客户端原始端口 集群

由kube代理以以下方式管理:

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


看一看,以便更好地理解

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

以下是您对本节的解释:

egress:
    - to:
        - ipBlock:
            cidr: 0.0.0.0/0
        ports:
          - protocol: TCP
            port: 443
开放端口
443
用于
0.0.0.0/0
cidr内所有POD的传出流量

你问的问题

库伯内特斯是怎么知道那个港口的,还是有一种港口 在集群中进行映射,以便返回到客户端的流量位于端口上 443,并在离开时映射回客户端原始端口 集群

由kube代理以以下方式管理:

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


看一看,以便更好地理解

非常感谢,最后是一个合理的描述和相应的条款(SNAT):)非常感谢,最后是一个合理的描述和相应的条款(SNAT):)