1
0
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:
Kubernetes Prow Robot
2021-06-08 05:47:14 -07:00
committed by GitHub
3 changed files with 75 additions and 1 deletions

View File

@@ -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.

View 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

View File

@@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../base
- deployment.yaml