Skip to content

1. 根据 Pid 获取 K8s Pod 名称

bash
$ vim pod_name_info.sh

#!/usr/bin/env bash

Check_jq() {
  which jq &> /dev/null
  if [ $? != 0 ];then
    echo -e "\033[32;32m 系统没有安装 jq 命令,请参考下面命令安装!  \033[0m \n"
    echo -e "\033[32;32m Centos 或者 RedHat 请使用命令 yum install jq -y 安装 \033[0m"
    echo -e "\033[32;32m Ubuntu 或者 Debian 请使用命令 apt-get install jq -y 安装 \033[0m"
    exit 1
  fi
}

Pod_name_info() {
  CID=`cat /proc/${pid}/cgroup | head -1 | awk -F '/' '{print $5}'`
  CID=$(echo ${CID:0:8})
  docker inspect $CID | jq '.[0].Config.Labels."io.kubernetes.pod.name"'
}

pid=$1
Check_jq
Pod_name_info
$ vim pod_name_info.sh

#!/usr/bin/env bash

Check_jq() {
  which jq &> /dev/null
  if [ $? != 0 ];then
    echo -e "\033[32;32m 系统没有安装 jq 命令,请参考下面命令安装!  \033[0m \n"
    echo -e "\033[32;32m Centos 或者 RedHat 请使用命令 yum install jq -y 安装 \033[0m"
    echo -e "\033[32;32m Ubuntu 或者 Debian 请使用命令 apt-get install jq -y 安装 \033[0m"
    exit 1
  fi
}

Pod_name_info() {
  CID=`cat /proc/${pid}/cgroup | head -1 | awk -F '/' '{print $5}'`
  CID=$(echo ${CID:0:8})
  docker inspect $CID | jq '.[0].Config.Labels."io.kubernetes.pod.name"'
}

pid=$1
Check_jq
Pod_name_info
# 通过 Pid 获取 Pod 名称
$ ./pod_name_info.sh Pid
# 通过 Pid 获取 Pod 名称
$ ./pod_name_info.sh Pid

2.根据 Pod 名称获取 Pid

bash
$ vim pod_pid_info.sh

#!/usr/bin/env bash

Check_jq() {
  which jq &> /dev/null
  if [ $? != 0 ];then
    echo -e "\033[32;32m 系统没有安装 jq 命令,请参考下面命令安装!  \033[0m \n"
    echo -e "\033[32;32m Centos 或者 RedHat 请使用命令 yum install jq -y 安装 \033[0m"
    echo -e "\033[32;32m Ubuntu 或者 Debian 请使用命令 apt-get install jq -y 安装 \033[0m"
    exit 1
  fi
}

Pid_info() {
  docker_storage_location=`docker info  | grep 'Docker Root Dir' | awk '{print $NF}'`

  for docker_short_id in `docker ps | grep ${pod_name} | grep -v pause | awk '{print $1}'`
  do
    docker_long_id=`docker inspect ${docker_short_id} | jq ".[0].Id" | tr -d '"'`
    cat ${docker_storage_location}/containers/${docker_long_id}/config.v2.json | jq ".State.Pid"
  done
}

pod_name=$1
Check_jq
Pid_info
$ vim pod_pid_info.sh

#!/usr/bin/env bash

Check_jq() {
  which jq &> /dev/null
  if [ $? != 0 ];then
    echo -e "\033[32;32m 系统没有安装 jq 命令,请参考下面命令安装!  \033[0m \n"
    echo -e "\033[32;32m Centos 或者 RedHat 请使用命令 yum install jq -y 安装 \033[0m"
    echo -e "\033[32;32m Ubuntu 或者 Debian 请使用命令 apt-get install jq -y 安装 \033[0m"
    exit 1
  fi
}

Pid_info() {
  docker_storage_location=`docker info  | grep 'Docker Root Dir' | awk '{print $NF}'`

  for docker_short_id in `docker ps | grep ${pod_name} | grep -v pause | awk '{print $1}'`
  do
    docker_long_id=`docker inspect ${docker_short_id} | jq ".[0].Id" | tr -d '"'`
    cat ${docker_storage_location}/containers/${docker_long_id}/config.v2.json | jq ".State.Pid"
  done
}

pod_name=$1
Check_jq
Pid_info
bash
# 通过 Pod名称 获取 Pid 
$ ./pod_pid_info.sh Pod名称
# 通过 Pod名称 获取 Pid 
$ ./pod_pid_info.sh Pod名称