# 이전 replica 가 삭제되 않고 유지되는 경우가 있다.
kubectl get replicaset | grep -E "NAME|ysoftman"
NAME DESIRED CURRENT READY AGE
ysoftman-deployment-11111 0 0 0 1d
ysoftman-deployment-22222 0 0 0 2d
ysoftman-deployment-33333 1 1 1 1d
# deployment 설정에서 revisionHistoryLimit 을 0 으로 주면 이전 replica 를 유지 하지 않고 삭제한다.
# revisionHistoryLimit 디폴트 값은 10이다.
# https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy
spec:
revisionHistoryLimit:0
# replicatset 에 patch 로 바로 적용할 수 있다.
kubectl patch deployment/ysoftman-deployment -p '{"spec":{"revisionHistoryLimit":0}}'
# deployment 전체 재시작 후
kubectl rollout restart deployment
# deployment 전체 replica 이전 revision 삭제
kubectl patch deployment $(kubectl get deployment | awk '{print $1}') -p '{"spec":{"revisionHistoryLimit":0}}'
# 참고
# patch 명령시 --type='strategic'가 디폴트다.
# [] 부분 변경시 다음과 같이 해당 원소(오브젝트) 전체를 명시한다.
# 예) ingress host 변경시 host 가 포함된 오브젝트 전체 명시
kubectl patch ingress ysoftman_ing -n ysoftman_ns -p \
'{
"spec": {
"rules": [
{
"host": "ysoftman.host",
"http": {
"paths": [
{
"backend": {
"service": {
"name": "ysoftman_service",
"port": {
"name": "http"
}
}
},
"path": "/abc",
"pathType": "Prefix"
}
]
}
}
]
}
}'
comments:
댓글 쓰기