使用Python Boto3或AWS CLI如何查询EKS节点信息?

0

【以下的问题经过翻译处理】 我在尝试以编程方式使用AWS CLI或Boto3来获取正在运行状态的容器,但是没有找到具体提供我需要类或方法的信息。我需要的信息在文档的第4行中有记录:https://docs.aws.amazon.com/eks/latest/userguide/view-nodes.html

我已经在Boto3文档中搜索到EKS client class,但没有找到比使用describe_cluster()更详细的信息:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/eks.html

我按照AWS文档中使用Fargate节点设置EKS的示例操作:https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html

我可以看到节点页面包括我正在寻找的所有信息,但我不知道哪个类会以编程方式为我提供该信息。

我想通过编程的方式,从多个AWS帐户中检索所有EKS集群中的正在运行的容器。

profile picture
专家
已提问 5 个月前41 查看次数
1 回答
0

【以下的回答经过翻译处理】 您可以使用eksctl工具或Boto3 EKS客户端获取EKS或Kubernetes级别收集信息.但在EKS级别,您只能查看集群/节点组信息。如何您需要的是节点信息。则您必须在Kubernetes级别进行查询。您可以使用kubectl工具创建您的查询。例如:

# 列出集群中带有标签的的所有节点
kubectl get nodes --show-labels
# 列出特定节点组中的所有节点
kubectl get node --selector='eks.amazonaws.com/nodegroup=x86-br-spot-xl'

如果您想在Python中执行此操作,可以使用Kubernetes Python客户端.

from kubernetes import client, config

# 可以直接在 Configuration 类中设置配置,也可以使用辅助工具设置。
config.load_kube_config()

k8s_api = client.CoreV1Api()
logger.info("Getting k8s nodes...")
response = k8s_api.list_node()

你应该查阅Kubernetes文档,了解如何使用kubectl获取所有想要的信息,然后再使用Python实现。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则