我使用Openshift和Kubernetes作为我的应用程序的云平台。出于测试目的,我需要拦截传入的http请求到我的pod。这可以通过Kubernetes客户端库来实现,也可以使用yaml进行配置?
答案 0 :(得分:0)
简单的答案是否定的,你不能。
解决此问题的方法之一是执行容器(kubectl exec -it <pod> bash
),安装tcpdump并运行类似tcpdump -i eth0 -n
的内容。
在基础水平上解决问题的一种更合理的方法是使用一些跟踪工具,如Jaeger / Zipkin
答案 1 :(得分:0)
您可以尝试以下类似的操作。首先,您需要创建工作。 用名称(tcpdumppod.yaml)说
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
=> kubectl创建-f tcpdumppod.yaml 并检查容器运行时作业创建的pod日志。