目录
技能展示
文章
日记
时间线
项目展示
分类
标签
Android Bash Burp C++ CS CTF DLL劫持 Docker Fastjson Fastjson2 FNV-1a FreeCMS FRP GetShell GitHub IPv6 Java JNDI John JS加密 JS逆向 K8s Kafka Kali lama-cleaner Linux mitmproxy MSF MySQL Nim Nmap NPS Office OID Payload Phar PHP phpMyAdmin POP链 PWN Pyinstaller Python RCE RSA Shellcode SNMP SQL注入 SSH SSRF Ubuntu USB Web Webshell Web安全 Windows XSS YAML Zookeeper 主机探测 代码审计 伪协议 免杀 内网 内网穿透 加密 加解密 参数 反序列化 反弹shell 命令 哈希碰撞 图像处理 域渗透 字符串逃逸 容器 密码学 密码破解 提权 数据库 文件上传 日志分析 未授权访问 权限维持 汇总 流量分析 消息队列 溯源 漏洞 漏洞分析 漏洞利用 端口扫描 编译 网络管理 资产探测 跨平台 运维 进程隐藏 逆向
目录
目录
768 字
4 分钟
K8s 命令
0x00 查看 Pod
1、查看当前命名空间的 Pod
1kubectl get pods默认是当前 context 的 namespace(通常是 default)
2、查看所有命名空间的 Pod(排障必用)
1kubectl get pods -A等价写法:
1kubectl get pods --all-namespaces3、查看指定命名空间的 Pod
1kubectl get pods -n infra你刚才那个 postgres 就属于这种情况
4、显示更多信息(建议习惯用)
1kubectl get pods -A -o wide会多出:
- Pod IP
- Node 节点
- 调度位置
0x01 查看命名空间
1、列出所有 namespace
1kubectl get ns或:
1kubectl get namespaces2、查看当前使用的 namespace
1kubectl config view --minify | grep namespace如果没输出,默认就是:
1default0x02 切换命名空间
1、切换当前 context 的默认 namespace
1kubectl config set-context --current --namespace=infra切完之后你再执行:
1kubectl get pods就等价于:
1kubectl get pods -n infra2、临时指定 namespace
1kubectl get pods -n infra2kubectl exec -it xxx -n infra -- /bin/sh不污染全局配置
0x03 进入 Pod
1、基础进入
1kubectl exec -it <pod-name> -n <namespace> -- /bin/bash如果失败(常见):
1kubectl exec -it <pod-name> -n <namespace> -- /bin/sh2、你的实际例子
1kubectl exec -it postgres-6b74766bdc-gh5hh -n infra -- /bin/bash如果报错 /bin/bash: not found:
1kubectl exec -it postgres-6b74766bdc-gh5hh -n infra -- /bin/sh3、多容器 Pod(必须指定)
1kubectl exec -it <pod-name> -c <container-name> -n <namespace> -- /bin/sh查看容器名:
1kubectl describe pod <pod-name> -n <namespace>4、不进入 shell,直接执行命令(更高效)
1kubectl exec <pod-name> -n <namespace> -- ls /2kubectl exec <pod-name> -n <namespace> -- env0x04 文件传输
1、从 Pod 下载文件 → 本地
1kubectl cp <namespace>/<pod-name>:/path/in/container /local/path示例:
1kubectl cp infra/postgres-6b74766bdc-gh5hh:/var/log/postgresql.log ./pg.log2、本地上传文件 → Pod
1kubectl cp /local/file <namespace>/<pod-name>:/path/in/container示例:
1kubectl cp ./test.sql infra/postgres-6b74766bdc-gh5hh:/tmp/test.sql3、指定容器(多容器场景)
1kubectl cp <file> <namespace>/<pod-name>:/path -c <container-name>0x05 底层原理
kubectl cp 本质上:
1tar | kubectl exec | tar所以会有两个坑:
常见坑 1:容器里没有 tar
报错类似:
1tar: not found解决:
1kubectl exec -it <pod> -n <ns> -- apt update && apt install -y tar或用替代方案(见下面)
常见坑 2:权限问题
1permission denied解决:
- 拷贝到
/tmp - 或用 root 用户容器
0x06 进阶:无 tar 也能传文件
方法:base64(渗透/极限环境常用)
本地 → Pod
1base64 test.txt | kubectl exec -i <pod> -n <ns> -- sh -c "base64 -d > /tmp/test.txt"Pod → 本地
1kubectl exec <pod> -n <ns> -- base64 /tmp/test.txt | base64 -d > test.txt0x07 常用
1、进入容器排查问题
1kubectl exec -it <pod> -n <ns> -- sh然后:
1ps aux2netstat -tulnp3cat /etc/config/*2、批量进入(调试多个 Pod)
1kubectl get pods -n infra -o name | xargs -I {} kubectl exec {} -n infra -- hostname3、临时调试容器(推荐)
1kubectl run debug -it --rm --image=busybox -- sh用于:
- 网络测试
- DNS 测试
- 探测服务
4、排查
1# 1. 查看 Pod 的上一次终止原因2kubectl describe pod astp-core-677858c449-nm9jz -n daily | grep -A 20 "Last State"3
4# 2. 查看 Pod 事件中是否有 OOMKilled 记录5kubectl describe pod astp-core-677858c449-nm9jz -n daily | grep -i -A 5 "oom\|kill\|restart"6
7# 3. 查看容器的资源限制配置8kubectl get pod astp-core-677858c449-nm9jz -n daily -o jsonpath='{.spec.containers[0].resources}'1# 容器实际被分配和使用的内存量2echo "容器实际使用: $(( $(cat /sys/fs/cgroup/memory/memory.usage_in_bytes) / 1024 / 1024 ))Mi" && echo "容器内存限制: $(( $(cat /sys/fs/cgroup/memory/memory.limit_in_bytes) / 1024 / 1024 ))Mi"3
4# cgroup v2 环境5echo "容器实际使用: $(( $(cat /sys/fs/cgroup/memory.current) / 1024 / 1024 ))Mi" && echo "容器内存限制: $(( $(cat /sys/fs/cgroup/memory.max) / 1024 / 1024 ))Mi"部分信息可能已经过时
目录
技能展示
文章
日记
时间线
项目展示
分类
标签
Android Bash Burp C++ CS CTF DLL劫持 Docker Fastjson Fastjson2 FNV-1a FreeCMS FRP GetShell GitHub IPv6 Java JNDI John JS加密 JS逆向 K8s Kafka Kali lama-cleaner Linux mitmproxy MSF MySQL Nim Nmap NPS Office OID Payload Phar PHP phpMyAdmin POP链 PWN Pyinstaller Python RCE RSA Shellcode SNMP SQL注入 SSH SSRF Ubuntu USB Web Webshell Web安全 Windows XSS YAML Zookeeper 主机探测 代码审计 伪协议 免杀 内网 内网穿透 加密 加解密 参数 反序列化 反弹shell 命令 哈希碰撞 图像处理 域渗透 字符串逃逸 容器 密码学 密码破解 提权 数据库 文件上传 日志分析 未授权访问 权限维持 汇总 流量分析 消息队列 溯源 漏洞 漏洞分析 漏洞利用 端口扫描 编译 网络管理 资产探测 跨平台 运维 进程隐藏 逆向
目录