首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes网络策略出口端口

Kubernetes网络策略出口端口
EN

Stack Overflow用户
提问于 2019-08-28 08:09:12
回答 1查看 1.3K关注 0票数 0

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

代码语言:javascript
复制
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,并在离开集群时被映射回客户端原始端口?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-20 09:31:45

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

这是您应该如何解释本节:

代码语言:javascript
复制
egress:
    - to:
        - ipBlock:
            cidr: 0.0.0.0/0
        ports:
          - protocol: TCP
            port: 443

打开端口443,用于0.0.0.0/0 cidr中所有豆荚的传出通信量。

你要问的是

Kubernetes是如何知道该端口的,或者集群中是否存在某种端口映射,以便返回到客户机的流量位于端口443,并在离开集群时被映射回客户端原始端口?

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

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

为了更好地理解,请看一下Kubernetes网络基础

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57687739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档