如何从另一个 pod 中运行的应用程序中提取有关附加到 pod 的 PV 的信息? 从 Pod 内访问 Kubernetes 集群 API使用官方客户端库参考

问题描述

在一大堆精心编排的 k8s pod 中,我有以下两个感兴趣的 pod:

  1. 附加到 PV 的 Elasticsearch pod
  2. 一个基于 tomcat 的应用程序 pod,作为所有其他 pod 的管理员

我希望能够在 pod #2 中运行的应用程序上查询和显示 PV(附加到 pod #1)的非常少/基本的磁盘可用性和使用统计数据

无需在我的 ES pod 中运行网络服务器,是否可以实现这一点?由于 ES 可能负载非常大,我不想在其中添加网络服务器。

附加到 ES pod 的 PV 也保存日志。所以我想避免任何基于日志提取的解决方案来实现将这些信息传递到 pod #2。

解决方法

无论您身在何处,都需要从 kubernetes 集群 API 获取 PV 详细信息。

从 Pod 内访问 Kubernetes 集群 API

从 Pod 内访问 API 时,对 API 服务器的定位和身份验证与上述外部客户端情况略有不同。

从 Pod 使用 Kubernetes API 的最简单方法是使用 official client libraries 之一。这些库可以自动发现 API 服务器并进行身份验证。

使用官方客户端库

从 Pod 内连接到 Kubernetes API 的推荐方法是:

在每种情况下,Pod 的服务帐户凭据都用于与 API 服务器安全通信。

参考

https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/#accessing-the-api-from-within-a-pod

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...