velero 가 설치되지 않은 클러스터에서 배포된 자원 manifest 정보를 txt 파일에 저장하는 bash shell script 코드.
kubectl ... -o yaml 과 함께 아래 neat 를 설치 및 조합하면 기타 타임스탬프 등 불필요한 정보를 제외한 readable 버전으로 저장이 가능합니다.
해당 조합으로 저장 시 txt 대신 yaml 로 저장하고 배포가능한 형식으로 테스트할 수 있습니다.
kubectl krew install neat # neat 설치 명령어.
그 전에 krew 가 설치되어있지 않다면 다음을 이용해 미리 설치해 둡니다.
# run a script by copy and paste to your command line
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e
's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/krew.tar.gz" &&
tar zxvf krew.tar.gz &&
KREW=./krew-"${OS}_${ARCH}" &&
"$KREW" install krew
)
# set the path env of krew
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
< Code Sample >
#!/bin/bash
# 백업할 네임스페이스 지정
NAMESPACES=("apples" "bananas" "grapes" "strawberries" "melons")
# 각 네임스페이스의 리소스 정보를 txt 파일로 저장
for namespace in "${NAMESPACES[@]}"
do
echo "네임스페이스 $namespace 리소스 정보 저장 중..."
# 네임스페이스의 모든 리소스 정보 가져오기
kubectl get all -n "$namespace" -o yaml > "$namespace-resources.txt"
done
# gp2, gp3, default-efs StorageClass 정보 저장
echo "StorageClass 정보 저장 중..."
kubectl get storageclass gp2 -o yaml > gp2-storageclass.txt
kubectl get storageclass gp3 -o yaml > gp3-storageclass.txt
kubectl get storageclass default-efs -o yaml > default-efs-storageclass.txt
echo "모든 정보가 txt 파일로 저장되었습니다."
'aws > k8s, eks study' 카테고리의 다른 글
Delete multiple fargate profiles by Python script (0) | 2024.04.01 |
---|---|
명령어 입력창에 kube config 구별하여 표시하기 (0) | 2024.01.19 |
etcd commands (0) | 2023.08.28 |
kubectl을 이용한 배포방법 정리 (aggregation of deployment and restarting methods with kubectl in kubernetes) (0) | 2023.07.27 |
EKS Pod Failed: Evicted (0) | 2023.05.04 |