
1. GitOps
1.1. deployment
1. minReadySeconds 설정
spec.minReadySeconds은 pod의 status가 ready가 될 때까지의 최소 대기시간이다.
pod가 실행되고나서 .spec.minReadySeconds에 설정된 시간동안은 트래픽을 받지 않는다.
2. Pod Anti-affinity 설정
이 설정은 pod가 여러 node 에 균일하게 배포되는것을 보장한다.
만약 replicas를 3으로 설정하였는데 모두 하나의 node에 배포되고 해당 node가 장애로 다운된다면 해당 서비스 또한 당분간 아예 서비스가 되지 않는다.
하지만 Pod Anti-affinity 설정으로 최대한 동일한 pod가 같은 node에 배포되는것을 방지하여 장애에 강한 서비스를 만들 수 있다.
여기서 preferredDuringSchedulingIgnoredDuringExecution 대신 requiredDuringSchedulingIgnoredDuringExecution 를 사용하면 node에는 해당 pod가 하나밖에 생성 될수 없고,
추가로 scheduling 되어야 하는 pod는 pending 상태가 되어 node가 cluster 에 추가되면 그제서야 배치될 수 있다.
weight 필드는 1부터 100까지의 값을 설정할 수 있다.
key는 노드의 레이블 키 중 하나를 설정하고 operator 는 key 가 만족할 조건이다.
3. maxSurge, maxUnavailable 설정
maxSurge
- deployment에 설정되어 있는 기본 pod 개수보다 여분의 pod가 최대 몇개가 더 추가될 수 있는지를 설정한다.
- 기본값 25% 이며, 개수로도 설정이 가능하다.
- replicas 4개인 경우 25% 이면 1개가 설정된다.
maxUnavailable
- 업데이트하는 동안 몇 개의 pod가 이용 불가능하게 되어도 되는지 설정한다.
- 기본값 25%, 개수로도 설정이 가능하다.
- replicas 4개인 경우 25% 이면 1개가 설정된다.
maxSurge 와 maxUnavailable 가 둘다 0 일경우 RollingUpdate 중 트래픽을 받는 Pod 가 0개가 될수도 있으므로,둘다 0으로 설정할 수는 없다.
'DevOps, Infra' 카테고리의 다른 글
[ArgoCD]카나리 배포 (Canary Deployment) (0) | 2022.12.30 |
---|---|
[ArgoCD] 블루그린 배포(Blue Green Deployment) (0) | 2022.12.30 |
[skaffold] window 에 설치한 skaffold Trouble Shooting (0) | 2022.12.29 |
[ArgoCD] 무중단 배포 전략 (0) | 2022.12.29 |
[ArgoCD] ArgoCD Install (0) | 2022.12.28 |