k8S 命令
kubectl describe pod java-spice-cloud-member-1-69975bd859-jhqvj -n dev
kubectl get pods -n dev
kubectl top pod java-spice-cloud-member-1-69975bd859-jhqvj -n dev
进
kubectl exec -it java-spice-cloud-member-1-69975bd859-jhqvj -n dev -- /bin/sh
在 Kubernetes (k8s) 中进入 Pod 之后,你可以查看很多内容,具体取决于你的需求和 Pod 的用途。以下是一些常见的可以查看的内容:
### 1. **容器内部的文件系统**
- **查看文件和目录结构**:进入 Pod 后,你可以像在普通 Linux 系统中一样,使用 `ls`、`cd`、`cat` 等命令查看文件和目录。
- **配置文件**:许多应用的配置文件会存储在 Pod 的文件系统中,例如 `/etc/` 目录下的配置文件。
- **日志文件**:应用的日志文件通常存储在 `/var/log/` 或应用指定的日志目录中。
### 2. **环境变量**
- 使用 `env` 命令可以查看 Pod 中的环境变量。这些环境变量可能是 Kubernetes 注入的,也可能是应用自身设置的。
- 例如,Kubernetes 会注入一些与服务发现相关的环境变量,如 `SERVICE_NAME_SERVICE_HOST` 和 `SERVICE_NAME_SERVICE_PORT`。
### 3. **运行中的进程**
- 使用 `ps` 或 `top` 命令可以查看 Pod 内运行的进程。这有助于确认应用是否正常运行,以及是否有其他意外的进程在运行。
### 4. **网络配置**
- **IP 地址**:使用 `ip addr` 或 `ifconfig` 命令查看 Pod 的网络接口和 IP 地址。
- **端口监听情况**:使用 `netstat -tuln` 或 `ss -tuln` 查看 Pod 监听的端口,确认应用是否正确绑定了端口。
- **网络连通性**:使用 `ping` 或 `curl` 命令测试 Pod 是否能够访问其他服务或外部网络。
### 5. **应用日志**
- 如果应用将日志输出到标准输出或标准错误,你可以通过 `kubectl logs` 命令在 Pod 外部查看日志。但在 Pod 内部,你也可以查看日志文件(如果应用将日志写入文件)。
- 例如,对于一个 Web 应用,你可能会查看 `/var/log/nginx/access.log` 或 `/var/log/apache2/error.log`。
### 6. **应用状态和健康检查**
- 如果应用有内置的健康检查接口(如 HTTP 端点),你可以使用 `curl` 命令在 Pod 内部访问这些接口,检查应用的健康状态。
- 例如,`curl http://localhost:8080/healthz`。
### 7. **存储卷内容**
- 如果 Pod 挂载了存储卷(如 PersistentVolumeClaim 或 ConfigMap),你可以查看挂载点的内容。例如,挂载点可能在 `/data` 或 `/etc/config` 等目录。
### 8. **资源使用情况**
- 使用 `df -h` 查看磁盘使用情况。
- 使用 `free -m` 查看内存使用情况。
- 使用 `top` 或 `htop` 查看 CPU 和内存的实时使用情况。
### 9. **服务发现信息**
- Kubernetes 会为每个服务创建 DNS 条目。在 Pod 内部,你可以使用 `nslookup` 或 `dig` 命令查询服务的 DNS 解析情况。
- 例如,`nslookup my-service` 可以查看服务的 IP 地址。
### 10. **应用配置和参数**
- 查看应用启动时的参数,例如通过 `ps` 命令查看进程的启动命令行参数。
- 查看应用的配置文件,确认配置是否正确。
### 示例:进入 Pod 并查看内容
```bash
# 进入 Pod
kubectl exec -it <pod-name> -- /bin/sh
# 查看文件系统
ls /
cat /etc/hosts
# 查看环境变量
env
# 查看运行中的进程
ps aux
# 查看网络配置
ip addr
netstat -tuln
# 查看日志文件
cat /var/log/app.log
# 查看存储卷内容
ls /data
```
总之,进入 Pod 后,你可以像操作普通 Linux 系统一样,查看和调试应用的运行环境和状态。