ConfigMap

이 페이지에서는 Kubernetes의 ConfigMap 객체와 Google Kubernetes Engine에서의 사용 방법을 설명합니다.

ConfigMap이란 무엇인가요?

ConfigMap은 구성 파일, 명령줄 인수, 환경 변수, 포트 번호, 기타 구성 아티팩트를 런타임에 포드의 컨테이너와 시스템 구성요소에 결합합니다. ConfigMap을 사용하면 포드와 구성요소에서 구성을 분리할 수 있어 작업 부하를 이식 가능하게 유지하는 데 도움이 되고, 구성을 쉽게 변경하고 관리할 수 있으며, 구성 데이터를 포드 사양에 하드코딩하는 것을 방지합니다.

ConfigMap은 민감하지 않은 암호화되지 않은 구성 정보를 저장하고 공유하는 데 유용합니다. 클러스터에서 민감한 정보를 사용하려면 보안 비밀을 사용해야 합니다.

ConfigMap 만들기

다음 명령어를 사용하여 ConfigMap을 만듭니다.

kubectl create configmap [NAME] [DATA]

다음이 [DATA]에 해당될 수 있습니다.

  • --from-file 플래그를 사용하여 표시되는 하나 이상의 구성 파일을 포함하는 디렉토리의 경로
  • 각각 --from-literal 플래그를 사용하여 지정되는 키-값 쌍

kubectl create에 대한 자세한 내용은 참조 문서를 참조하세요.

YAML 매니페스트 파일에서 ConfigMap 객체를 정의하고 kubectl create -f [FILE]을 통해 객체를 배포하여 ConfigMap을 만들 수도 있습니다.

파일에서

하나 이상의 파일에서 ConfigMap을 만들려면 --from-file을 사용하세요. 파일에 키-값 쌍이 포함되어 있다면 .properties, .txt 또는 .env와 같은 일반 텍스트 형식으로 파일을 지정합니다.

단일 파일 또는 여러 파일을 전달할 수 있습니다.

kubectl create configmap [NAME] --from-file [/PATH/TO/FILE.PROPERTIES] --from-file [/PATH/TO/FILE2.PROPERTIES]

또한 여러 파일이 포함된 디렉토리를 전달할 수도 있습니다.

kubectl create configmap [NAME] --from-file [/PATH/TO/DIRECTORY]

파일을 기반으로 ConfigMap을 만드는 경우, 키의 기본값은 파일의 기본 이름이 되고, 값의 기본값은 파일의 콘텐츠가 됩니다. 대체 키를 지정할 수도 있습니다.

디렉토리 기반 ConfigMap의 경우, 기본 이름이 디렉토리에 있는 유효한 키인 각 파일이 ConfigMap으로 패키징됩니다. symlink, 기기, 파이프 같은 비일반적인 파일은 kubectl에 의해 무시됩니다. 하위 디렉토리도 무시됩니다. kubectl create configmap은 하위 디렉토리로 재귀하지 않습니다.

예를 들어 다음 명령어는 2개의 properties 파일(game.propertiesui.properties)이 포함된 game-configs 디렉토리에서 game-data라는 ConfigMap을 만듭니다.

kubectl create configmap game-data --from-file game-configs/

kubectl get configmap game-data -o yaml을 실행하면 다음과 같은 출력이 반환됩니다.

apiVersion: v1
data:
  game.properties: |
    enemies=aliens
    lives=3
    ...
  ui.properties: |
    color.good=purple
    color.bad=yellow
    allow.textmode=true
    ...
kind: ConfigMap
metadata:
  creationTimestamp: ...
  name: game-data
  namespace: default
  resourceVersion: ...
  selfLink: /api/v1/namespaces/default/configmaps/game-data
  uid: ...

리터럴 값에서

리터럴 값에서 ConfigMap을 만들려면 --from-literal을 사용하세요.

예를 들어 다음 명령어는 2개의 키-값 쌍이 있는 literal-data라는 ConfigMap을 만듭니다.

kubectl create configmap literal-data --from-literal key1=value1 --from-literal key2=value2

각 키-값 쌍에 --from-literal을 지정합니다.

kubectl get configmap literal-data -o yaml을 실행하면 다음과 같은 출력이 반환됩니다.

apiVersion: v1
data:
  key1: value1
  key2: value2
kind: ConfigMap
metadata:
  creationTimestamp: ...
  name: literal-data
  namespace: default
  resourceVersion: ....
  selfLink: /api/v1/namespaces/default/configmaps/literal-data
  uid: ...

ConfigMap 사용

작업 부하에 ConfigMap을 사용하려면 ConfigMap의 값을 참조하는 환경 변수를 지정하거나 ConfigMap이 포함된 볼륨을 마운트하세요.

ConfigMap 사용에 대한 자세한 내용은 ConfigMap을 사용하도록 포드 구성을 참조하세요.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Kubernetes Engine 문서