본문 바로가기
MLOps/Doker & Kubernetes

Udemy CKA 강의 정리 100: Configuring ConfigMaps in Applications

by 공부하는 무니 2023. 1. 12.
반응형

해당 내용은 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의를 공부한 내용입니다. 내용을 그대로 번역하기보다는, 제가 이해하기 쉬운 대로 수정한 부분들이 있습니다.

⚠️ 영어 독해가 많이 부족합니다. 틀린 내용이 있으면 알려주시면 감사하겠습니다.


이전 강의에서 파드 definition 파일에서 환경 변수를 definition하는 방법에 대해 알아보았습니다. 파드 definition 파일이 많으면 query's file에 저장된 환경 데이터를 관리하기가 어려워집니다.  이럴 때는 파드 definition 파일에서 이 정보를 가져와 config map을 사용하여 중앙에서 관리할 수 있습니다. 
config map은 Kubernetes에서 키 값 쌍의 형태로 configuration 데이터를 전달하는 데 사용됩니다. 파드가 생성되면 config map을 파드에 삽입하여 파드의 컨테이너 내부에서 호스팅되는 애플리케이션의 환경 변수로 키 값 쌍을 사용할 수 있습니다. 
config map config에는 두 단계가 있습니다. 첫 번째, config map을 만들고 두 번째, 파드에 주입합니다. 
다른 Kubernetes 개체와 마찬가지로 config map을 만드는 두 가지 방법이 있습니다. config map definition 파일을 사용하지 않는 커맨드형 방식과 config map definition 파일을 사용하는 선언적 방식입니다. config map definition 파일을 생성하지 않으려면 Kube control을 사용하고, create configmap 커맨드를 입력하고, 필요한 arguments를 지정하기만 하면 됩니다. 먼저 살펴보겠습니다. 


이 방법을 사용하면 커맨드라인에서 키 값 쌍을 직접 지정할 수 있습니다. 주어진 값의 config map을 생성하려면 kubectrl create config map 커맨드를 실행합니다. 커맨드 뒤에는 config 이름과 --from-leteral 옵션이 옵니다. --from-leteral 옵션은 커맨드 자체에서 키 값 쌍을 지정하는 데 사용됩니다. 이 예에서는 APP_COLOR가 blue인 키 값 쌍을 사용하여 app config라는 이름으로 config map을 만듭니다. 추가 키 값 쌍을 추가하려면 --from-leteral을 여러 번 지정하기만 하면 됩니다. 그러나 config 항목이 너무 많으면 복잡해집니다. config 데이터를 입력하는 또 다른 방법은 파일을 사용하는 것입니다. --from-file 옵션을 사용하여 필요한 데이터가 포함된 파일의 경로를 지정합니다. 이 파일의 데이터를 읽고 파일 이름으로 저장합니다. 


이제 선언적 접근 방식을 살펴보겠습니다. 이를 위해 파드에 대해 수행한 것과 마찬가지로 definition 파일을 생성합니다. 파일에는 apiVersion, kind, metadata가 있고 spec 대신 여기에 data가 있습니다. apiVersion은 v1이고 kind는 config map입니다. metadata에서 config map의 이름을 지정합니다. 우리는 그것을 app config이라고 부를 것입니다. 데이터 및 config 데이터에서 키 값 형식으로. Kubctl을 실행하고 create 커맨드를 입력하고 config 파일 이름을 지정합니다. 이렇게 하면 우리가 지정한 값으로 app config, config map이 생성됩니다. 다양한 목적을 위해 동일한 방식으로 필요한 만큼 config map을 생성할 수 있습니다. 여기 내 애플리케이션 중 하나가 있고, 다른 하나는 mysql용이고 다른 하나는 Redis용입니다. 따라서 config map의 이름을 적절하게 지정하는 것이 중요합니다. 나중에 이 이름을 파드와 연결하는 동안 사용할 것이기 때문입니다. 


config map을 보려면 Kubectl get config maps 커맨드를 실행합니다. 여기에는 app config라는 새로 생성된 config map이 조회됩니다. describe config maps 커맨드는 데이터 섹션 아래에도 config 데이터를 보여줍니다. 


이제 config map이 생성되었으므로 2단계(configuring it with pod)를 진행하겠습니다. 여기 간단한 웹 애플리케이션을 실행하는 간단한 파드 definition 파일이 있습니다. 환경 변수를 주입하려면 ENV라는 컨테이너에 새 속성을 추가합니다. 속성의 ENV는 리스트입니다. 따라서 필요한 만큼 많은 환경 변수를 전달할 수 있습니다. 목록의 각 항목은 config map 항목에 해당합니다. 이전에 생성한 config map의 이름을 지정합니다. 이것이 우리가 이전에 생성한 것에서 특정 config map을 주입하는 방법입니다. 파드 definition 파일을 생성하면 이제 파란색 배경의 웹 애플리케이션이 생성됩니다. 


방금 본 것은 config map을 사용하여 환경 변수를 주입하는 것이었습니다. 파드에 config 데이터를 주입하는 다른 방법이 있습니다. 단일 환경 변수로 주입하거나 전체 데이터를 볼륨의 파일로 주입할 수 있습니다. 

반응형

댓글