拦截/捕获Kubernetes中pods/服务的传入流量

拦截/捕获Kubernetes中pods/服务的传入流量,kubernetes,openshift,Kubernetes,Openshift,我正在使用Openshift和Kubernetes作为我的应用程序的云平台。出于测试目的,我需要截获对我的POD的传入http请求。这是否可以通过Kubernetes客户端库实现,或者可以通过yaml进行配置?简单的答案是不,您不能 克服这一问题的方法之一是在容器中执行(kubectl exec-it bash),安装tcpdump并运行类似于tcpdump-i eth0-n 一个更合理的解决方法是使用一些跟踪工具,比如Jaeger/Zipkin,你可以试试下面的方法,它会起作用的。首先,您需要

我正在使用Openshift和Kubernetes作为我的应用程序的云平台。出于测试目的,我需要截获对我的POD的传入http请求。这是否可以通过Kubernetes客户端库实现,或者可以通过yaml进行配置?

简单的答案是不,您不能

克服这一问题的方法之一是在容器中执行(
kubectl exec-it bash
),安装tcpdump并运行类似于
tcpdump-i eth0-n


一个更合理的解决方法是使用一些跟踪工具,比如Jaeger/Zipkin,你可以试试下面的方法,它会起作用的。首先,您需要创建一个作业。 让我们用名称(tcpdumppod.yaml)来表示

=>kubectl创建-f tcpdumppod.yaml
并在容器运行时检查作业创建的pod日志。

这是服务还是pod ip--------------------------->args:[“tcpdump-i any-s0-vv-n dst主机10.233.6.70和端口7776 | | src 10.233.64.23”]@n或者这是pod ip
apiVersion: batch/v1
kind: Job
metadata:
  name: tcpdump-capture-job
  namespace: blue
spec:
  template:
    metadata:
      name: "tcpdumpcapture-pod"
    spec:
      hostNetwork: true
      nodeSelector:
        kubernetes.io/hostname: "ip-xx-x-x-xxx.ap-south-1.compute.internal"
      tolerations:
        - key: node-role.kubernetes.io/master
          effect: NoSchedule
      containers:
      - name: "job-container"
        image: "docker.io/centos/tools"
        command: ["/bin/bash", "-c", "--"]
        args: [ "tcpdump -i any -s0 -vv -n dst host 10.233.6.70 and port 7776 || src 10.233.64.23" ]
      restartPolicy: Never 
  backoffLimit: 3
  activeDeadlineSeconds: 460