同じ問題がkubernetesGitHubの問題ページで説明されており、ユーザー「alahijani」がすべてのyamlをエクスポートして単一のファイルとフォルダーに書き込むbashスクリプトを作成しました。
この質問はGoogleでよくランク付けされており、その解決策が非常に優れていることがわかったので、ここで説明します。
yamlをサブフォルダーにエクスポートするBashスクリプト:
for n in $(kubectl get -o=name pvc,configmap,serviceaccount,secret,ingress,service,deployment,statefulset,hpa,job,cronjob)
do
mkdir -p $(dirname $n)
kubectl get -o=yaml --export $n > $n.yaml
done
別のユーザー「acondrat」がディレクトリを使用しないスクリプトを作成したため、kubectl apply -f
後で簡単に作成できます。
yamlを現在のフォルダーにエクスポートするBashスクリプト:
for n in $(kubectl get -o=name pvc,configmap,ingress,service,secret,deployment,statefulset,hpa,job,cronjob | grep -v 'secret/default-token')
do
kubectl get -o=yaml --export $n > $(dirname $n)_$(basename $n).yaml
done
最後のスクリプトにはサービスアカウントが含まれていません。