
이를 통해 외부 파일에 연결된 configmap을 생성할 수 있습니다.
kubectl create configmap database-config --from-file=database.properties
그러나 yaml을 편집하면 파일의 전체 내용이 거기에 덤프된 것으로 표시됩니다.
어쨌든 yaml의 파일을 가리켜 속성 파일을 configmap yaml과 동일한 폴더에 유지하고 다음을 사용하여 모든 yaml 폴더에 적용할 수 있습니까?
kubectl apply -f target_folder\
제안해주세요.
답변1
무엇 configmap
인가요
ConfigMap은 기밀이 아닌 데이터를 키-값 쌍으로 저장하는 데 사용되는 API 개체입니다. 포드는 ConfigMap을 환경 변수, 명령줄 인수 또는 볼륨의 구성 파일로 사용할 수 있습니다.
ConfigMap을 사용하면 컨테이너 이미지에서 환경별 구성을 분리할 수 있으므로 애플리케이션을 쉽게 이식할 수 있습니다.
즉, configmap
외부 파일(예: 사례)이나 다른 값에서 생성되면 API 서버는 모든 것이 올바른지 확인한 다음 etcd
. 이는 또한 전체 맥락을 볼 edit
때 이유를 설명합니다 . configmap
이는 외부 소스가 아닌 configmap
에서 읽기 때문에 발생합니다.etcd
이는 큰 파일 저장을 구성 맵이나 비밀로 저장하지 않는 것이 권장되지 않는 이유 중 하나이기도 합니다. 모든 클러스터의 개체가 etcd
.
사용자 정의
configmap
이는 동일한 디렉터리에 있는 파일을 기반으로 생성/구성 시 하나의 명령을 실행해야 하는 요구 사항을 달성하는 방법 중 하나입니다 . Kustomization 파일을 통해 Kubernetes 개체를 사용자 지정하는 독립 실행형 도구입니다.
나는 아이디어를 보여주기 위해 짧고 간단한 예를 만들었습니다.
$ tree
.
├── application.properties
└── kustomization.yaml
0 directories, 2 files
$ cat kustomization.yaml
generatorOptions:
disableNameSuffixHash: true # this flag is used to avoid creation of new configmap, instead it will be modified when file context is changed
configMapGenerator:
- name: application-config
files:
- application.properties
$ cat application.properties
listen.url=localhost:9010
client.url=some_url:3000
이것을 테스트해 보세요. 이 명령은렌더링만configmap은 아직 생성되지 않습니다.
$ kubectl kustomize application.settings/
apiVersion: v1
data:
application.properties: |
listen.url=localhost:9010
client.url=some_url:3000
kind: ConfigMap
metadata:
name: application-config
마지막 단계는적용하다그것:
$ kubectl apply -k application.settings/
configmap/application-config created
$ kubectl get cm
NAME DATA AGE
application-config 1 23s
위 명령에 대한 간단한 설명:
해당 리소스를 적용하려면 --kustomize 또는 -k 플래그와 함께 kubectl apply를 실행하세요.