【问题标题】:How to retrieve kubernetes cluster data with googleapis in node?如何在节点中使用 googleapis 检索 kubernetes 集群数据?
【发布时间】:2022-10-15 06:35:08
【问题描述】:

在研究了这个主题后,我发现了 this 用于从 GCP 中淘汰 k8 集群的文档。但是,我找不到任何使用这些 API 的代码示例,当我从 googleapis 导入 google 时,我在其中找不到用于该目的的函数。例如,要获取 SQL 数据,有 sqladmin,但没有用于检索 k8 数据。那么我需要google 的什么属性呢?

【问题讨论】:

  • 你到底想用 API 做什么?
  • 在 gcp 帐户上获取所有 gke 集群和有关它们的信息(节点数、部署数等)。最好使用 googleapis 库
  • 任何其他建议也将不胜感激

标签: node.js kubernetes google-cloud-platform google-api google-kubernetes-engine


【解决方案1】:

kubectl 是与 Kubernetes 集群通信的更好工具。

但是,您可以从 GKE 中检索一些数据。见下文:

GCLOUD_TOKEN=$(gcloud auth print-access-token)
curl -sS -X GET -H "Authorization: Bearer ${GCLOUD_TOKEN}" "https://container.googleapis.com/v1beta1/projects/some-project-id/locations/us-east4-a/clusters"

因此,您会根据需要得到 JSON 回复。

【讨论】:

  • 不是我真正想要的(使用 googleapis 库的节点解决方案),但我会记住这一点
  • @Newbee 是的,您需要了解 Google API 的 API 端点。
【解决方案2】:

这令人困惑。

您必须使用 2 个不同的 API:

  1. Google 的 Kubernetes Engine API(请参阅 link)。该 API 用于创建、读取、更新和删除 Kubernetes 集群。 Google 提供了一个记录在 here 的 Node.js SDK。
  2. 标准的通用 Kubernetes API(请参阅link)。该API用于创建、读取、更新和删除资源(任何)Kubernetes 客户端,并且出于明显(非常好的)原因,它也是您必须用来与(现有)Kubernetes Engine 集群交互的 API(因为它们就像所有其他 Kubernetes 集群一样)。 Kubernetes 提供了实现 Kubernetes API 的official and community-supported libraries。您需要为 Node.js 选择 community-supported libraries 之一(因为没有官方库)。

    一般流程是:

    1. 使用 Kubernetes Engine API,例如projects.locations.cluster.get 现有 GKE 集群的详细信息
    2. 使用返回的Cluster对象构建配置对象(相当于在kubeconfig文件中构建context对象)
    3. 使用 context 对象和 Kubernetes API 库对集群进行身份验证并对其进行编程,例如列出部署,创建服务等。

【讨论】:

    猜你喜欢
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 2023-03-27
    • 2021-06-22
    • 2021-09-28
    • 1970-01-01
    相关资源
    最近更新 更多