当前位置: 首页 > news >正文

根据POD名称生成 三部曲:get、describe、log、exec

#!/bin/bash
 
 
# 定义颜色变量
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m'  # No Color
 
# 检查是否传入 Pod 名称作为参数
if [ -z "$1" ]; then
    # 如果没有传参,则提示用户输入 Pod 名称
    echo -e "${YELLOW}Please enter the Pod name:${NC}"
    read POD_NAME
else
    # 如果有传参,则使用第一个参数作为 Pod 名称
    POD_NAME=$1
fi
 
# 获取包含 Pod 的命名空间
POD_NAMESPACE=$(kubectl get pod -A --field-selector metadata.name="${POD_NAME}" -o jsonpath='{.items[0].metadata.namespace}')
 
# 检查是否找到了该 Pod
if [ -z "$POD_NAMESPACE" ]; then
    echo -e "${RED}Pod ${POD_NAME} not found.${NC}"
    exit 1
fi
 
echo -e "${GREEN}Found Pod ${POD_NAME} in namespace ${POD_NAMESPACE}.${NC}"
 
# 查看 pod 状态
echo -e "\n${YELLOW}Fetching pod status for ${POD_NAME} in namespace ${POD_NAMESPACE}...${NC}"
echo -e "${GREEN}kubectl get pod ${POD_NAME} -n ${POD_NAMESPACE}${NC}"
# kubectl get pod "${POD_NAME}" -n "${POD_NAMESPACE}"
 
# 查看 pod 详细信息
echo -e "\n${YELLOW}Fetching pod details for ${POD_NAME} in namespace ${POD_NAMESPACE}...${NC}"
echo -e "${GREEN}kubectl describe pod ${POD_NAME} -n ${POD_NAMESPACE}${NC}"
# kubectl describe pod "${POD_NAME}" -n "${POD_NAMESPACE}"
 
# 获取 Pod 中的容器名称
CONTAINER_NAMES=$(kubectl get pod "${POD_NAME}" -n "${POD_NAMESPACE}" -o jsonpath='{.spec.containers[*].name}')
INIT_CONTAINER_NAMES=$(kubectl get pod "${POD_NAME}" -n "${POD_NAMESPACE}" -o jsonpath='{.spec.initContainers[*].name}')
ALL_CONTAINER_NAMES="${CONTAINER_NAMES} ${INIT_CONTAINER_NAMES}"
 
# 打印出所有容器的日志命令
echo -e "\n${YELLOW}Fetching logs commands for each container in ${POD_NAME}...${NC}"
for CONTAINER in $ALL_CONTAINER_NAMES; do
    echo -e "${GREEN}kubectl logs ${POD_NAME} -n ${POD_NAMESPACE} -c ${CONTAINER} --tail=100${NC}"
done
 
# 打印出所有容器的进入容器命令
echo -e "\n${YELLOW}Fetching exec commands for each container in ${POD_NAME}...${NC}"
for CONTAINER in $ALL_CONTAINER_NAMES; do
    echo -e "${GREEN}kubectl exec -it ${POD_NAME} -n ${POD_NAMESPACE} -c ${CONTAINER} -- bash${NC}"
done

相关文章:

  • DeepSeek部署到本地(解决ollama模型下载失败问题)
  • JAVA系列之数组的秘密(数组的一般用法+力扣 斯坦福大学练习精解)
  • 同花顺Java开发面试题及参考答案 (上)
  • 2025-2-18-4.7 二叉树(基础题)
  • C/C++ | 面试题每日一练 (1)
  • 【HBase】HBaseJMX 接口监控信息实现钉钉告警
  • 训练营3,
  • 第二章:16.3 构建决策树的过程
  • 统信服务器操作系统V20 1070A 安装docker新版本26.1.4
  • Unity项目实战-订阅者发布者模式
  • Day4:强化学习之Qlearning走迷宫
  • ELF,链接,加载
  • oracle取金额的绝对值
  • c# -新属性-模式匹配、弃元、析构元组和其他类型
  • restful 状态码
  • 命令注入绕过
  • Spring Boot 自动装配机制原理详解
  • 什么是逻辑分析仪?
  • 维护ceph集群
  • 麒麟armv10-sp3安装oracle19c
  • 微软宣布将裁员3%
  • 75万买299元路由器后续:重庆市纪委、财政局、教委联合调查
  • 2025年上海好护士揭晓,上海护士五年增近两成达12.31万人
  • 历史地理学者成一农重回母校北京大学,担任历史系教授
  • 在地球另一端的交流,架起2万公里间更多共赢的桥梁
  • 不到1小时就能速发证件?央媒曝光健康证办理乱象