Jak zrobić własny Scheduler w Kubernetes?¶
Można uruchomić własny Scheduler poprzez uruchomienie procesu Schedulera (np. z użyciem systemd). Należy także przypiąć oddzielny plik konfiguracyjny.
Lepiej jednak będzie zrobić to z użyciem komponentu Pod lub Deployment.
Definicja Poda własnego Schedulera¶
apiVersion: v1
kind: Pod
metadata:
name: <pod_name>
spec:
containers:
- command:
- kube-scheduler
- --address=127.0.0.1
- --kubeconfig=/etc/kubernetes/scheduler.conf
- --config=/etc/kubernetes/<scheduler_config>.yaml
image: k8s.gcr.io/kube-scheduler-amd64:v1.XX.X
name: kube-scheduler
i konfiguracja Schedulera (<scheduler_config>.yaml):
apiVersion: kubescheduler.config.k8s.io/v1
kind: KubeSchedulerConfiguration
profiles:
- schedulerName: <scheduler_name>
leaderElection:
leaderElect: true
resourceNamespace: kube-system
resourceName: lock-object-<scheduler_name>
Sekcja leaderElection jest wykorzystywana, gdy w klastrze mamy więcej niż jeden Scheduler tego samego typu (np. gdy chcemy mieć HA). Selektorem leaderElection.leaderElect oznaczamy, czy będzie wybierany jeden lider spośród wielu (true).
Użycie przez Poda (innego niż default) Schedulera¶
Definicja manifestu z innym niż default Schedulerem: