无法找到任何可以查询与特定AWS帐户区域范围相关的所有卷ID的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和K8(并对它们进行比较。最后,我得到的卷实际上与我的任何环境都没有关联。非常感谢您的帮助。
N。B: 众所周知,下面的k8 API可以获取将名称空间作为输入的卷,这不是我要寻找的。
GET /api/v1/namespaces/{namespace}/persistentvolumeclaims
两个答案:首先可以kubectl get pvc —all-namespaces
。其次,PV本身不在名称空间中,因此kubectl get pv
。