curl -k --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt --key /etc/kubernetes/pki/apiserver-kubelet-client.key --cacert /etc/kubernetes/pki/ca.crt https://{nodeIP}:10250/metrics/cadvisor
时间: 2025-03-19 14:23:13 浏览: 45
### 如何使用 `curl` 命令通过 Kubelet API 获取 cadvisor metrics 数据
要通过 `curl` 命令访问 Kubernetes 节点上的 cadvisor 指标接口,可以按照以下方法操作:
#### 准备工作
1. **获取必要的认证文件**
需要准备三个主要的认证文件:CA 证书 (`--cacert`)、客户端证书 (`--cert`) 和私钥 (`--key`)。这些文件通常位于 `/etc/kubernetes/pki/` 或其他配置目录下。
2. **设置目标地址**
目标 URL 是节点上运行的 Kubelet 提供的服务端口,默认情况下为 `https://<node-ip>:10250/metrics/cadvisor`。
---
#### 示例命令
以下是完整的 `curl` 命令示例,用于访问 cadvisor 的指标数据[^2]:
```bash
curl -s \
--cacert /path/to/ca.crt \
--cert /path/to/client-cert.pem \
--key /path/to/client-key.pem \
https://<node-ip>:10250/metrics/cadvisor
```
- `-s`: 表示静默模式,不显示进度条。
- `--cacert`: 指定 CA 证书路径,验证服务器的身份。
- `--cert`: 客户端证书路径,证明请求方身份。
- `--key`: 私钥路径,配合客户端证书一起使用。
- `<node-ip>`: 替换为目标 Kubernetes 节点的实际 IP 地址。
---
#### 文件路径示例
假设您的环境中有如下文件结构:
- CA 证书路径:`/etc/kubernetes/pki/ca.crt`
- 客户端证书路径:`/etc/kubernetes/pki/admin-client.cert`
- 客户端私钥路径:`/etc/kubernetes/pki/admin-client.key`
那么实际使用的命令可能类似于下面这样[^4]:
```bash
curl -s \
--cacert /etc/kubernetes/pki/ca.crt \
--cert /etc/kubernetes/pki/admin-client.cert \
--key /etc/kubernetes/pki/admin-client.key \
https://192.168.1.100:10250/metrics/cadvisor
```
> 如果您希望忽略 SSL 验证,则可以通过添加 `-k` 参数实现,但这会降低安全性。
---
#### 结果解析
成功执行上述命令后,返回的数据将是 JSON 格式的容器性能指标信息,例如 CPU 使用率、内存占用等。如果遇到权限不足的情况,需确认当前用户的 RBAC 权限是否允许访问该资源[^3]。
---
#### 注意事项
- 确保目标节点的防火墙规则允许外部访问端口 `10250`。
- 若未指定正确的认证参数,可能会收到类似 `Unauthorized` 或 `certificate signed by unknown authority` 的错误提示。
---
阅读全文
相关推荐



















