일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스
- LV 0
- 파이썬
- 머신러닝
- docker
- 정처기
- 깃
- 인공지능
- DevOps
- Python
- git
- 코딩테스트
- Linux
- 우분투
- 자료구조
- 리눅스
- 데이터베이스
- 알고리즘
- ubuntu
- 자바
- 코테
- mysql
- programmers
- 쿠버네티스
- Java
- Kubernetes
- Ai
- github
- db
- Lv 2
Archives
- Today
- Total
Myo-Kyeong Tech Blog
[Kubernetes] 쿠버네티스에서 Secret을 다른 namespace로 복사하기 본문
728x90
반응형
쿠버네티스(Kubernetes)를 사용하다 보면 특정 네임스페이스에 있는 시크릿(Secret)을 다른 네임스페이스로 복사해야 하는 상황이 생기곤 합니다. 예를 들어, 개발 환경에서 사용 중인 시크릿을 테스트 환경이나 프로덕션 환경으로 옮기거나, 동일한 시크릿을 여러 네임스페이스에서 재사용해야 할 때가 그렇습니다.
이 글에서는 네임스페이스만 바꾸는 간단한 한 줄 명령어와, YAML 파일을 활용해 시크릿을 수정하고 복사하여 네임스페이스를 변경하는 방법에 대해 정리하였습니다.
방법 1️⃣ : 네임스페이스만 변경하는 간단한 명령어
시크릿을 수정할 필요 없이, 네임스페이스만 변경하려는 경우 다음과 같은 한 줄 명령어를 사용하면 됩니다.
kubectl get secret <SECRET_NAME> -n <SOURCE_NAMESPACE> -o yaml | \
grep -v "namespace:" | \
kubectl apply -n <TARGET_NAMESPACE> -f-
방법 2️⃣ : YAML 파일 수정하여 복사하기
시크릿 데이터를 수정하거나, 라벨 및 어노테이션 등 메타데이터를 변경해야 한다면, YAML 파일을 활용하는 것이 적합합니다.
1. 시크릿 YAML로 추출
kubectl get secret <SECRET_NAME> -n <SOURCE_NAMESPACE> -o yaml > secret.yaml
2. YAML 파일 수정
- namespace 변경 : metadata.namespace 값을 복사하려는 대상 네임스페이스로 변경합니다.
- 라벨 또는 어노테이션 수정
[secret.yaml 파일 수정 후 예시]
apiVersion: v1
data:
username: dXNlcm5hbWU= # Base64로 인코딩된 username
password: cGFzc3dvcmQ= # Base64로 인코딩된 password
kind: Secret
metadata:
name: app-secret # 시크릿 이름
namespace: <TARGET_NAMESPACE> # 복사하려는 대상 namespace
labels:
environment: production
app: my-application
annotations:
description: "This secret contains credentials for the production database."
type: Opaque
3. 대상 네임스페이스로 시크릿 생성
kubectl apply -f secret.yaml
마지막으로, 복사된 시크릿이 대상 네임스페이스에 존재하는지 확인합니다.
kubectl get secret -n <TARGET_NAMESPACE>
728x90
반응형
'DevOps > Kubernetes' 카테고리의 다른 글
[Kubernetes] 쿠버네티스 OLM(Operator Lifecycle Manager) 설치 (0) | 2025.01.12 |
---|---|
[Kubernetes] Metric API 오류 해결 방법 : Docker Desktop에 Metrics Server 설치 및 TLS 인증 문제 해결 (1) | 2024.08.11 |
[Kubernetes] 쿠버네티스 네트워크 통신 오브젝트 : Service 와 Ingress (2) | 2024.05.06 |
[Kubernetes] 쿠버네티스 CronJob으로 작업 스케줄링하기 (3) | 2024.03.06 |
[Kubernetes] Kubernetes Dashboard 설치하기 (0) | 2024.03.02 |