0

特定の AWS アカウント リージョン全体に関連するすべてのボリューム ID を照会できる K8s API を見つけることができませんでした。私の主な目的は、古いボリュームをすべてクリーンアップすることです。これを行うために、以下のシェル スクリプトを使用して、Available 状態にある 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

しかし、それだけでは十分ではありません。環境の一部を停止したままにしておくと、ポッドが実行されていないため、ボリュームが使用可能としてマークされますが、環境が起動すると、ポッドは使用中/ポッドに接続されます。したがって、(AWS と K8s から) 両方のリストを取得し、それらを比較する必要があります。最後に、実際にはどの環境にも関連付けられていないボリュームを取得します。どんな助けでも大歓迎です。

注意: 以下の k8s API は、私が探していない入力として名前空間を使用してボリュームをフェッチできることが知られています。

GET /api/v1/namespaces/{namespace}/persistentvolumeclaims
4

1 に答える 1