kubernetes - 如何在 EKS 集群中定位实例?
问题描述
如何查看与 EKS 集群关联的实例?
我可以使用 AWS CLI 列出集群名称并描述集群,但如何查看集群中实际存在哪些实例?
aws eks list-clusters --region us-east-1
"clusters": [
"foo-cluster",
"bar-cluster"
]
}
aws eks describe-cluster --name foo-cluster
{
"cluster": {
"name": "foo-cluster",
"arn": "arn:aws:eks:us-east-1:12345:cluster/foo-cluster",
"createdAt": 1554068824.493,
"version": "1.13",
"endpoint": "https://12345.abc.us-east-1.eks.amazonaws.com",
"roleArn": "arn:aws:iam::12345:role/foo-cluster12345",
"resourcesVpcConfig": {
"subnetIds": [
"subnet-45678",
"subnet-34567",
"subnet-23456",
"subnet-12345"
],
"securityGroupIds": [
"sg-12345"
],
"vpcId": "vpc-12345"
},
"status": "ACTIVE",
"certificateAuthority": {
"data": "zubzubzub="
},
"platformVersion": "eks.2"
}
}
解决方案
您不能aws eks ...
专门从 CLI 中获取。Kubernetes 节点基本上是 EC2 实例,因此希望您在创建实例时适当地标记实例,通常使用带有eksctl 之类的工具的 Autoscaling Group 。
您的实例通常具有与工作程序节点名称相同的“名称”标签。所以你可以这样做:
$ aws ec2 describe-instances --filters Name=tag:Name,Values=node-name
或者,您可以通过以下方式获取节点的NAME
或:INTERNAL-IP
$ kubectl get nodes -o=wide
然后你可以根据它找到你的实例:
$ aws ec2 describe-instances --filter Name=private-dns-name,Values=NAME
$ aws ec2 describe-instances --filter Name=private-ip-address,Values=INTERNAL-IP
或者,您可以查询自动缩放组:
$ aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names <your-asg-name> | jq .AutoScalingGroups[0].Instances[].InstanceId
推荐阅读
- android - 如何获取设备的gps纬度和经度?
- apache-spark - 本机文件系统上的 Spark 行为
- mongodb - 字段中的 MongoDb 大数组与每个包含一个数组项的许多小文档
- javascript - 如何使用 jspdf 提高我的 pdf 字体和图像的质量?
- r - writeData() 到第二张纸而不覆盖第一张纸
- scala - Spark数据帧组中的最后一个对象
- c# - 刷新后光标在开头跳转
- vb.net - VB.Net中的一行If不返回可为空的整数
- java - 在方法执行之前加载 Thymeleaf 片段
- java - 鉴于这种情况,这个 listnode 将指向哪里?