Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- eks
- sonarqube
- gitlab cd
- Kubernetes
- Prometheus
- Service Mesh
- Resource
- 웹 취약점
- GitLab
- CD
- helm
- 모의해킹
- docker
- deploy
- Crawling
- Jenkins
- Grafana
- CI
- argocd
- CI/CD
- ECR
- DevOps
- scraping
- Monitoring
- gitlab ci
- opentelemetry
- 크롤링
- 웹 해킹
- 스크레이핑
- linkerd
Archives
- Today
- Total
ㅡ.ㅡ
[K8S Resource] Descheduler 본문
사용자가 정의한 정책에 따라 리소스 사용량, 우선순위, 예약 제약 조건 등을 고려하여 Pod를 재배치하거나 종료하여 클러스터의 자원 활용을 최적화하고 안정성과 성능을 향상시키는 도구
deschedulerPolicy
Pod를 리스케줄링할 정책을 담당한다.
- evictSystemCriticalPods
크리티컬 파드(priorityClassName이 system-cluster-critical 또는 system-node-critical)는 미 삭제, true 설정시 삭제 가능(aws-node와 같은 파드가 삭제될 수 있음) - evictFailedBarePods
재 생성되지 않는 파드(Deployment, StatefulSet, Job을 제외한 단일 pod 등)는 미 삭제, true 설정시 삭제 가능 - evictLocalStoragePods
로컬 스토리지가 있는 파드는 미 삭제, true 설정시 삭제 가능 - ignorePvcPods
pvc가 할당된 파드는 미 삭제, true 설정시 삭제 가능 - strategies
- RemoveDuplicates
노드에 동일 파드가 있을 시 재 배치 - LowNodeUtilization
활용도가 높은 노드 내 파드를 제거하여 활용도가 낮은 노드로 재 배치 - RemovePodsViolatingNodeTaints
taint가 업데이트되거나 변경되었을때 일치하지 않는 파드 재배치 - RemovePodsViolatingInterPodAntiAffinity
Anti-Affinity 규칙을 위반하는 파드 재배치 - PodLifeTime
특정 상태에 지정한 시간만큼 머물어 있는 파드 재배치
- RemoveDuplicates
Helm Chart
helm repo add descheduler https://kubernetes-sigs.github.io/descheduler/
Values.yaml
schedule: "*/5 * * * *"
successfulJobsHistoryLimit: 2
failedJobsHistoryLimit: 1
cmdOptions:
v: 3
client-connection-qps: 60
client-connection-burst: 100
deschedulerPolicy:
evictFailedBarePods: true
evictLocalStoragePods: true
ignorePvcPods: true
nodeFit: true
strategies:
RemoveDuplicates:
enabled: true
RemovePodsHavingTooManyRestarts:
enabled: true
params:
podsHavingTooManyRestarts:
podRestartThreshold: 50
includingInitContainers: true
RemovePodsViolatingNodeTaints:
enabled: true
RemovePodsViolatingNodeAffinity:
enabled: true
params:
nodeAffinityType:
- requiredDuringSchedulingIgnoredDuringExecution
RemovePodsViolatingInterPodAntiAffinity:
enabled: true
RemovePodsViolatingTopologySpreadConstraint:
enabled: true
params:
includeSoftConstraints: false
LowNodeUtilization:
enabled: true
params:
nodeResourceUtilizationThresholds:
# thresholds ~ targetThresholds는 적정하게 사용되는 노드로 구분됨
# 백분율 기준 해당 값 미만 활용도 낮은 노드(and조건)
thresholds:
cpu: 40
memory: 40
pods: 45
# 백분율 기준 해당 값 미만 활용도 낮은 노드(or조건)
targetThresholds:
cpu: 80
memory: 80
pods: 80
PodLifeTime:
enabled: true
params:
podLifeTime:
maxPodLifeTimeSeconds: 86400
states:
- "Pending"
- "PodInitializing"
재배치된 파드
활용도 높/낮은 노드 체크
Reference
'ETC' 카테고리의 다른 글
[K8S Resource] ClusterAutoScaler (0) | 2023.10.22 |
---|---|
[K8S Resource] Goldilocks (0) | 2023.10.22 |
[AWS] EFS (0) | 2021.10.21 |
[Kubernetes Management] Rancher (0) | 2021.09.29 |
[Kubernetes Package Manager] Helm (0) | 2020.12.15 |