Kubernetes ConfigMap 시도
7905 단어 kubernetes
ConfigMap
ConfigMap은 Kubernetes 1.2에서 설정된 정보를 처리하는 데 사용되는 리소스입니다.
참조:
ConfigMap 만들기
ConfigMap에는 다양한 제작 방법이 있습니다.
kubectl create -f config.conf
방식kubectl create configmap
명령 사용 방법--from-file
옵션, 구성하려는 설정 파일 지정--from-literal
옵션example-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: example-config
data:
# key, value形式で設定を記述する
example.property.1: hello
example.property.2: world
설정을 반영합니다.$ kubectl create -f example-config.yaml
다음과 같이 ConfigMap을 만들었습니다.$ kubectl get configmap example-config -o yaml
apiVersion: v1
data:
example.property.1: hello
example.property.2: world
kind: ConfigMap
metadata:
creationTimestamp: 2016-03-19T12:33:55Z
name: example-config
namespace: default
resourceVersion: "1522"
selfLink: /api/v1/namespaces/default/configmaps/example-config
uid: d82ebdbc-edce-11e5-8c6d-08002701bf15
Pod to ConfigMap 데이터 사용
Pod에서 읽어서 만든 ConfigMap을 사용해 보세요.환경 변수로 설정하는 방법과 파일로 마운트하는 방법은 두 가지가 있습니다.여기서 Volume을 파일로 마운트해 보십시오.
pod-using-config.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-using-config
spec:
containers:
- name: example-container
image: busybox
# あとからexecで操作するためsleepさせておく
command: ["sleep", "3600"]
# 定義したConfigMapのvolumeをマウントする
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
# ConfigMapのvolume定義
- name: config-volume
configMap:
# 作ったConfigMapのname
name: example-config
상기 구성의 Pod을 배포합니다.$ kubectl create -f pod-using-config.yaml
Pod의 마운트/etc/config
아래에서 키 이름의 파일을 만들면 접근 값을 확인할 수 있습니다.$ kubectl exec pod-using-config cat /etc/config/example.property.1
hello
$ kubectl exec pod-using-config cat /etc/config/example.property.2
world
ConfigMap 변경 내용 확인
ConfigMap을 Volume로 사용할 때 ConfigMap의 변경 사항도 Pod에 동적으로 반영됩니다.
example-config
를 사용하여 방금 생성한 kubectl edit
을 변경합니다.$ kubectl edit configmap example-config
기본적으로vi는 상승하기 때문에config를 다음과 같이 고쳐야 합니다....
data:
# 値を書き換える
example.property.1: hello-updated
example.property.2: world-updated
값 변경을 확인합니다.변경 사항을 반영하는 데 시간이 오래 걸릴 수 있습니다.(Kublet의 SyncLoop 타이밍에 반영된 것 같습니다. cf.kubelet#syncLoopIteration$ kubectl exec pod-using-config cat /etc/config/example.property.1
hello-updated
$ kubectl exec pod-using-config cat /etc/config/example.property.2
world-updated
볼륨의 경우 파일은 기호 링크입니다.
ConfigMap을 Volume로 사용할 때 구성 파일은 기호 링크입니다.여러 개의 설정 파일을 하나하나 새로운 것으로 바꾸면 전체적으로 원자가 되지 않기 때문에 디렉터리의 기호 링크를 바꾸는 방식을 사용했다.기호 링크를 보지 않는 프로그램은 주의해야 한다.
실제 Pod에 로드된 파일은 다음과 같습니다.
$ kubectl exec pod-using-config -- ls /etc/config -lra
total 8
lrwxrwxrwx 1 root root 25 Mar 19 05:23 example.property.2 -> ..data/example.property.2
lrwxrwxrwx 1 root root 25 Mar 19 05:23 example.property.1 -> ..data/example.property.1
lrwxrwxrwx 1 root root 31 Mar 19 05:33 ..data -> ..3983_19_03_05_33_10.012371420
drwx------ 2 root root 80 Mar 19 05:33 ..3983_19_03_05_33_10.012371420
drwxr-xr-x 1 root root 4096 Mar 19 05:23 ..
drwxrwxrwt 3 root root 120 Mar 19 05:33 .
실제 원자 전환 처리는 atomic_writer.go에서 진행되는데 다음은 처리의 인상이다...3983_19_03_05_33_10.012371420
같은 이름으로 디렉터리를 만들고 각 설정 파일을 쓴다..data
의 디렉터리 이름으로 위의 디렉터리에 기호 링크를 붙여넣기.data
에 대한 각 설정 파일 붙여넣기 기호 링크..data
의 기호 대상을 새 것으로 전환Reference
이 문제에 관하여(Kubernetes ConfigMap 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tkusumi/items/8e31fddda77f93ccfdd8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)