add karmada_descheduler for helm

Signed-off-by: Poor12 <shentiecheng@huawei.com>
This commit is contained in:
Poor12 2022-04-13 17:10:16 +08:00
parent b88d35f64c
commit 8e20fb9f43
4 changed files with 149 additions and 1 deletions

View File

@ -33,6 +33,21 @@ $ kubectl get secret -n karmada-system karmada-kubeconfig -o jsonpath={.data.kub
> **Tip**: List all releases using `helm list`
For better scheduling effect, you can choose to install the `karmada-descheduler` component in the karmada controller plane. Link: [here](../docs/descheduler.md). The following is the specific installation guide.
Edited values.yaml for karmada-descheduler
```YAML
installMode: "component"
components: [
"descheduler"
]
```
Execute command (switch to the `root` directory of the repo, and sets the `current-context` in a kubeconfig file)
```console
$ kubectl config use-context host
$ helm install karmada-descheduler -n karmada-system ./charts
```
## Uninstalling the Chart
To uninstall/delete the `karmada` helm release in namespace `karmada-system`:
@ -79,7 +94,7 @@ $ kubectl config use-context member
$ helm install karmada-agent -n karmada-system --create-namespace ./charts
```
### 2. Install component
Edited values.yaml
Edited values.yaml for karmada-scheduler-estimator
```YAML
installMode: "component"
components: [
@ -108,6 +123,7 @@ Execute command (switch to the `root` directory of the repo, and sets the `curre
$ kubectl config use-context host
$ helm install karmada-scheduler-estimator -n karmada-system ./charts
```
## Configuration
| Name | Description | Value |
|------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|

View File

@ -118,6 +118,33 @@ app: {{$name}}-scheduler
{{- end -}}
{{- define "karmada.descheduler.labels" -}}
{{ $name := include "karmada.name" . }}
{{- if .Values.descheduler.labels -}}
{{- range $key, $value := .Values.descheduler.labels}}
{{ $key }}: {{ $value }}
{{- end -}}
{{- else -}}
app: {{$name}}
{{- end -}}
{{- end -}}
{{- define "karmada.descheduler.podLabels" -}}
{{ $name := include "karmada.name" .}}
{{- if .Values.descheduler.podLabels }}
{{- range $key, $value := .Values.descheduler.podLabels}}
{{ $key }}: {{ $value }}
{{- end}}
{{- end }}
{{- end -}}
{{- define "karmada.descheduler.kubeconfig.volume" -}}
- name: kubeconfig-secret
secret:
secretName: karmada-kubeconfig
{{- end -}}
{{- define "karmada.webhook.labels" -}}
{{ $name := include "karmada.name" .}}
{{- if .Values.webhook.labels }}

View File

@ -0,0 +1,60 @@
{{- $name := include "karmada.name" . -}}
{{- if and (eq .Values.installMode "component") (has "descheduler" .Values.components) }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ $name }}
namespace: {{ include "karmada.namespace" . }}
labels:
{{- include "karmada.descheduler.labels" . | nindent 4}}
spec:
replicas: {{ .Values.descheduler.replicaCount }}
selector:
matchLabels:
{{- include "karmada.descheduler.labels" . | nindent 6}}
{{- with .Values.descheduler.strategy }}
strategy:
{{- toYaml . | nindent 8 }}
{{- end }}
template:
metadata:
{{- with .Values.descheduler.podAnnotations}}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "karmada.descheduler.labels" . | nindent 8}}
{{- include "karmada.descheduler.podLabels" . | nindent 8}}
spec:
{{- with .Values.descheduler.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.descheduler.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.descheduler.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.descheduler.tolerations}}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: {{ $name }}
image: {{ .Values.descheduler.image.repository}}:{{ .Values.descheduler.image.tag | default "latest" }}
imagePullPolicy: {{ .Values.descheduler.image.pullPolicy }}
command:
- /bin/karmada-descheduler
- --kubeconfig=/etc/kubeconfig
- --bind-address=0.0.0.0
- --v=4
volumeMounts:
{{- include "karmada.kubeconfig.volumeMount" . | nindent 12 }}
resources:
{{- toYaml .Values.descheduler.resources | nindent 12 }}
volumes:
{{- include "karmada.descheduler.kubeconfig.volume" . | nindent 8}}
{{- end }}

View File

@ -15,6 +15,7 @@ clusterDomain: "cluster.local"
components: []
# components: [
# "schedulerEstimator"
# "descheduler"
# ]
## pre-install job config
@ -547,3 +548,47 @@ schedulerEstimator:
rollingUpdate:
maxUnavailable: 0
maxSurge: 50%
## descheduler config
descheduler:
## @param descheduler.labels
labels:
app: karmada-descheduler
## @param descheduler.replicaCount target replicas
replicaCount: 2
## @param descheduler.podAnnotations
podAnnotations: { }
## @param descheduler.podLabels
podLabels: { }
## @param descheduler.imagePullSecrets
imagePullSecrets: [ ]
image:
## @param descheduler.image.repository image of the descheduler
repository: swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-descheduler
## @param descheduler.image.pullPolicy pull policy of image
pullPolicy: IfNotPresent
## @param descheduler.image.tag overrides the image tag whose default is the latest
tag: latest
## @param descheduler.resources
resources: { }
# If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
## @param descheduler.nodeSelector
nodeSelector: { }
## @param descheduler.affinity
affinity: { }
## @param descheduler.tolerations
tolerations: [ ]
# - key: node-role.kubernetes.io/master
# operator: Exists
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0
maxSurge: 50%