0

找不到任何可以查询与特定 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
4

1 回答 1

1

两个答案:首先你可以kubectl get pvc —all-namespaces。其次,PV 本身不在命名空间中kubectl get pv

于 2019-11-12T12:12:30.840 回答