[정수리] kubernetes 리소스 객체 -- ConfigMap
의 원리
많은 생산 환경에서의 응용 프로그램 설정이 비교적 복잡하기 때문에 여러 개의 config 파일, 명령행 매개 변수와 환경 변수의 조합이 필요할 수 있다.용기 배치를 사용할 때, 배치를 응용 프로그램의 거울에서 분리해서 거울의 이식성을 확보해야 한다.시크릿은 인증 정보와 키 같은 정보를 응용 프로그램에서 결합시킬 수 있지만 K8S1.2 이전에는 일반 또는 비시크릿 설정을 위한 대상이 없었다.K8S1에서2 이후에 ConfigMap을 도입하여 이러한 유형의 구성 데이터를 처리합니다.
ConfigMap은 일반적인 설정 변수를 저장하는 것으로 설정 파일과 유사하여 사용자가 분포식 시스템에서 서로 다른 모듈에 사용되는 환경 변수를 하나의 대상에 통일하여 관리할 수 있도록 한다.구성 파일과 다른 점은 클러스터의'환경'에 존재하며 K8S 클러스터의 모든 공통 작동 방식을 지원한다는 점입니다.
데이터 측면에서 볼 때 ConfigMap의 유형은 키 값 그룹일 뿐 Pod이나 다른 자원 대상(예를 들어 RC)에 접근한 정보를 저장하는 데 사용된다.이것은 시크릿의 디자인 이념과 공통점이 있다. 주요 차이점은 ConfigMap은 민감한 정보를 저장하는 데 사용되지 않고 간단한 텍스트 정보만 저장하는 데 있다.
ConfigMap은 환경 변수의 속성을 저장하거나 프로파일을 저장할 수 있습니다.
pod를 만들 때 configmap을 연결합니다.pod 내의 응용 프로그램은ConfigMap의 설정을 직접 참조할 수 있습니다.configmap의 응용/실행 환경 봉인 설정과 같습니다.
pod에서는 환경 변수의 값 설정, 명령행 매개변수 설정, 프로파일 생성에 일반적으로 사용되는 ConfigMap을 사용합니다.
configmap 만들기
명령행
kubectl create configmap test-a --from-file=db_config_file=database.conf --from-file=ver.conf --from-literal=username=test --from-literal=hostname=localhost
-from-file는 파일에서 온 것을 의미하며, 파일 내용을configmap에 직접 기록합니다. 디렉터리로도 사용할 수 있고, 파일로도 사용할 수 있으며db 를 사용할 수 있습니다.config_file=database.conf에서 키 값을 수정합니다 - from-literal 키 값을 사용하여 설정을 표시합니다
yaml 파일
kubectl delete -f lykops-config.yaml
cat << EOF > lykops-config.yaml
kind: ConfigMap
apiVersion: v1
metadata:
name: lykops-config
namespace: default
labels:
software: apache
project: lykops
app: configmap
version: v1
data:
PWD: /
user: lykops
mysql.config : |-
username: lykops
host: localhost
port: 3306
EOF
kubectl create -f lykops-config.yaml
데이터는 설정 변수입니다: PWD와user 두 줄은 두 개의 환경 변수 속성 mysql입니다.config: | - 바로 프로필입니다. 다음 내용은 프로필 mysql입니다.config 컨텐트
ConfigMap 사용
두 가지 방식으로pod를 사용합니다. 첫 번째는 환경 변수나 파라미터이고, 두 번째는 파일 마운트입니다.
kubectl delete -f lykops-cm-pod.yaml
cat << EOF > lykops-cm-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: lykops-cm-pod
labels:
project: lykops
app: lykops-cm
version: v1
spec:
containers:
- name: lykops-cm-pod
image: web:apache
command: ['sh',/etc/run.sh]
env:
- name: SPECIAL_USER
valueFrom:
configMapKeyRef:
name: lykops-config
key: username
resources:
requests:
cpu: 0.01
memory: 8Mi
limits:
cpu: 0.1
memory: 16Mi
volumeMounts:
- name: config-volume
mountPath: /data/
volumes:
- name: config-volume
configMap:
name: lykops-config
EOF
kubectl create -f lykops-cm-pod.yaml
ConfigMap이 데이터 볼륨으로 Pod에 마운트될 때 ConfigMap을 업데이트하거나 재구성 ConfigMap을 삭제하면 Pod에 마운트된 설정 정보는 핫 업데이트되지만 환경 변수를 사용하여pod에 마운트하면 자동으로 업데이트되지 않습니다.
전재 대상:https://www.cnblogs.com/lykops/p/7419934.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.