## Deploy the customized scheduler Run: ```bash ./create_scheduler ``` Create a yaml file: ```yaml apiVersion: v1 kind: ServiceAccount metadata: name: evolve-scheduler namespace: kube-system --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: evolve-scheduler-as-kube-scheduler subjects: - kind: ServiceAccount name: evolve-scheduler namespace: kube-system roleRef: kind: ClusterRole name: system:kube-scheduler apiGroup: rbac.authorization.k8s.io --- apiVersion: apps/v1 kind: Deployment metadata: name: evolve-scheduler labels: component: scheduler tier: control-plane name: evolve-scheduler namespace: kube-system spec: selector: matchLabels: component: scheduler tier: control-plane replicas: 1 template: metadata: labels: component: scheduler tier: control-plane version: second spec: serviceAccountName: evolve-scheduler containers: - command: - kube-scheduler - --authentication-kubeconfig=/etc/kubernetes/scheduler.conf - --authorization-kubeconfig=/etc/kubernetes/scheduler.conf - --bind-address=0.0.0.0 - --kubeconfig=/etc/kubernetes/scheduler.conf - --leader-elect=false - --scheduler-name=evolve-scheduler # - --config=/etc/kubernetes/config/kube-scheduler-conf.yaml image: docker.io/iwita/scheduler:latest imagePullPolicy: Always livenessProbe: httpGet: path: /healthz port: 10251 initialDelaySeconds: 15 name: evolve-scheduler readinessProbe: httpGet: path: /healthz port: 10251 resources: requests: cpu: '0.1' securityContext: privileged: false volumeMounts: - mountPath: /etc/kubernetes/ name: kubeconfig readOnly: true env: - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName nodeSelector: kubernetes.io/hostname: kube-00 hostNetwork: false hostPID: false volumes: - hostPath: path: /etc/kubernetes/ name: kubeconfig ``` Update ```bash ./update_scheduler.sh custom-scheduler.yaml ``` Verify ```bash kubectl get pods -n kube-system ``` Finally add the following lines - Open the config file for the cluster role `kubectl edit clusterrole system:kube-scheduler` - Append the following lines in the end ```yaml - apiGroups: - storage.k8s.io resources: - storageclasses verbs: - watch - list - get ```