kubernetes - 使用 Java 客户端库从 Pod 访问 Kubernetes Api
问题描述
我目前使用客户端 java kubernetes 库从 Kubernetes API 获取指标
<dependency>
<groupId>io.kubernetes</groupId>
<artifactId>client-java</artifactId>
<version>12.0.0</version>
</dependency>
我发现位于此路径https://kubernetes.default.svc/api/v1/nodes/worker02/proxy/metrics/cadvisor下的有关网络和文件系统 I/O 的一些指标非常有趣。
container_network_receive_bytes_total{container="",id="/kubepods/besteffort/podb6bf750b-4501-4082-9a50-3751ff1e4f0f/72f84fc52547c628baeee527a47faa204eadd660ba4cbb94d8889562ff0b7789",image="docker.io/rancher/pause:3.1",interface="eth0",name="72f84fc52547c628baeee527a47faa204eadd660ba4cbb94d8889562ff0b7789",namespace="kube-system",pod="svclb-traefik-2wlkz"} 50398 1618932055188
但是,由于它们采用 prometheus 度量格式,因此库不支持它们。
我后来意识到,使用 http 客户端获取信息并不成功(javax.net.ssl.SSLHandshakeException),因为我没有传递令牌和证书。有没有办法使用 client-java 库来获取 API 的原始答案?
我正在考虑这样的事情,提前谢谢
String apiAnswer = client.getRaw("/api/v1/nodes/worker02/proxy/metrics/cadvisor");
解决方案
ApiClient
您可以使用直接拨打电话。像这样的东西。
ApiClient client = Config.defaultClient();
ApiResponse<Object> result = client.execute(client.buildCall(...));
推荐阅读
- android - 具有多个 parentColumn 和 entityColumn 的 Android 房间关系
- python - Python如果字符串包含在href中
- javascript - 无法使用方法单击元素:browser.click 和 xpath://input[2]
- raku - 强制/类型检查:手动重现 Perl6 标准
- python - 如何在 anaconda 中安装 biopython?
- javascript - 通过 npm 获取错误的字体真棒图标
- angularjs - 如何从angularJS中的谷歌地图标记获取动态位置
- webpack - 将 Nuxt 模块放入 Storybook
- r - 在 R 中使用 print.char.matrix() 函数在堆叠单元格中打印矩阵
- c# - RNGCryptoServiceProvider 随机字符串。总是返回一个以 '=' 结尾的字符串