본 문서는 해당 github 의 readme 를 번역 및 재구성 하였습니다. https://github.com/stakater/Reloader
GitHub - stakater/Reloader: A Kubernetes controller to watch changes in ConfigMap and Secrets and do rolling upgrades on Pods wi
A Kubernetes controller to watch changes in ConfigMap and Secrets and do rolling upgrades on Pods with their associated Deployment, StatefulSet, DaemonSet and DeploymentConfig – [✩Star] if you'...
github.com
문제
쿠버네티스 자원을 관리하다 보면 deployment 내부의 정보들이 변경 될 때 자동으로 deployment 가 롤 아웃 되는 것을 확인 할 수 있다. 하지만 연결된 configmap 이나 secret 등 의 경우 내부에 변경이 있어도 deployment 가 재시작 되지 않는다.
해결방법
reloader 는 configMap 과 secret 의 변경사항을 확인하여 연결되어 있는 deployment, daemonset, statefulsets 등을 자동으로 업데이트 한다.
호환성
쿠버네티스 1.9 이상 부터 호환된다.
사용법
foo 라고 불리는 deployment 에는 foo-configmap 이라고 불리는 configmap 과 foo-secret 이라고 불리는 secret 을 가지고 있을 때, deployment 의 metadata 에 다음과 같은 어노테이션을 붙인다.
kind: Deployment
metadata:
annotations:
reloader.stakater.com/auto: "true"
spec:
template: metadata:
위와 같이 설정하면, deployment 가 자동으로 configmap 과 secret 의 변경 여부를 캐치할 것이다. 그리고 업데이트 되면 자동으로 롤링 업데이트를 시작할 것이다.
만약 configmap 혹은 secret 둘 중 특정 리소스에 제한을 두고 싶다면 아래와 같이 어노테이션을 설정할 수 있다.
kind: Deployment
metadata:
annotations:
reloader.stakater.com/search: "true"
spec:
template:
위와 같이 search 어노테이션을 설정하면 아래와 같이 match 가 true 로 된 리소스가 변경될 때만 업데이트 한다.
kind: ConfigMap
metadata:
annotations:
reloader.stakater.com/match: "true"
data:
key: value
reloader.stakater.com/search 와 reloader.stakater.com/auto 어노테이션을 동시에 사용하면 안된다. 만약 reloader.stakater.com/auto: "true"어노테이션을 deployment 에서 가지고 있다면 이는 연결된 configmap 과 secret 의 변동이 있을 때마다 항상 업데이트를 진행할 것이다. 연결된 리소스가 reloader.stakater.com/match: "true"를 가지고 있든 말든.
'번역' 카테고리의 다른 글
[번역] Go 를 위한 OpenStack SDK 사용법 (0) | 2022.01.27 |
---|---|
[번역] [go] Defer, Panic, Recover 에 대해서 (0) | 2022.01.27 |
[번역] [go] go 코드를 작성하는 방법 (0) | 2022.01.27 |
[번역] 쿠버네티스 네트워크 이해하기: Pod (0) | 2022.01.27 |
[번역] Iptables 및 Netfilter 구조에 대한 심층분석 (0) | 2022.01.25 |
댓글