descheduler.yaml (3323B)
1 apiVersion: v1 2 kind: Namespace 3 metadata: 4 name: descheduler 5 --- 6 apiVersion: source.toolkit.fluxcd.io/v1 7 kind: HelmRepository 8 metadata: 9 name: descheduler 10 namespace: descheduler 11 spec: 12 interval: 24h 13 url: https://kubernetes-sigs.github.io/descheduler/ 14 --- 15 apiVersion: helm.toolkit.fluxcd.io/v2 16 kind: HelmRelease 17 metadata: 18 name: descheduler 19 namespace: descheduler 20 spec: 21 interval: 30m 22 chart: 23 spec: 24 chart: descheduler 25 version: "0.35.1" 26 sourceRef: 27 kind: HelmRepository 28 name: descheduler 29 namespace: descheduler 30 interval: 12h 31 values: 32 schedule: "*/30 * * * *" 33 tolerations: 34 - key: "arch" 35 operator: "Equal" 36 value: "arm64" 37 effect: "NoSchedule" 38 service: 39 enabled: true 40 ipFamilyPolicy: PreferDualStack 41 ipFamilies: 42 - IPv6 43 - IPv4 44 serviceMonitor: 45 enabled: true 46 podSecurityContext: 47 seccompProfile: 48 type: RuntimeDefault 49 deschedulerPolicy: 50 profiles: 51 - name: default 52 pluginConfig: 53 - name: DefaultEvictor 54 args: 55 ignorePvcPods: true 56 evictLocalStoragePods: true 57 - name: RemoveDuplicates 58 - name: RemovePodsHavingTooManyRestarts 59 args: 60 podRestartThreshold: 100 61 includingInitContainers: true 62 - name: RemovePodsViolatingNodeAffinity 63 args: 64 nodeAffinityType: 65 - requiredDuringSchedulingIgnoredDuringExecution 66 - name: RemovePodsViolatingNodeTaints 67 - name: RemovePodsViolatingInterPodAntiAffinity 68 - name: RemovePodsViolatingTopologySpreadConstraint 69 - name: LowNodeUtilization 70 args: 71 thresholds: 72 cpu: 20 73 memory: 20 74 pods: 20 75 targetThresholds: 76 cpu: 70 77 memory: 80 78 pods: 60 79 - name: HighNodeUtilization 80 args: 81 thresholds: 82 cpu: 80 83 memory: 85 84 pods: 65 85 plugins: 86 balance: 87 enabled: 88 - RemoveDuplicates 89 - RemovePodsViolatingTopologySpreadConstraint 90 - LowNodeUtilization 91 #- HighNodeUtilization 92 deschedule: 93 enabled: 94 - RemovePodsHavingTooManyRestarts 95 - RemovePodsViolatingNodeTaints 96 - RemovePodsViolatingNodeAffinity 97 - RemovePodsViolatingInterPodAntiAffinity 98 --- 99 # The descheduler chart (v0.35.0) does not include PVC list/watch in its 100 # default ClusterRole, but it's required for ignorePvcPods: true. 101 apiVersion: rbac.authorization.k8s.io/v1 102 kind: ClusterRole 103 metadata: 104 name: descheduler-pvc-reader 105 rules: 106 - apiGroups: [""] 107 resources: ["persistentvolumeclaims"] 108 verbs: ["get", "list", "watch"] 109 --- 110 apiVersion: rbac.authorization.k8s.io/v1 111 kind: ClusterRoleBinding 112 metadata: 113 name: descheduler-pvc-reader 114 roleRef: 115 apiGroup: rbac.authorization.k8s.io 116 kind: ClusterRole 117 name: descheduler-pvc-reader 118 subjects: 119 - kind: ServiceAccount 120 name: descheduler 121 namespace: descheduler