AWS CLI 命令列出 AWS EKS 集群中所有节点使用的所有映像

问题描述 投票:0回答:1

我想要一个 AWS CLI 命令列出 AWS EKS 集群中所有节点使用的所有映像。我们可以使用 kubectl 列出用于启动容器的镜像。但我希望 AWS CLI 命令列出用于启动 AWS EKS 集群中所有节点的所有映像。

我试图找到类似的 kubectl 命令,但经过多次研究后我没有找到任何东西,我正在寻找 AWS CLI 命令。

kubernetes cluster-computing aws-cli amazon-eks
1个回答
0
投票

那么您的意思是 AMI 用于启动您的节点吗?

如果这就是您所指的,您可以将 AWS CLI 命令与

jq
结合使用来列出每个 EKS 节点及其相应的 AMI,您可以按照以下步骤操作:

  1. 从 EKS 获取节点实例 ID: 使用

    kubectl
    获取节点名称(对应于 EKS 集群的 AWS 中的 EC2 实例 ID)。

    kubectl get nodes -o jsonpath="{.items[*].metadata.name}"
    
  2. 使用 AWS CLI 获取实例详细信息: 对于从上一个命令获取的每个实例 ID,使用 AWS CLI 获取实例详细信息,包括 AMI。此步骤可以组合成脚本或单行命令。

这是一个结合了这些步骤的 bash 脚本:

#!/bin/bash

# Set your AWS region
AWS_REGION="your-region"

# Loop over each Kubernetes node
for node in $(kubectl get nodes -o jsonpath="{.items[*].metadata.name}"); do
    # Use AWS CLI to find the AMI ID for the instance
    ami_id=$(aws ec2 describe-instances \
                --region $AWS_REGION \
                --instance-ids $node \
                --query "Reservations[*].Instances[*].ImageId" \
                --output text)
    
    # Output the node and its corresponding AMI ID
    echo "Node: $node, AMI: $ami_id"
done

要运行我提供的脚本,您需要执行以下步骤:

  • 将提供的脚本复制到您计算机上的文本文件中。
  • 将文件命名为描述性名称,例如
    list-eks-nodes-ami.sh
  • 导航到保存脚本的目录。
  • 通过运行以下命令使脚本可执行:
    chmod +x list-eks-nodes-ami.sh
    
  • 在同一终端中,输入以下命令来执行脚本:
    ./list-eks-nodes-ami.sh
    

your-region
替换为适当的 AWS 区域。该脚本将循环遍历每个节点,使用节点名称查询对应的 EC2 实例,然后提取并打印 AMI ID。

确保您拥有必要的权限,并且

kubectl
和 AWS CLI 均已正确配置。此脚本假设 Kubernetes 中的节点名称直接对应于 EC2 实例 ID,EKS 就是这种情况。

如果您指的不是 AMI,请分享更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.