k8s 网络工具 nsenter

k8s 工具

借助nsenter命令进入容器命名空间进行抓包和网络诊断

#!/bin/bash

ns=$1     #传参1:命名空间
pod_name=$2  #传参2:pod名称

Container_id=$(kubectl describe pod -n $ns $pod_name  | grep "Container ID:" | cut -d '/' -f 3 | cut -c 1-12)
node=$(kubectl get pods -n $ns $pod_name -o wide | awk '{print $7}' | grep -v NODE)
docker_id='docker_id1=$(docker inspect -f {{.State.Pid}}'
read -t 30 -p "是否建立远程连接确认y/n:" num1

if [ $num1 == y ];then
   echo "-----------------节点输入-----------------"
   echo "$docker_id $Container_id)"
         docker_id1="$docker_id $Container_id"
   echo 'nsenter -n --target $docker_id1'
   echo "------------------------------------------"
   read -t 30 -p "ssh连接用户名:" name
   ssh $name@$node
  else
   echo "-----------------节点输入-----------------"
   echo "$docker_id $Container_id)"
         docker_id1="$docker_id $Container_id"
   echo 'nsenter -n --target $docker_id1'
   echo "------------------------------------------"
fi

bash k8s_ns.sh kube-system coredns-7cccdb8747-qztnd
#执行脚本并传参

脚本命令解析

查看指定 pod 运行的容器 ID

  • kubectl describe pod -n mservice

获得容器进程的 pid(进入Pod节点)

  • docker inspect -f {{.State.Pid}}

进入该容器的 network namespace(进入Pod节点)

  • nsenter -n --target
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值