forked from k-space/kube
		
	Add descheduler
This commit is contained in:
		
							
								
								
									
										165
									
								
								kube-system/descheduler.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										165
									
								
								kube-system/descheduler.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,165 @@ | |||||||
|  | --- | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: ServiceAccount | ||||||
|  | metadata: | ||||||
|  |   name: descheduler | ||||||
|  |   namespace: kube-system | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: descheduler | ||||||
|  | --- | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: ConfigMap | ||||||
|  | metadata: | ||||||
|  |   name: descheduler | ||||||
|  |   namespace: kube-system | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: descheduler | ||||||
|  | data: | ||||||
|  |   policy.yaml: | | ||||||
|  |     apiVersion: "descheduler/v1alpha1" | ||||||
|  |     kind: "DeschedulerPolicy" | ||||||
|  |     strategies: | ||||||
|  |       LowNodeUtilization: | ||||||
|  |         enabled: true | ||||||
|  |         params: | ||||||
|  |           nodeResourceUtilizationThresholds: | ||||||
|  |             targetThresholds: | ||||||
|  |               cpu: 50 | ||||||
|  |               memory: 50 | ||||||
|  |               pods: 50 | ||||||
|  |             thresholds: | ||||||
|  |               cpu: 20 | ||||||
|  |               memory: 20 | ||||||
|  |               pods: 20 | ||||||
|  |       RemoveDuplicates: | ||||||
|  |         enabled: true | ||||||
|  |       RemovePodsHavingTooManyRestarts: | ||||||
|  |         enabled: true | ||||||
|  |         params: | ||||||
|  |           podsHavingTooManyRestarts: | ||||||
|  |             includingInitContainers: true | ||||||
|  |             podRestartThreshold: 100 | ||||||
|  |       RemovePodsViolatingInterPodAntiAffinity: | ||||||
|  |         enabled: true | ||||||
|  |       RemovePodsViolatingNodeAffinity: | ||||||
|  |         enabled: true | ||||||
|  |         params: | ||||||
|  |           nodeAffinityType: | ||||||
|  |           - requiredDuringSchedulingIgnoredDuringExecution | ||||||
|  |       RemovePodsViolatingNodeTaints: | ||||||
|  |         enabled: true | ||||||
|  |       RemovePodsViolatingTopologySpreadConstraint: | ||||||
|  |         enabled: true | ||||||
|  |         params: | ||||||
|  |           includeSoftConstraints: false | ||||||
|  | --- | ||||||
|  | kind: ClusterRole | ||||||
|  | apiVersion: rbac.authorization.k8s.io/v1 | ||||||
|  | metadata: | ||||||
|  |   name: descheduler | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: descheduler | ||||||
|  | rules: | ||||||
|  | - apiGroups: ["events.k8s.io"] | ||||||
|  |   resources: ["events"] | ||||||
|  |   verbs: ["create", "update"] | ||||||
|  | - apiGroups: [""] | ||||||
|  |   resources: ["nodes"] | ||||||
|  |   verbs: ["get", "watch", "list"] | ||||||
|  | - apiGroups: [""] | ||||||
|  |   resources: ["namespaces"] | ||||||
|  |   verbs: ["get", "watch", "list"] | ||||||
|  | - apiGroups: [""] | ||||||
|  |   resources: ["pods"] | ||||||
|  |   verbs: ["get", "watch", "list", "delete"] | ||||||
|  | - apiGroups: [""] | ||||||
|  |   resources: ["pods/eviction"] | ||||||
|  |   verbs: ["create"] | ||||||
|  | - apiGroups: ["scheduling.k8s.io"] | ||||||
|  |   resources: ["priorityclasses"] | ||||||
|  |   verbs: ["get", "watch", "list"] | ||||||
|  | - apiGroups: ["coordination.k8s.io"] | ||||||
|  |   resources: ["leases"] | ||||||
|  |   verbs: ["create", "update"] | ||||||
|  | - apiGroups: ["coordination.k8s.io"] | ||||||
|  |   resources: ["leases"] | ||||||
|  |   resourceNames: ["descheduler"] | ||||||
|  |   verbs: ["get", "patch", "delete"] | ||||||
|  | --- | ||||||
|  | apiVersion: rbac.authorization.k8s.io/v1 | ||||||
|  | kind: ClusterRoleBinding | ||||||
|  | metadata: | ||||||
|  |   name: descheduler | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: descheduler | ||||||
|  | roleRef: | ||||||
|  |   apiGroup: rbac.authorization.k8s.io | ||||||
|  |   kind: ClusterRole | ||||||
|  |   name: descheduler | ||||||
|  | subjects: | ||||||
|  |   - kind: ServiceAccount | ||||||
|  |     name: descheduler | ||||||
|  |     namespace: kube-system | ||||||
|  | --- | ||||||
|  | apiVersion: apps/v1 | ||||||
|  | kind: Deployment | ||||||
|  | metadata: | ||||||
|  |   name: descheduler | ||||||
|  |   namespace: kube-system | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: descheduler | ||||||
|  | spec: | ||||||
|  |   replicas: 2 | ||||||
|  |   selector: | ||||||
|  |     matchLabels: &selectorLabels | ||||||
|  |       app.kubernetes.io/name: descheduler | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       labels: *selectorLabels | ||||||
|  |     spec: | ||||||
|  |       priorityClassName: system-cluster-critical | ||||||
|  |       serviceAccountName: descheduler | ||||||
|  |       containers: | ||||||
|  |         - name: descheduler | ||||||
|  |           image: "k8s.gcr.io/descheduler/descheduler:v0.25.1" | ||||||
|  |           imagePullPolicy: IfNotPresent | ||||||
|  |           command: | ||||||
|  |             - "/bin/descheduler" | ||||||
|  |           args: | ||||||
|  |             - "--policy-config-file" | ||||||
|  |             - "/policy-dir/policy.yaml" | ||||||
|  |             - "--descheduling-interval" | ||||||
|  |             - 5m | ||||||
|  |             - "--v" | ||||||
|  |             - "3" | ||||||
|  |             - --leader-elect=true | ||||||
|  |           ports: | ||||||
|  |             - containerPort: 10258 | ||||||
|  |               protocol: TCP | ||||||
|  |           livenessProbe: | ||||||
|  |             failureThreshold: 3 | ||||||
|  |             httpGet: | ||||||
|  |               path: /healthz | ||||||
|  |               port: 10258 | ||||||
|  |               scheme: HTTPS | ||||||
|  |             initialDelaySeconds: 3 | ||||||
|  |             periodSeconds: 10 | ||||||
|  |           resources: | ||||||
|  |             requests: | ||||||
|  |               cpu: 500m | ||||||
|  |               memory: 256Mi | ||||||
|  |           securityContext: | ||||||
|  |             allowPrivilegeEscalation: false | ||||||
|  |             capabilities: | ||||||
|  |               drop: | ||||||
|  |                 - ALL | ||||||
|  |             privileged: false | ||||||
|  |             readOnlyRootFilesystem: true | ||||||
|  |             runAsNonRoot: true | ||||||
|  |           volumeMounts: | ||||||
|  |             - mountPath: /policy-dir | ||||||
|  |               name: policy-volume | ||||||
|  |       volumes: | ||||||
|  |         - name: policy-volume | ||||||
|  |           configMap: | ||||||
|  |             name: descheduler | ||||||
		Reference in New Issue
	
	Block a user