10장. 애플리케이션과 함께 구성 맵 사용
구성 맵을 사용하면 이미지 콘텐츠에서 구성 아티팩트를 분리하여 컨테이너화된 애플리케이션을 이식할 수 있습니다.
다음 섹션에서는 구성 맵과 이를 생성하고 사용하는 방법을 정의합니다.
구성 맵 생성에 대한 자세한 내용은 구성 맵 생성 및 사용을 참조하십시오.
10.1. 구성 맵 이해
많은 애플리케이션에는 구성 파일, 명령줄 인수 및 환경 변수 조합을 사용하여 구성이 필요합니다. OpenShift Container Platform에서 컨테이너화된 애플리케이션을 이식하기 위해 이러한 구성 아티팩트는 이미지 콘텐츠와 분리됩니다.
ConfigMap
오브젝트는 컨테이너를 OpenShift Container Platform과 무관하게 유지하면서 구성 데이터를 사용하여 컨테이너를 삽입하는 메커니즘을 제공합니다. 구성 맵은 개별 속성 또는 전체 구성 파일 또는 JSON Blob과 같은 세분화된 정보를 저장하는 데 사용할 수 있습니다.
ConfigMap
오브젝트에는 Pod에서 사용하거나 컨트롤러와 같은 시스템 구성 요소의 구성 데이터를 저장하는 데 사용할 수 있는 구성 데이터의 키-값 쌍이 있습니다. 예를 들면 다음과 같습니다.
ConfigMap
오브젝트 정의
kind: ConfigMap apiVersion: v1 metadata: creationTimestamp: 2016-02-18T19:14:38Z name: example-config namespace: my-namespace data: 1 example.property.1: hello example.property.2: world example.property.file: |- property.1=value-1 property.2=value-2 property.3=value-3 binaryData: bar: L3Jvb3QvMTAw 2
이미지와 같은 바이너리 파일에서 구성 맵을 생성할 때 binaryData
필드를 사용할 수 있습니다.
다양한 방법으로 Pod에서 구성 데이터를 사용할 수 있습니다. 구성 맵을 다음과 같이 사용할 수 있습니다.
- 컨테이너에서 환경 변수 값 채우기
- 컨테이너에서 명령줄 인수 설정
- 볼륨에 구성 파일 채우기
사용자 및 시스템 구성 요소는 구성 데이터를 구성 맵에 저장할 수 있습니다.
구성 맵은 보안과 유사하지만 민감한 정보가 포함되지 않은 문자열 작업을 더 편리하게 지원하도록 설계되었습니다.
구성 맵 제한 사항
Pod에서 콘텐츠를 사용하기 전에 구성 맵을 생성해야 합니다.
컨트롤러는 누락된 구성 데이터를 허용하도록 작성할 수 있습니다. 상황에 따라 구성 맵을 사용하여 구성된 개별 구성 요소를 참조하십시오.
ConfigMap
오브젝트는 프로젝트에 있습니다.
동일한 프로젝트의 Pod에서만 참조할 수 있습니다.
Kubelet은 API 서버에서 가져오는 Pod에 대한 구성 맵만 지원합니다.
여기에는 CLI를 사용하거나 복제 컨트롤러에서 간접적으로 생성되는 모든 Pod가 포함됩니다. OpenShift Container Platform 노드의 --manifest-url
플래그, --config
플래그 또는 해당 REST API를 사용하여 생성한 Pod를 포함하지 않으며 이는 Pod를 생성하는 일반적인 방법이 아니기 때문입니다.