--from-file
)--from-literal
)-f
)1MB
이다.--from-file
)kubectl을 사용하여 파일에서 값을 참조함으로써 생성하는 경우에는 --from-file
옵션을 지정한다.
일반적으로 파일명이 그대로 키가 된다.
컨피그맵 생성
kubectl create configmap --save-config sample-configmap --from-file=./nginx.conf
컨피그맵 데이터 확인
kubectl get configmaps sample-configmap -o json | jq .data
kubectl describe configmap sample-configmap
컨피그맵의 매니페스트는 data가 아닌 binaryData 필드를 사용하여 UTF-8 이외의 데이터를 포함하는 바이너리 데이터를 저장할 수 있다.
쿠버네티스에 직접 등록하는 것이 아니라 매니페스트 파일로 저장하려면 --dry-run=client -o yaml
옵션을 사용한다.
kubectl create configmap sample-configmap-binary \\
--from-file image.jpg \\
--from-literal=index.html="Hello, Kubernetes" \\
--dry-run=client -o yaml
컨피그맵 콘텐츠를 사용하는 웹 서버 예제
apiVersion: v1
kind: Pod
metadata:
name: sample-configmap-binary-webserver
spec:
containers:
- name: nginx-container
image: nginx:1.16
volumeMounts:
- name: config-volume
mountpath: /usr/share/nginx/html
volumes:
- name: config-volume
configmap:
name: sample-configmap-binary
--from-literal
)kubectl create configmap --save-config web-config \\
--from-literal=connection.max=100 --from-literal=connection.min=10
-f
)매니페스트로 생성할 경우에는 시크릿과 다르게 base64로 인코드되지 않고 추가된다.
밸류를 여러 행으로 전달하는 경우 YAML 문법 스타일에 맞춰 Key: | 등과 같이 다음 행부터 정의한다.
apiVersion: v1
kind: ConfigMap
metadata:
name: sample-configmap
data:
thread: "16"
connection.max: "100"
connection.min: "10"
sample.properties: |
property.1=value-1
property.2=value-2
property.3=value-3
nginx.conf: |
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
test.sh: |
#!/bin/bash
echo "Hello, kubernetes"
sleep infinity