Skip to content

Instantly share code, notes, and snippets.

@ams0
Created June 25, 2019 16:56
Show Gist options
  • Select an option

  • Save ams0/b38158b4a66fa3bbb0f272121f76cc6f to your computer and use it in GitHub Desktop.

Select an option

Save ams0/b38158b4a66fa3bbb0f272121f76cc6f to your computer and use it in GitHub Desktop.
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: descheduler-cluster-role
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "watch", "list"]
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list", "delete"]
- apiGroups: [""]
resources: ["pods/eviction"]
verbs: ["create"]
---
apiVersion: v1
kind: ServiceAccount
metadata:
namespace: kube-system
name: descheduler-sa
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: descheduler-cluster-role-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: descheduler-cluster-role
subjects:
- kind: ServiceAccount
name: descheduler-sa
namespace: kube-system
---
apiVersion: v1
data:
policy.yaml: |
apiVersion: "descheduler/v1alpha1"
kind: "DeschedulerPolicy"
strategies:
"RemoveDuplicates":
enabled: true
"RemovePodsViolatingInterPodAntiAffinity":
enabled: true
"LowNodeUtilization":
enabled: true
params:
nodeResourceUtilizationThresholds:
thresholds:
"cpu" : 20
"memory": 20
"pods": 20
targetThresholds:
"cpu" : 50
"memory": 50
"pods": 50
kind: ConfigMap
metadata:
name: descheduler-policy-configmap
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: descheduler-job
namespace: kube-system
spec:
schedule: "0 * * * *"
jobTemplate:
spec:
template:
metadata:
name: descheduler-pod
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ""
spec:
containers:
- name: descheduler
image: aveshagarwal/descheduler
volumeMounts:
- mountPath: /policy-dir
name: policy-volume
command: ["/bin/descheduler", "--policy-config-file", "/policy-dir/policy.yaml"]
restartPolicy: "Never"
serviceAccountName: descheduler-sa
volumes:
- name: policy-volume
configMap:
name: descheduler-policy-configmap
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment