기존 항목을 삭제하지 않고 k8s ConfigMap 또는 Secret 업데이트
저는 K8S ConfigMap 및 Secret을 사용하여 속성을 관리하고 있습니다. 내 디자인은 매우 간단하여 속성 파일을 git repo에 유지하고 Thoughtworks GO와 같은 빌드 서버를 사용하여 자동으로 k8s 클러스터에 ConfigMaps 또는 Secrets (선택 조건)로 배포합니다.
현재 기존 ConfigMap 및 Secret을 항상 삭제하고 아래와 같이 업데이트 할 새 항목을 만들어야하는 것이 비효율적이라는 것을 알았습니다.
kubectl delete configmap foo
kubectl create configmap foo --from-file foo.properties
한 단계 이상을 만들고 현재를 삭제하는 것보다 효율적으로 만드는 멋지고 간단한 방법이 있습니까? 잠재적으로 내가 지금하고있는 일은 이전 configmap이 삭제되고 새 configmap이 생성되지 않은 동안 마운트를 시도하면 이러한 configmap을 사용하는 컨테이너를 손상시킬 수 있습니다.
미리 감사드립니다.
다음 kubectl create configmap
과 같이 명령 에서 yaml을 가져와으로 파이프 할 수 있습니다 kubectl replace
.
kubectl create configmap foo --from-file foo.properties -o yaml --dry-run | kubectl replace -f -
나중에 참조 kubectl replace
할 수 있도록이 작업을 수행하는 매우 편리한 방법입니다.
kubectl replace -f some_spec.yaml
완전한 configMap (또는 기타 객체)을 업데이트 할 수 있습니다.
도움말에서 복사 / 붙여 넣기 :
# Replace a pod using the data in pod.json.
kubectl replace -f ./pod.json
# Replace a pod based on the JSON passed into stdin.
cat pod.json | kubectl replace -f -
# Update a single-container pod's image version (tag) to v4
kubectl get pod mypod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/' | kubectl replace -f -
# Force replace, delete and then re-create the resource
kubectl replace --force -f ./pod.json
에서 약간 변경 configMap
하려면edit
kubectl edit configmap <cfg-name>
vi
편집기 에서 configMap이 열립니다 . 변경하고 저장하십시오.
'program tip' 카테고리의 다른 글
교리 2에서 소수 필드 유형을 지정할 때 스케일과 정밀도는 무엇을 의미합니까? (0) | 2020.12.07 |
---|---|
Laravel의 테이블에서 모든 행 (소프트 삭제)을 가져 오는 방법은 무엇입니까? (0) | 2020.12.07 |
Angular에서 이전 페이지 URL을 확인하는 방법은 무엇입니까? (0) | 2020.12.07 |
정규식 이메일 주소 인식이 어렵습니까? (0) | 2020.12.07 |
SQL Server : 테이블 메타 데이터 추출 (설명, 필드 및 해당 데이터 유형) (0) | 2020.12.07 |