首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >k8s中pod部署centos容器抓包服务端

k8s中pod部署centos容器抓包服务端

原创
作者头像
聂伟星
发布2021-01-25 15:46:37
发布2021-01-25 15:46:37
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

有时候我们遇到一些网络问题需要通过抓包来定位下什么问题,但是我们通常在容器内不是很好方便执行抓包,或者没有抓包命令,那应该需要怎么处理呢,其实我们可以在业务pod里面加一个容器,专门用来抓取服务的包,然后将抓包文件保存到节点上,最好从节点拷贝到本地进行分析即可。

代码语言:javascript
代码运行次数:0
运行
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    k8s-app: tcpdump-test
    qcloud-app: tcpdump-test
  name: tcpdump-test
  namespace: test
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: tcpdump-test
      qcloud-app: tcpdump-test
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate
  template:
    metadata:
      labels:
        k8s-app: tcpdump-test
        qcloud-app: tcpdump-test
    spec:
      containers:
      - args:
        - tcpdump -i eth0 -nn -vv -G 60  -w /tmp/%Y_%m%d_%H%M_%S.pcap
        command:
        - /bin/bash
        - -c
        env:
        - name: PATH
          value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
        image: nwx-test.tencentcloudcr.com/nwx/centos:nwx
        imagePullPolicy: IfNotPresent
        name: centos
        resources:
          limits:
            cpu: 500m
            memory: 1Gi
          requests:
            cpu: 250m
            memory: 256Mi
        securityContext:
          privileged: false
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /tmp
          name: vol
      - image: nginx
        imagePullPolicy: Always
        name: nginx
        resources:
          limits:
            cpu: 500m
            memory: 1Gi
          requests:
            cpu: 250m
            memory: 256Mi
        securityContext:
          privileged: false
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - hostPath:
          path: /tmp/pacp
          type: DirectoryOrCreate
        name: vol

其实我们就是在nginx的pod中增加一个centos的容器来抓pod内的eth0的包,然后上传到节点的/tmp/pacp目录,然后我们从节点上拷贝所需要的包,通过Wireshark打开进行分析。

我们这里测试的抓包命令是下面这个,每60s保存下包的内容到/tmp下,这里可以根据实际需要抓包的内容进行修改和配置

代码语言:javascript
代码运行次数:0
运行
复制
tcpdump -i eth0 -nn -vv -G 60  -w /tmp/%Y_%m%d_%H%M_%S.pcap

下面我们测试下通过service访问下nginx服务

然后拷贝节点上的抓包文件到本地

拷贝到本地后通过Wireshark打开进行分析

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档