Cloud Run for Anthos on Google Cloud 클러스터에 ConfigMap 사용

ConfigMap을 만든 다음 Cloud Run for Anthos on Google Cloud 서비스 및 버전을 구성하여 해당 ConfigMap을 사용하는 방법을 알아봅니다.

서비스의 일반적인 사용 사례는 ConfigMap을 사용해서 애플리케이션 코드를 구성으로부터 구분하는 것입니다. ConfigMap은 보안 비밀과 비슷하지만, 민감한 정보에 보안 비밀을 사용하고 연결 문자열, 공개 사용자 인증 정보, 호스트 이름, URL 등 민감하지 않은 데이터에 ConfigMap을 사용한다는 것이 다릅니다. ConfigMap 사용에 대한 자세한 내용은 Google Kubernetes Engine 문서를 참조하세요.

컨테이너에서 ConfigMap에 액세스하도록 설정하면 다음 옵션 중 하나를 선택할 수 있습니다.

  • 마운트된 볼륨에 파일로 제공되는 ConfigMap 항목을 사용하여 ConfigMap을 볼륨으로 마운트합니다. ConfigMap을 읽을 때 최신 버전을 사용하게 되므로 이 방법을 사용하는 것이 좋습니다.
  • 환경 변수를 사용하여 ConfigMap을 전달합니다.

ConfigMap 만들기

ConfigMap에 대한 GKE 문서에 설명된 것처럼 ConfigMap은 여러 방법으로 만들 수 있습니다. 편의를 위해 다음 단계에서는 ConfigMap을 만드는 간단한 방법을 보여줍니다.

ConfigMap을 만들 때는 Cloud Run for Anthos 서비스를 실행하는 클러스터와 동일한 네임스페이스에 만들어야 합니다. 이 안내에서는 default 네임스페이스가 사용됩니다.

명령줄에서 ConfigMap을 만들 수 있습니다.

kubectl create configmap name data

각 항목의 의미는 다음과 같습니다.

  • name은 ConfigMap 객체의 이름입니다.
  • 다음은 data의 예입니다.

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

예를 들면 다음과 같습니다.

kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm

ConfigMap은 default 네임스페이스의 클러스터에서 사용할 수 있는 위치에 생성되고 업로드됩니다.

서비스에 ConfigMap 사용 설정

ConfigMap을 만든 후에는 새 서비스를 배포하거나 기존 서비스를 업데이트하고 버전을 배포할 때 Cloud Console 또는 gcloud 명령줄 도구를 사용하여 Cloud Run for Anthos 서비스에 볼륨이나 환경 변수로 제공할 수 있습니다.

콘솔

  1. Cloud Run for Anthos on Google Cloud로 이동

  2. 배포할 새 서비스를 구성하려면 서비스 만들기를 클릭합니다. 기존 서비스를 구성하려면 해당 서비스를 클릭한 다음 새 버전 수정 및 배포를 클릭합니다.

  3. 고급 설정에서 변수를 클릭합니다.

    이미지

  4. ConfigMap 참조의 풀다운 메뉴에서 원하는 ConfigMap을 선택합니다.

    • 참조 방법 풀다운 메뉴에서 ConfigMap을 볼륨으로 마운트할지 아니면 환경 변수로 공개할지 선택합니다.
    • 볼륨으로 마운트하는 경우 경로를 지정한 다음 완료를 클릭합니다.
    • 환경 변수로 공개하는 경우 다음 안내를 따르세요.
      1. 변수의 이름을 입력하고 풀다운 메뉴에서 해당하는 ConfigMap 값을 선택합니다.
      2. 다른 ConfigMap 값을 추가하려면 추가를 클릭합니다.
      3. 변수의 이름을 입력하고 풀다운 메뉴에서 해당하는 ConfigMap 값을 선택합니다.
      4. 완료를 클릭합니다.

  5. 만들기 또는 배포를 클릭합니다.

명령줄

다음 gcloud kuberun 명령어 중 하나를 사용하여 새 서비스의 ConfigMaps을 설정하거나 기존 서비스를 업데이트할 수 있습니다.

  • 기존 서비스의 경우 다음 매개변수 중 하나로 gcloud kuberun core services update 명령어를 실행하여 ConfigMap을 업데이트합니다.

    예:

    gcloud kuberun core services update SERVICE --update-config-maps KEY1=VALUE1,KEY2=VALUE2
    

    다음과 같이 바꿉니다.

    • SERVICE를 서비스 이름으로 바꿉니다.
    • KEY1=VALUE1,KEY2=VALUE2를 각 ConfigMap에 대한 이름 및 값 쌍의 쉼표로 구분된 목록으로 바꿉니다. 각 KEY에 마운트 경로를 지정하거나 환경 변수를 제공할 수 있습니다. 슬래시 /로 시작되는 마운트 경로를 지정합니다. 다른 모든 키는 환경 변수에 해당합니다. 각 VALUE에 ConfigMap 이름을 지정합니다. 여러 매개변수를 지정하는 방법.
    • 명령어 매개변수 옵션

      여러 키-값 쌍 집합을 지정하려면 가독성을 위한 여러 매개변수를 지정하면 됩니다. 예:
      [...]
      --update-config-maps "KEY=VALUE1" \
      --update-config-maps "KEY=VALUE2" \
      --update-config-maps "KEY=VALUE3"
      
  • 새 서비스의 경우 --set-config-maps 매개변수로 gcloud kuberun core services create 명령어를 실행하여 보안 비밀을 설정합니다.

    gcloud kuberun core services create SERVICE --image=IMAGE_URL --set-config-maps KEY1=VALUE1,KEY2=VALUE2
    

    다음과 같이 바꿉니다.

    • IMAGE_URL을 컨테이너 이미지에 대한 참조(예: gcr.io/myproject/my-image:latest)로 바꿉니다.
    • SERVICE를 서비스 이름으로 바꿉니다.
    • KEY1=VALUE1,KEY2=VALUE2를 각 ConfigMap에 대한 이름 및 값 쌍의 쉼표로 구분된 목록으로 바꿉니다. 각 KEY에 마운트 경로를 지정하거나 환경 변수를 제공할 수 있습니다. 슬래시 /로 시작되는 마운트 경로를 지정합니다. 다른 모든 키는 환경 변수에 해당합니다. 각 VALUE에 ConfigMap 이름을 지정합니다. 여러 매개변수를 지정하는 방법.
    • 명령어 매개변수 옵션

      여러 키-값 쌍 집합을 지정하려면 가독성을 위한 여러 매개변수를 지정하면 됩니다. 예:
      [...]
      --update-config-maps "KEY=VALUE1" \
      --update-config-maps "KEY=VALUE2" \
      --update-config-maps "KEY=VALUE3"