desheduler
This commit is contained in:
parent
9497a465ac
commit
e1d4c89fc6
3 changed files with 113 additions and 0 deletions
30
descheduler/job.yaml
Normal file
30
descheduler/job.yaml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: descheduler
|
||||||
|
namespace: kube-system
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: descheduler
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: descheduler
|
||||||
|
spec:
|
||||||
|
serviceAccountName: descheduler-sa
|
||||||
|
containers:
|
||||||
|
- name: descheduler
|
||||||
|
image: k8s.gcr.io/descheduler/descheduler:v0.32.1
|
||||||
|
command:
|
||||||
|
- /bin/descheduler
|
||||||
|
- --policy-config-file=/policy-dir/policy.yaml
|
||||||
|
volumeMounts:
|
||||||
|
- name: policy-volume
|
||||||
|
mountPath: /policy-dir
|
||||||
|
volumes:
|
||||||
|
- name: policy-volume
|
||||||
|
configMap:
|
||||||
|
name: descheduler-policy
|
||||||
|
|
27
descheduler/policy.yaml
Normal file
27
descheduler/policy.yaml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: descheduler-policy
|
||||||
|
namespace: kube-system
|
||||||
|
data:
|
||||||
|
policy.yaml: |
|
||||||
|
apiVersion: "descheduler/v1alpha2"
|
||||||
|
kind: "DeschedulerPolicy"
|
||||||
|
profiles:
|
||||||
|
- name: ProfileName
|
||||||
|
pluginConfig:
|
||||||
|
- name: "LowNodeUtilization"
|
||||||
|
args:
|
||||||
|
thresholds:
|
||||||
|
"cpu": 20
|
||||||
|
"memory": 20
|
||||||
|
"pods": 20
|
||||||
|
targetThresholds:
|
||||||
|
"cpu": 50
|
||||||
|
"memory": 50
|
||||||
|
"pods": 50
|
||||||
|
plugins:
|
||||||
|
balance:
|
||||||
|
enabled:
|
||||||
|
- "LowNodeUtilization"
|
||||||
|
|
56
descheduler/rbac.yaml
Normal file
56
descheduler/rbac.yaml
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
---
|
||||||
|
kind: ClusterRole
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
metadata:
|
||||||
|
name: descheduler-cluster-role
|
||||||
|
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: ["policy"]
|
||||||
|
resources: ["poddisruptionbudgets"]
|
||||||
|
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"]
|
||||||
|
- apiGroups: ["metrics.k8s.io"]
|
||||||
|
resources: ["nodes", "pods"]
|
||||||
|
verbs: ["get", "list"]
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: descheduler-sa
|
||||||
|
namespace: kube-system
|
||||||
|
---
|
||||||
|
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:
|
||||||
|
- name: descheduler-sa
|
||||||
|
kind: ServiceAccount
|
||||||
|
namespace: kube-system
|
Loading…
Reference in a new issue