找不到任何可以查询与特定 AWS 账户区域相关的所有 volumeID 的 K8s API。我的主要目的是清理所有陈旧的卷。为此,我使用下面的 shell 脚本从 AWS 收集处于可用状态的卷信息。
for regions in $(aws ec2 describe-regions --output text|awk {'print $4'})
do
for volumes in $(aws ec2 describe-volumes --region $regions --output text| grep available | awk '{print $9}' | grep vol| tr '\n' ' ')
do
echo "$regions" "$volumes"
done
done
但仅此还不够,因为有时我会关闭一些环境,并且 pod 没有运行,这反过来又将卷标记为可用,但一旦环境出现,它们将被使用/附加到 pod。因此,我需要获取两个列表(来自 AWS 和 K8s)并区分它们。最后,我得到了实际上与我的任何环境都没有关联的卷。任何帮助是极大的赞赏。
注意:众所周知,下面的 k8s API 可以获取将命名空间作为输入的卷,而我并不在寻找。
GET /api/v1/namespaces/{namespace}/persistentvolumeclaims