如何在Kubernetes中拦截对服务的请求?

如何在Kubernetes中拦截对服务的请求?,kubernetes,Kubernetes,假设我在Kubernetes中定义了一个名为my backend的服务。我想拦截发送到此服务的每个请求,正确的方法是什么?例如,同一命名空间下的另一个容器通过发送请求 我尝试使用带有验证Webhook的准入控制器。但是,它可以截获服务资源上的CRUD操作,但无法截获到特定服务的任何连接。在Kubernetes中有截获到服务的请求的方法 对于解决方法,这是您可以做的- 创建一个sidecar容器来记录每个传入的请求 在容器中运行tcpdump-i eth0-n并过滤掉请求 使用 在云提供商上创建服

假设我在Kubernetes中定义了一个名为my backend的服务。我想拦截发送到此服务的每个请求,正确的方法是什么?例如,同一命名空间下的另一个容器通过发送请求

我尝试使用带有验证Webhook的准入控制器。但是,它可以截获服务资源上的CRUD操作,但无法截获到特定服务的任何连接。

在Kubernetes中有截获到服务的请求的方法

对于解决方法,这是您可以做的-

创建一个sidecar容器来记录每个传入的请求

在容器中运行tcpdump-i eth0-n并过滤掉请求

使用

在云提供商上创建服务,将有自己的日志记录机制。对于aws上的ex-load balancer服务,其日志将在S3上生成

在Kubernetes中,存在截获对服务的请求的方法

对于解决方法,这是您可以做的-

创建一个sidecar容器来记录每个传入的请求

在容器中运行tcpdump-i eth0-n并过滤掉请求

使用

在云提供商上创建服务,将有自己的日志记录机制。对于aws上的ex-load balancer服务,其日志将在S3上生成


您可以使用服务网格,例如。istio服务网在每个吊舱中部署一个侧车。特使截获所有进入pod的请求,并可向您提供请求数量等指标。服务网格带来更多功能,如分布式跟踪、速率限制等。

您可以使用服务网格,如。istio服务网在每个吊舱中部署一个侧车。特使截获所有进入pod的请求,并可以向您提供请求数量等指标。服务网格带来了更多功能,如分布式跟踪、速率限制等。

Kubernetes NetworkPolicy对象将对此有所帮助。网络策略控制POD组之间以及其他网络端点之间的通信方式。您只能基于pod选择器允许进入“我的后端”服务的流量。下面是一个示例,该示例将允许来自特定服务器的入口流量

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
   name: ingress-only-from-frontend-to-my-backend
   namespace: default    
spec:
   podSelector:
      matchLabels:
          <my-backend pod label>
   policyTypes:
   - Ingress
   ingress:
    - from:  
      - podSelector:
          matchLabels:
            <Frontend web pod label>

Kubernetes NetworkPolicy对象将对此有所帮助。网络策略控制POD组之间以及其他网络端点之间的通信方式。您只能基于pod选择器允许进入“我的后端”服务的流量。下面是一个示例,该示例将允许来自特定服务器的入口流量

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
   name: ingress-only-from-frontend-to-my-backend
   namespace: default    
spec:
   podSelector:
      matchLabels:
          <my-backend pod label>
   policyTypes:
   - Ingress
   ingress:
    - from:  
      - podSelector:
          matchLabels:
            <Frontend web pod label>

谢谢你的回答。但我希望在服务范围上找到一个约束,而不是pod。另外,我想做一些复杂的截取,比如根据请求的内容是否允许请求。谢谢你的回答。但我希望在服务范围上找到一个约束,而不是pod。另外,我想做一些复杂的截取,比如根据请求的内容是否允许请求。谢谢你的回答。我现在正在调查这件事。我想知道ambassador是否与之类似?ambassador是入口网关,可以捕获集群内第一个服务的客户端流量,但如果您从第一个服务命中集群内的另一个服务,则不会捕获。大使是南北交通,而Istio可以捕获南北和东西交通。谢谢你的回答。我现在正在调查这件事。我想知道ambassador是否与之类似?ambassador是入口网关,可以捕获集群内第一个服务的客户端流量,但如果您从第一个服务命中集群内的另一个服务,则不会捕获。大使是南北交通,而Istio可以捕获南北和东西交通。