마운트된 파일로서 시크릿 및 configmap 참조(CLI)
Code Engine에서 시크릿 및 configmap을 작성한 후에는 키-값 쌍으로 저장되는 정보를 앱 또는 작업 워크로드에서 마운트된 파일로 이용할 수 있습니다. 이 메소드는 함수와 함께 사용할 수 없습니다.
시크릿 및 configmap을 마운트된 파일로 작업하는 것은 secret 및 configmap을 환경 변수로 작업하는 것과 유사합니다.
시크릿에 대해 작업할 경우 데이터는 인코딩된 문자열로 저장됩니다. 데이터가 환경 변수 또는 마운트된 파일로 환경에 추가되는 경우에는 인코딩되지 않습니다.
CLI를 사용하여 마운트된 파일로 시크릿 참조
이 시나리오에서는 시크릿을 작성한 후 icr.io/codeengine/ce-secret-vol 이미지를 사용하는 애플리케이션을 실행할 때 시크릿을 마운트된 파일로 참조합니다.
샘플 이미지 icr.io/codeengine/ce-secret-vol은 /mysecrets 디렉토리에 있는 각 파일을 읽고 출력이 앱 로그에 포함되도록 파일 이름과 해당 컨텐츠를 각 요청에 대한 표준 출력으로 출력합니다. 이 샘플 애플리케이션에 대한 자세한 정보는 IBM Cloud Code Engine GitHub 저장소의 볼륨으로 시크릿(secrets-vol)샘플의 내용을 참조하십시오.
이 시나리오에서는 시크릿을 사용하지만 동일한 단계를 사용하여 configmap을 마운트된 파일로 참조하려면 명령에서 configmap을 secret으로 대체하면 됩니다.
-
mysecret으로 이름 지정된 시크릿을 작성하고--from-literal옵션을 사용하여 시크릿에 대해 키-값 쌍을 지정하십시오. 예를 들어, 다음과 같습니다.ibmcloud ce secret create -n mysecret --from-literal apikey=abcdefgh -
icr.io/codeengine/ce-secret-vol이미지를 사용하는myapp애플리케이션을 작성하십시오.--mount-secret옵션을 사용하여mysecret디렉토리의 앱에/mysecrets시크릿의 컨텐츠를 마운트하거나 추가하십시오.--min-scale=1옵션을 지정하면 앱에 항상 실행 중인 인스턴스가 있으며 0으로 스케일링되지 않습니다. 항상 실행 중인 인스턴스가 있도록 앱을 구성하면 로그를 볼 때 유용합니다. 예를 들면 다음과 같습니다.ibmcloud ce app create --name myapp --image icr.io/codeengine/ce-secret-vol --mount-secret /mysecrets=mysecret --min-scale 1출력 예
Creating application 'myapp'... [...] Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce application get -n myapp' to check the application status. OK https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
이전 출력에서 URL을 복사한 후
curl을 사용하여 애플리케이션을 호출하십시오. 예를 들어, 다음과 같습니다.curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
애플리케이션에서 로그를 보십시오. 이 예에서
myapp앱은 샘플 이미지icr.io/codeengine/ce-secret-vol을 사용합니다. 이 앱은/mysecrets디렉토리에 있는 각 파일을 읽고 출력이 앱 로그에 포함되도록 파일 이름과 해당 컨텐츠를 각 요청에 대한 표준 출력으로 출력합니다. 파일 이름은apikey입니다.ibmcloud ce app logs --app myapp출력 예
Getting logs for all instances of application 'myapp'... OK myapp-b3gxd-1-deployment-6f45dcf7f4-nw59z/user-container: Listening on port 8080 apikey: abcdefgh -
mysecret시크릿을 업데이트하여apikey키-값 쌍의 값을 변경하십시오. 예를 들어, 다음과 같습니다.ibmcloud ce secret update -n mysecret --from-literal apikey=qrst -
애플리케이션을 다시 호출하십시오.
curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
애플리케이션에서 로그를 보십시오.
ibmcloud ce app logs --app myapp출력 예
Getting logs for all instances of application 'myapp'... OK myapp-b3gxd-1-deployment-6f45dcf7f4-nw59z/user-container: Listening on port 8080 apikey: abcdefgh apikey: qrst
시크릿(또는 configmap)에 저장된 데이터가 앱에 마운트된 파일로 추가되었으며 시크릿에 저장된 데이터가 업데이트되었습니다. 업데이트된 참조 시크릿을 사용하기 위해 앱을 다시 시작할 필요가 없습니다.