SCHEDULER - Erro no Pod do Scheduler adicional - no kind KubeSchedulerConfiguration is registered for version kubescheduler.config.k8s.io v1
- Erro no Pod do Scheduler adicional, deployado no Minikube:
fernando@debian10x64:~$ kubectl logs -n kube-system -l component=scheduler
no kind "KubeSchedulerConfiguration" is registered for version "kubescheduler.config.k8s.io/v1"
fernando@debian10x64:~$https://www.youtube.com/watch?v=bezQz-mIO7U
-
Criar o Scheduler usando a mesma Docker image utilizada pelo Scheduler que já vem com o Minikube.
-
Verificando a imagem utilizada pelo Scheduler do Minikube:
fernando@debian10x64:~$ kubectl get pod kube-scheduler-minikube -n kube-system
NAME READY STATUS RESTARTS AGE
kube-scheduler-minikube 1/1 Running 29 (33m ago) 29d
fernando@debian10x64:~$ kubectl get pod kube-scheduler-minikube -n kube-system -o yaml | grep image
image: k8s.gcr.io/kube-scheduler:v1.22.2
imagePullPolicy: IfNotPresent
image: k8s.gcr.io/kube-scheduler:v1.22.2
imageID: docker-pullable://k8s.gcr.io/kube-scheduler@sha256:c76cb73debd5e37fe7ad42cea9a67e0bfdd51dd56be7b90bdc50dd1bc03c018b
fernando@debian10x64:~$- Ajustando o campo image no Manifesto:
apiVersion: v1
kind: ServiceAccount
metadata:
name: my-scheduler
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: my-scheduler-as-kube-scheduler
subjects:
- kind: ServiceAccount
name: my-scheduler
namespace: kube-system
roleRef:
kind: ClusterRole
name: system:kube-scheduler
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: my-scheduler-as-volume-scheduler
subjects:
- kind: ServiceAccount
name: my-scheduler
namespace: kube-system
roleRef:
kind: ClusterRole
name: system:volume-scheduler
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: my-scheduler-extension-apiserver-authentication-reader
namespace: kube-system
roleRef:
kind: Role
name: extension-apiserver-authentication-reader
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: my-scheduler
namespace: kube-system
---
apiVersion: v1
kind: ConfigMap
metadata:
name: my-scheduler-config
namespace: kube-system
data:
my-scheduler-config.yaml: |
apiVersion: kubescheduler.config.k8s.io/v1beta2
kind: KubeSchedulerConfiguration
profiles:
- schedulerName: my-scheduler
leaderElection:
leaderElect: false
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
component: scheduler
tier: control-plane
name: my-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: my-scheduler
containers:
- command:
- /usr/local/bin/kube-scheduler
- --config=/etc/kubernetes/my-scheduler/my-scheduler-config.yaml
image: k8s.gcr.io/kube-scheduler:v1.22.2
# livenessProbe:
# httpGet:
# path: /healthz
# port: 10259
# scheme: HTTPS
# initialDelaySeconds: 15
name: kube-second-scheduler
# readinessProbe:
# httpGet:
# path: /healthz
# port: 10259
# scheme: HTTPS
resources:
requests:
cpu: '0.1'
securityContext:
privileged: false
volumeMounts:
- name: config-volume
mountPath: /etc/kubernetes/my-scheduler
hostNetwork: false
hostPID: false
volumes:
- name: config-volume
configMap:
name: my-scheduler-config
-
Aplicando nova versão, com imagem alterada: kubectl apply -f /home/fernando/cursos/cka-certified-kubernetes-administrator/Secao3-Scheduling/76-deploy-my-scheduler_v3.yaml
-
Validando:
fernando@debian10x64:~$ kubectl get pods -n kube-system -l component=scheduler
NAME READY STATUS RESTARTS AGE
my-scheduler-6c595b886d-87dms 1/1 Running 0 4m59s
fernando@debian10x64:~$