Skip to content

Instantly share code, notes, and snippets.

  • Select an option

  • Save fernandomullerjr/1c5591fa7aaaabf13dd05cdb6b7d7fe5 to your computer and use it in GitHub Desktop.

Select an option

Save fernandomullerjr/1c5591fa7aaaabf13dd05cdb6b7d7fe5 to your computer and use it in GitHub Desktop.
Resolver erro no scheduler adicional no Minikube - Kubernetes - Pod com erro no kind "KubeSchedulerConfiguration" is registered for version "kubescheduler.config.k8s.io/v1"

SCHEDULER - Erro no Pod do Scheduler adicional - no kind KubeSchedulerConfiguration is registered for version kubescheduler.config.k8s.io v1


ERRO

  • 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:~$

SOLUÇÃO

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:~$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment