kubernetes에서 네임스페이스 간에 configMap을 공유할 수 있는 방법이 있나요?
우리는 개발 환경과 스테이징 환경에 하나의 네임스페이스를 사용하고 있습니다. 이 네임스페이스 각각의 내부에는 몇 가지 configMap과 비밀이 있지만 두 환경 간에 많은 공유 변수가 있기 때문에 이들을 위한 공통 파일을 갖고 싶습니다.
기본 configMap을 기본 네임스페이스에 매핑하고 다음과 같은 것을 사용하여 참조할 수 있는 방법이 있습니까:
- envFrom:
- configMapRef:
name: default.base-config-map
만약 이것이 불가능하다면, 네임스페이스를 통해 변수를 복제하는 것 외에 다른 방법이 없을까요?
쿠베르네테스 1.13 이전 버전
네임스페이스 외부의 포드에서 액세스할 수 없기 때문에 공유할 수 없습니다. 리소스 이름은 네임스페이스 내에서 고유해야 하지만 네임스페이스 간에는 고유하지 않아야 합니다.
이 문제를 해결하려면 복사를 다시 해야 합니다.
네임스페이스 간에 암호 복사
kubectl get secret <secret-name> --namespace=<source-namespace> --export -o yaml \
| kubectl apply --namespace=<destination-namespace> -f -
네임스페이스 간에 구성 맵 복사
kubectl get configmap <configmap-name> --namespace=<source-namespace> --export -o yaml \
| kubectl apply --namespace=<destination-namespace> -f -
쿠베르네테스 1.14+
대신 다음 명령을 사용할 수 있습니다:
kubectl get secret <secret-name> --namespace=<source-namespace> -o yaml \
| sed 's/namespace: <from-namespace>/namespace: <to-namespace>/' \
| kubectl create -f -
만약 누군가가 여전히 국기의 필요성을 느낀다면, 에 의해 쓰여진 것이 있다.
다음 명령을 사용하여 한 네임스페이스에서 다른 네임스페이스로 복사하십시오
kubectl get configmap <configmap-name> -n <source-namespace> -o yaml | sed 's/namespace: <source-namespace>/namespace: <dest-namespace>/' | kubectl create -f -
kubectl get secret <secret-name> -n <source-namespace> -o yaml | sed 's/namespace: <source-namespace>/namespace: <dest-namespace>/' | kubectl create -f -
승인된 답변 외에도 리소스(예: 및 )
- 그리고.
- s 사이에,
수동 활동을 줄이기 위해 또는 필요한 경우와 같은 것을 고려할 가치가 있을 수 있다.
Reflector를 사용하려면 다음 세 단계를 수행해야 합니다:
예를 들어 다음을 통한 리플렉터 배포
예를 들어 프로덕션에서 주석이 달린 소스 리소스를 생성합니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: source-resource
namespace: production
annotations:
reflector.v1.k8s.emberstack.com/reflection-allowed: "true"
reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "testing"
data:
...
- 예를 들어, 테스트에서 데이터 없이 주석이 달린 미러링된 리소스를 생성합니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: mirrored-resource
namespace: testing
annotations:
reflector.v1.k8s.emberstack.com/reflects: "production/source-resource"
data:
...
를 사용하여 이 작업을 수행할 수 있습니다.
'개발하자' 카테고리의 다른 글
쿠베르네테스: kubectl 구성에서 클러스터와 컨텍스트를 삭제하려면 어떻게 해야 합니까? (0) | 2023.06.23 |
---|---|
Python이 중복 출력을 제공하지 않도록 방지 (0) | 2023.06.23 |
파이썬에서 dir()와 __dict_의 가장 큰 차이점은 무엇입니까 (0) | 2023.06.21 |
복제 컨트롤러와 Kubernetes에 배포 (0) | 2023.06.21 |
Floating에서 붕괴하는 요소를 애니메이션화하는 방법 (0) | 2023.06.20 |