101 lines
2.8 KiB
YAML
101 lines
2.8 KiB
YAML
|
|
# infrastructure/descheduler/helmrelease.yaml
|
||
|
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
||
|
|
kind: HelmRelease
|
||
|
|
metadata:
|
||
|
|
name: descheduler
|
||
|
|
namespace: kube-system
|
||
|
|
spec:
|
||
|
|
interval: 30m
|
||
|
|
install:
|
||
|
|
remediation:
|
||
|
|
retries: 3
|
||
|
|
upgrade:
|
||
|
|
remediation:
|
||
|
|
retries: 3
|
||
|
|
chart:
|
||
|
|
spec:
|
||
|
|
chart: descheduler
|
||
|
|
version: 0.33.0
|
||
|
|
sourceRef:
|
||
|
|
kind: HelmRepository
|
||
|
|
name: descheduler
|
||
|
|
namespace: flux-system
|
||
|
|
values:
|
||
|
|
kind: CronJob
|
||
|
|
schedule: "*/20 * * * *"
|
||
|
|
successfulJobsHistoryLimit: 1
|
||
|
|
failedJobsHistoryLimit: 3
|
||
|
|
resources:
|
||
|
|
requests:
|
||
|
|
cpu: 50m
|
||
|
|
memory: 96Mi
|
||
|
|
limits:
|
||
|
|
cpu: 200m
|
||
|
|
memory: 256Mi
|
||
|
|
deschedulerPolicyAPIVersion: descheduler/v1alpha2
|
||
|
|
deschedulerPolicy:
|
||
|
|
maxNoOfPodsToEvictPerNode: 2
|
||
|
|
maxNoOfPodsToEvictPerNamespace: 2
|
||
|
|
profiles:
|
||
|
|
- name: atlas-rpi-balance
|
||
|
|
pluginConfig:
|
||
|
|
- name: DefaultEvictor
|
||
|
|
args:
|
||
|
|
nodeFit: true
|
||
|
|
minPodAge: 10m
|
||
|
|
podProtections:
|
||
|
|
extraEnabled:
|
||
|
|
- PodsWithPVC
|
||
|
|
- PodsWithLocalStorage
|
||
|
|
- SystemCriticalPods
|
||
|
|
- name: RemovePodsHavingTooManyRestarts
|
||
|
|
args:
|
||
|
|
podRestartThreshold: 12
|
||
|
|
includingInitContainers: true
|
||
|
|
- name: RemovePodsViolatingNodeAffinity
|
||
|
|
args:
|
||
|
|
nodeAffinityType:
|
||
|
|
- requiredDuringSchedulingIgnoredDuringExecution
|
||
|
|
- name: RemovePodsViolatingTopologySpreadConstraint
|
||
|
|
- name: RemovePodsViolatingNodeTaints
|
||
|
|
- name: LowNodeUtilization
|
||
|
|
args:
|
||
|
|
thresholds:
|
||
|
|
cpu: 45
|
||
|
|
memory: 45
|
||
|
|
pods: 45
|
||
|
|
targetThresholds:
|
||
|
|
cpu: 75
|
||
|
|
memory: 75
|
||
|
|
pods: 75
|
||
|
|
plugins:
|
||
|
|
balance:
|
||
|
|
enabled:
|
||
|
|
- RemovePodsViolatingTopologySpreadConstraint
|
||
|
|
- LowNodeUtilization
|
||
|
|
deschedule:
|
||
|
|
enabled:
|
||
|
|
- RemovePodsHavingTooManyRestarts
|
||
|
|
- RemovePodsViolatingNodeTaints
|
||
|
|
- RemovePodsViolatingNodeAffinity
|
||
|
|
priorityClassName: system-cluster-critical
|
||
|
|
nodeSelector:
|
||
|
|
node-role.kubernetes.io/worker: "true"
|
||
|
|
affinity:
|
||
|
|
nodeAffinity:
|
||
|
|
preferredDuringSchedulingIgnoredDuringExecution:
|
||
|
|
- weight: 100
|
||
|
|
preference:
|
||
|
|
matchExpressions:
|
||
|
|
- key: hardware
|
||
|
|
operator: In
|
||
|
|
values:
|
||
|
|
- rpi5
|
||
|
|
tolerations:
|
||
|
|
- key: node-role.kubernetes.io/control-plane
|
||
|
|
operator: Exists
|
||
|
|
effect: NoSchedule
|
||
|
|
- key: node-role.kubernetes.io/master
|
||
|
|
operator: Exists
|
||
|
|
effect: NoSchedule
|