반응형
쿠베르네테스에서 사용되지 않는 비밀을 식별하는 방법은 무엇입니까?
나는 내 k8s의 이름을 바꾸고 싶고 사용하지 않은 것이 있는지 확인하고 싶다. 또한 나는 몇 개의 참조 a가 있는지 알고 싶다.
모든 배포에서 비밀 이름을 검색하는 것보다 더 쉬운 방법이 있습니까?
암호 자체에 사용 참조가 없기 때문에 사용하지 않는 암호를 나열하는 방법은 없습니다. 한 가지 해결책은 모든 컨테이너/팟을 분석하여 암호 목록과 일치하도록 암호를 양 및 환경 변수로 사용하는 것입니다. 지원하고 이를 매우 쉽게 만듭니다:
마운트로 사용되는 암호 검색
kubectl get pods --all-namespaces -o jsonpath='{.items[*].spec.volumes[*].secret.secretName}' | xargs -n1 | uniq
환경 변수로 사용되는 암호 검색
kubectl get pods --all-namespaces -o jsonpath='{.items[*].spec.containers[*].env[*].valueFrom.secretKeyRef.name}' | xargs -n1 | uniq
고마워 사이먼. 당신의 답변을 바탕으로 컨테이너 환경 섹션에서 참조되지 않은 diff를 작성했습니다. 다음에서 참조할 수도 있습니다:
- 입력 섹션
- 사이먼이 언급한 것처럼 사양
- 개인 저장소용
- 사용자 지정 리소스 정의
그러나 환경 변수에서 참조되지 않은 항목을 찾는 것으로 충분합니다:
diff \
<(kubectl get pods -o jsonpath='{.items[*].spec.containers[*].env[*].valueFrom.secretKeyRef.name}' | xargs -n1 | sort | uniq) \
<(kubectl get secrets -o jsonpath='{.items[*].metadata.name}' | xargs -n1 | sort | uniq)
2018년 4월 16일 업데이트
그리고 에 언급된 비밀도 찾기 위해 더 고급 버전을 만들었습니다. 다음 스니펫은 현재 네임스페이스에 사용되지 않는 모든 것을 보여줍니다.
이 스크립트는 암호를 참조할 수 있는 모든 옵션(예: 사용자 지정 리소스 정의)을 포함하지 않습니다.
: Pod 컨테이너 규격의 암호를 암호 소스로 추가했습니다
: 서비스 계정 토큰으로 사용되는 암호 추가
envSecrets=$(kubectl get pods -o jsonpath='{.items[*].spec.containers[*].env[*].valueFrom.secretKeyRef.name}' | xargs -n1)
envSecrets2=$(kubectl get pods -o jsonpath='{.items[*].spec.containers[*].envFrom[*].secretRef.name}' | xargs -n1)
volumeSecrets=$(kubectl get pods -o jsonpath='{.items[*].spec.volumes[*].secret.secretName}' | xargs -n1)
pullSecrets=$(kubectl get pods -o jsonpath='{.items[*].spec.imagePullSecrets[*].name}' | xargs -n1)
tlsSecrets=$(kubectl get ingress -o jsonpath='{.items[*].spec.tls[*].secretName}' | xargs -n1)
SASecrets=$(kubectl get secrets --field-selector=type=kubernetes.io/service-account-token -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | xargs -n1)
diff \
<(echo "$envSecrets\n$envSecrets2\n$volumeSecrets\n$pullSecrets\n$tlsSecrets\n$SASecrets" | sort | uniq) \
<(kubectl get secrets -o jsonpath='{.items[*].metadata.name}' | xargs -n1 | sort | uniq)
반응형
'개발하자' 카테고리의 다른 글
스벨테에서 상위 구성 요소 마운트 및 파괴에서 전환 애니메이션을 비활성화하는 방법은 무엇입니까? (0) | 2023.07.09 |
---|---|
Kubernetes CronJob - 이전이 여전히 실행 중인 경우 작업을 건너뛰고 다음 예약 시간을 기다립니다 (0) | 2023.07.08 |
쿠베르네테스에서 '--volumes-from'을 흉내내는 방법 (0) | 2023.07.07 |
(도커 명령 없이) 쿠버네티스에서 컨테이너의 디스크 사용량을 가져오는 방법은 무엇입니까? (0) | 2023.07.06 |
Kubernetes 조타 장치 - 주행 포드에 주행 조타 장치 설치 (0) | 2023.07.06 |