kubeadm no crea controlador-manager.conf cuando usa CA externa

kubeadm no crea controlador-manager.conf cuando usa CA externa

Estoy intentando inicializar un clúster de Kubernetes usando kubeadm, desafortunadamente esto no funciona como se esperaba. Este es el archivo de configuración de kubeadm:

apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: "v1.19.16"
networking:
  podSubnet: "10.230.0.0/16"
  dnsDomain: "company.internal"
etcd:
  external:
    endpoints:
      - https://kube-etcd-1:2379
      - https://kube-etcd-2:2379
      - https://kube-etcd-3:2379

Lamentablemente sigo recibiendo este error al intentar inicializarlo usando kubeadm init --config /root/.config/new-config.yaml:

el archivo controlador-manager.conf no existe o no es válido: stat /etc/kubernetes/controller-manager.conf: no existe tal archivo o directorio

kubeadm identifica automáticamente el hecho de que los certificados ya se generaron y se pueden encontrar en /etc/kubernetes/pki, y solo en este contexto aparece este error. Si elimino los certificados, generará todo por sí solo, incluido controller-manager.conf. ¿Alguna idea sobre cómo puedo resolver este problema?

Usar --v=5 no ofrece ninguna información más que básicamente eso, que no puede encontrar controll-manager.conf:

kube-controlplane-1:/etc/kubernetes/pki# kubeadm init --config /root/.config/new-config.yaml --v=6
I1221 00:15:05.160594    1964 initconfiguration.go:200] loading configuration from "/root/.config/new-config.yaml"
I1221 00:15:05.164578    1964 initconfiguration.go:103] detected and using CRI socket: /run/containerd/containerd.sock
I1221 00:15:05.165098    1964 interface.go:400] Looking for default routes with IPv4 addresses
I1221 00:15:05.165142    1964 interface.go:405] Default route transits interface "ens192"
I1221 00:15:05.165518    1964 interface.go:208] Interface ens192 is up
I1221 00:15:05.165730    1964 interface.go:256] Interface "ens192" has 2 addresses :[10.88.88.225/24 fe80::250:56ff:febe:79f5/64].
I1221 00:15:05.165856    1964 interface.go:223] Checking addr  10.88.88.225/24.
I1221 00:15:05.165901    1964 interface.go:230] IP found 10.88.88.225
I1221 00:15:05.165937    1964 interface.go:262] Found valid IPv4 address 10.88.88.225 for interface "ens192".
I1221 00:15:05.165969    1964 interface.go:411] Found active IP 10.88.88.225
W1221 00:15:05.180639    1964 configset.go:348] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
stat /etc/kubernetes/controller-manager.conf: no such file or directory
the controller-manager.conf file does not exists or it is not valid
k8s.io/kubernetes/cmd/kubeadm/app/phases/kubeconfig.ValidateKubeconfigsForExternalCA
    /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/phases/kubeconfig/kubeconfig.go:372
k8s.io/kubernetes/cmd/kubeadm/app/cmd.newInitData
    /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go:386
k8s.io/kubernetes/cmd/kubeadm/app/cmd.NewCmdInit.func3
    /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go:193
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).InitData
    /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:183
k8s.io/kubernetes/cmd/kubeadm/app/cmd.NewCmdInit.func1
    /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go:141
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).execute
    /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:842
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).ExecuteC
    /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:950
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).Execute
    /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:887
k8s.io/kubernetes/cmd/kubeadm/app.Run
    /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/kubeadm.go:50
main.main
    _output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/kubeadm.go:25
runtime.main
    /usr/local/go/src/runtime/proc.go:204
runtime.goexit
    /usr/local/go/src/runtime/asm_amd64.s:1374

¡Cualquier idea sobre cómo depurar esto es bienvenida!

¡Gracias!

Edición posterior: versión de kubeadm: 1.19.16

Respuesta1

Bueno, sin la versión de kubeadm nos queda adivinar, pero la idea general es queen modo CA externo(en el que te encuentras debido ael ca.crt existe pero la clave no)ese métodoespera que esté implementando en un modo "ya configurado" y, por lo tanto, ambos controller-manager.confy scheduler.confya deberían existir

La versión corta sería para garantizar que comprende lo que sucede con el contenido del /etc/kubernetesdirectorio y la próxima vez publicar las versiones relevantes de lo que está utilizando.

información relacionada