特定の 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