mirror of
https://github.com/kubernetes-sigs/descheduler.git
synced 2026-01-26 05:14:13 +01:00
Merge pull request #572 from audip/feature/add-deployment-k8s-yaml-files
Add run descheduler as deployment
This commit is contained in:
16
README.md
16
README.md
@@ -28,6 +28,7 @@ Table of Contents
|
|||||||
- [Quick Start](#quick-start)
|
- [Quick Start](#quick-start)
|
||||||
- [Run As A Job](#run-as-a-job)
|
- [Run As A Job](#run-as-a-job)
|
||||||
- [Run As A CronJob](#run-as-a-cronjob)
|
- [Run As A CronJob](#run-as-a-cronjob)
|
||||||
|
- [Run As A Deployment](#run-as-a-deployment)
|
||||||
- [Install Using Helm](#install-using-helm)
|
- [Install Using Helm](#install-using-helm)
|
||||||
- [Install Using Kustomize](#install-using-kustomize)
|
- [Install Using Kustomize](#install-using-kustomize)
|
||||||
- [User Guide](#user-guide)
|
- [User Guide](#user-guide)
|
||||||
@@ -58,7 +59,7 @@ Table of Contents
|
|||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
The descheduler can be run as a Job or CronJob inside of a k8s cluster. It has the
|
The descheduler can be run as a `Job`, `CronJob`, or `Deployment` inside of a k8s cluster. It has the
|
||||||
advantage of being able to be run multiple times without needing user intervention.
|
advantage of being able to be run multiple times without needing user intervention.
|
||||||
The descheduler pod is run as a critical pod in the `kube-system` namespace to avoid
|
The descheduler pod is run as a critical pod in the `kube-system` namespace to avoid
|
||||||
being evicted by itself or by the kubelet.
|
being evicted by itself or by the kubelet.
|
||||||
@@ -79,6 +80,14 @@ kubectl create -f kubernetes/base/configmap.yaml
|
|||||||
kubectl create -f kubernetes/cronjob/cronjob.yaml
|
kubectl create -f kubernetes/cronjob/cronjob.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Run As A Deployment
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl create -f kubernetes/base/rbac.yaml
|
||||||
|
kubectl create -f kubernetes/base/configmap.yaml
|
||||||
|
kubectl create -f kubernetes/deployment/deployment.yaml
|
||||||
|
```
|
||||||
|
|
||||||
### Install Using Helm
|
### Install Using Helm
|
||||||
|
|
||||||
Starting with release v0.18.0 there is an official helm chart that can be used to install the
|
Starting with release v0.18.0 there is an official helm chart that can be used to install the
|
||||||
@@ -101,6 +110,11 @@ Run As A CronJob
|
|||||||
kustomize build 'github.com/kubernetes-sigs/descheduler/kubernetes/cronjob?ref=v0.21.0' | kubectl apply -f -
|
kustomize build 'github.com/kubernetes-sigs/descheduler/kubernetes/cronjob?ref=v0.21.0' | kubectl apply -f -
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Run As A Deployment
|
||||||
|
```
|
||||||
|
kustomize build 'github.com/kubernetes-sigs/descheduler/kubernetes/deployment?ref=v0.21.0' | kubectl apply -f -
|
||||||
|
```
|
||||||
|
|
||||||
## User Guide
|
## User Guide
|
||||||
|
|
||||||
See the [user guide](docs/user-guide.md) in the `/docs` directory.
|
See the [user guide](docs/user-guide.md) in the `/docs` directory.
|
||||||
|
|||||||
54
kubernetes/deployment/deployment.yaml
Normal file
54
kubernetes/deployment/deployment.yaml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: descheduler
|
||||||
|
namespace: kube-system
|
||||||
|
labels:
|
||||||
|
app: descheduler
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: descheduler
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: descheduler
|
||||||
|
spec:
|
||||||
|
priorityClassName: system-cluster-critical
|
||||||
|
serviceAccountName: descheduler-sa
|
||||||
|
containers:
|
||||||
|
- name: descheduler
|
||||||
|
image: k8s.gcr.io/descheduler/descheduler:v0.21.0
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
command:
|
||||||
|
- "/bin/descheduler"
|
||||||
|
args:
|
||||||
|
- "--policy-config-file"
|
||||||
|
- "/policy-dir/policy.yaml"
|
||||||
|
- "--descheduling-interval"
|
||||||
|
- "5m"
|
||||||
|
- "--v"
|
||||||
|
- "3"
|
||||||
|
ports:
|
||||||
|
- containerPort: 10258
|
||||||
|
protocol: TCP
|
||||||
|
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-policy-configmap
|
||||||
6
kubernetes/deployment/kustomization.yaml
Normal file
6
kubernetes/deployment/kustomization.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- ../base
|
||||||
|
- deployment.yaml
|
||||||
Reference in New Issue
Block a user