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

k8s 小技巧: 查看 Pod 上运行的容器

目录

  • 1. 示例 Pod 的定义文件
  • 2. kubectl describe pod(推荐)
  • 3. kubectl get pod
    • 3.1 json 格式
    • 3.2 yaml 格式
  • 4. 其他操作

1. 示例 Pod 的定义文件

# 文章中所用 pod 的 yaml 定义文件, multi-container.yaml
apiVersion: v1
kind: Pod
metadata:name: multi-containernamespace: sre
spec:containers:- name: nginx-appimage: nginximagePullPolicy: IfNotPresent # 如果存在则不拉取镜像- name: redis-appimage: redisimagePullPolicy: IfNotPresent
kubectl apply -f multi-container.yaml# 查看是否运行成功 
kubectl get pods -n sre# 输出如下
NAME                                         READY   STATUS    RESTARTS   AGE
multi-container                              2/2     Running   0          8m48s

要使用 kubectl 获取某个 Pod 中的容器信息,可以使用以下几种方法:

2. kubectl describe pod(推荐)

kubectl describe pod 命令可以提供有关 Pod 及其容器的详细信息,包括容器名称、镜像、状态等。

示例:

kubectl describe pod <pod_name> -n <namespace>
  • -n:指定命名空间,如果不指定则默认为 default 命名空间。

例如上面的 multi-container

kubectl describe pod multi-container -n sre

该命令输出中会包括容器的信息,如名称、镜像、状态、资源请求和限制等;在 Containers 就可以看到这个 Pod 中包含的容器名。

Name:         multi-container
Namespace:    sre
Priority:     0
Node:         node9/192.168.1.37
Start Time:   Tue, 11 Jun 2024 15:52:07 +0800
Labels:       <none>
Annotations:  cni.projectcalico.org/podIP: 10.100.104.116/32cni.projectcalico.org/podIPs: 10.100.104.116/32
Status:       Running
Containers: # 包含的容器nginx-app: # 容器名Container ID:   docker://xxxxxImage:          nginxImage ID:       xxxxxxPort:           <none>redis-app: # 容器名Container ID:   docker://xxxxxImage:          redisImage ID:       xxxxxxxPort:           <none>
Conditions:Type              StatusInitialized       True Ready             True ContainersReady   True PodScheduled      True 
...

3. kubectl get pod

使用 kubectl get pod 命令并结合 -o json-o yaml 输出格式,可以查看 Pod 的详细 JSONYAML 描述。

3.1 json 格式

# 输出到控制台
kubectl get pod <pod_name> -n <namespace> -o json# 输出到文件中
kubectl get pod <pod_name> -n <namespace> -o json > test.json

例如输出到文件中:

kubectl get pod multi-container -n sre -o json > test.json

然后在文件中找到层级 spec -> containers 就可以看到运行的容器:

{// ..."spec": {"containers": [ // 包含的容器{"image": "nginx","imagePullPolicy": "IfNotPresent","name": "nginx-app", // 容器名"resources": {},},{"image": "redis","imagePullPolicy": "IfNotPresent","name": "redis-app", // 容器名"resources": {},}]}// ...
}

👍 小知识

可以通过 jq 工具来解析 JSON 输出:

# 需要先安装 jq 工具# 安装完成后执行下面的命令
kubectl get pod multi-container -n sre -o json | jq '.spec.containers[].name'
  • jq 是一个轻量级且灵活的命令行 JSON 处理工具,用于在 Linux(和其他类 Unix 系统)中解析、筛选、转换、生成和操作 JSON 数据。jq 相当于命令 sedawk,但专门用于处理 JSON 格式的数据。

3.2 yaml 格式

# 输出到控制台
kubectl get pod <pod_name> -n <namespace> -o yaml# 输出到文件中
kubectl get pod <pod_name> -n <namespace> -o yaml > test.yaml

例如输出到文件中:

kubectl get pod multi-container -n sre -o yaml > test.yaml

然后在文件中找到层级 spec -> containers 就可以看到运行的容器:

# ...
spec:containers: # 包含的容器- image: nginximagePullPolicy: IfNotPresentname: nginx-app  # 容器名resources: {}- image: redisimagePullPolicy: IfNotPresentname: redis-app # 容器名resources: {}
# ...

4. 其他操作

获取容器之后就可以进行其他操作了:

  • 查看指定容器日志
kubectl logs <Pod-Name> -c <Container-Name>
  • 进入执行容器并执行命令
kubectl exec -it <Pod-Name> -n <Namespaces> -c <Container-Name> bash
  • more…
http://www.lryc.cn/news/374278.html

相关文章:

  • 【Git】基础操作
  • Linux:基础IO(二.缓冲区、模拟一下缓冲区、详细讲解文件系统)
  • 事件传播机制 与 责任链模式
  • uniapp 展示地图,并获取当前位置信息(精确位置)
  • Autosar实践——诊断配置(DaVinci Configuration)
  • 植物大战僵尸杂交版全新版v2.1解决全屏问题
  • 【code-server】Code-Server 安装部署
  • 博客摘录「 YOLOv5模型剪枝压缩」2024年5月11日
  • HttpSecurity
  • Mysql union语句
  • MySQL之高级特性(四)
  • roles安装wordpress
  • 【Python高级编程】饼状图中autopct和startangle用来做什么的
  • 【ARM Coresight Debug 系列 -- ARMv8/v9 Watchpoint 软件实现地址监控详细介绍】
  • jvm工具-jps、jstat、jmap、jstack
  • LVS负载均衡群集+NAT部署
  • 使用 Oracle SQL Developer 导入数据
  • 品质主管的面试题目
  • 算法专题总结链接地址
  • Oracle--存储结构
  • 【计算机毕业设计】259基于微信小程序的医院综合服务平台
  • HP惠普暗影精灵10 OMEN Gaming Laptop 16-wf1xxx原厂Win11系统镜像下载
  • [Day 9] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • van-list 遇到的问题
  • DockerCompose+Jenkins+Pipeline流水线打包Vue项目(解压安装配置Node)入门
  • 【新课程】PICO VR 交互开发指南
  • 天童美语:为了得体退出的那一天,你一定要好好爱孩子
  • 什么是JWT?为什么用JWT?JWT的实战案例
  • SpringBoot+Vue小区物业管理系统 附带详细运行指导视频
  • 在不使用js在情况下只用css实现瀑布流效果