INFORME DE ERROR: (¿creo?)
Que paso :
Ejecuté los siguientes pasos en Ubuntu 16.04:
sudo apt-get update
sudo apt-get upgrade
sudo su
kubeadm reset
kubeadm init --token [redacted] --apiserver-advertise-address=192.168.13.1 --pod-network-cidr=10.244.0.0/16
exit
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes
Al hacer esto, recibo:
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")
Intenté desinstalar kubectl
, kubeadm
y kubelet
un par de veces (incluso con --purge
) y no importa lo que haga, (kubeadm 1.7 ) no genera un admin.conf
funcione. Sin embargo, ejecuto lo siguiente:
curl --cacert /etc/kubernetes/pki/ca.crt --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt --key /etc/kubernetes/pki/apiserver-kubelet-client.key https://192.168.13.1:6443
y obten:
{
"paths": [
"/api",
"/api/v1",
"/apis",
"/apis/",
"/apis/apiextensions.k8s.io",
"/apis/apiextensions.k8s.io/v1beta1",
"/apis/apiregistration.k8s.io",
"/apis/apiregistration.k8s.io/v1beta1",
"/apis/apps",
"/apis/apps/v1beta1",
"/apis/authentication.k8s.io",
"/apis/authentication.k8s.io/v1",
"/apis/authentication.k8s.io/v1beta1",
"/apis/authorization.k8s.io",
"/apis/authorization.k8s.io/v1",
"/apis/authorization.k8s.io/v1beta1",
"/apis/autoscaling",
"/apis/autoscaling/v1",
"/apis/batch",
"/apis/batch/v1",
"/apis/certificates.k8s.io",
"/apis/certificates.k8s.io/v1beta1",
"/apis/extensions",
"/apis/extensions/v1beta1",
"/apis/networking.k8s.io",
"/apis/networking.k8s.io/v1",
"/apis/policy",
"/apis/policy/v1beta1",
"/apis/rbac.authorization.k8s.io",
"/apis/rbac.authorization.k8s.io/v1alpha1",
"/apis/rbac.authorization.k8s.io/v1beta1",
"/apis/settings.k8s.io",
"/apis/settings.k8s.io/v1alpha1",
"/apis/storage.k8s.io",
"/apis/storage.k8s.io/v1",
"/apis/storage.k8s.io/v1beta1",
"/healthz",
"/healthz/autoregister-completion",
"/healthz/ping",
"/healthz/poststarthook/apiservice-registration-controller",
"/healthz/poststarthook/apiservice-status-available-controller",
"/healthz/poststarthook/bootstrap-controller",
"/healthz/poststarthook/ca-registration",
"/healthz/poststarthook/extensions/third-party-resources",
"/healthz/poststarthook/generic-apiserver-start-informers",
"/healthz/poststarthook/kube-apiserver-autoregistration",
"/healthz/poststarthook/rbac/bootstrap-roles",
"/healthz/poststarthook/start-apiextensions-controllers",
"/healthz/poststarthook/start-apiextensions-informers",
"/healthz/poststarthook/start-kube-aggregator-informers",
"/healthz/poststarthook/start-kube-apiserver-informers",
"/logs",
"/metrics",
"/swagger-2.0.0.json",
"/swagger-2.0.0.pb-v1",
"/swagger-2.0.0.pb-v1.gz",
"/swagger.json",
"/swaggerapi",
"/ui",
"/ui/",
"/version"
]
}
Qué esperabas que sucediera :
Después de inicializar el maestro a través de kubeadm init
, esperaba poder usar kubectl
para instalar un complemento de red; ya que es x509
, no puedo hacer eso.
Medio ambiente :
kubectl version
): 1.7uname -a
): Linux radium-control 4.4.0-83-generic # 106-Ubuntu SMP Lun 26 de junio 17:54:43 UTC 2017 x86_64 x86_64 x86_64 GNU / Linux@carldanley No hay etiquetas sig sobre este tema. Agregue una etiqueta de firma por:
(1) mencionar una firma: @kubernetes/sig-<team-name>-misc
por ejemplo, @kubernetes/sig-api-machinery-*
para API Machinery
(2) especificando la etiqueta manualmente: /sig <label>
p. ej., /sig scalability
para sig / escalabilidad
_Nota: el método (1) activará una notificación al equipo. Puede encontrar la lista de equipos aquí y la lista de etiquetas aquí _
/ sig cluster-lifecycle
No estoy seguro de si esto ayuda, pero tuve lo mismo y me di cuenta de que estaba usando la guía de configuración anterior, copiando /etc/kubernetes/admin.conf
en ~/.kube/admin.conf
y configurando $KUBECONFIG=$HOME/.kube/admin.conf
. Borré la variable de entorno y kubectl
vuelve a usar ~/.kube/config
defecto.
También veo esto usando kubeadm v1.7: evita que los nodos se unan al clúster
Mismo error para mi instalación. Prueba con v1.6.5 y 1.6.7 funciona bien.
El mismo problema aqui.
.
( kubeadm init
parece estar bien)
ns2 ~ # kubeadm init
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[init] Using Kubernetes version: v1.7.3
[init] Using Authorization modes: [Node RBAC]
[preflight] Running pre-flight checks
[preflight] WARNING: docker version is greater than the most recently validated version. Docker version: 17.03.1-ce. Max validated version: 1.12
[preflight] WARNING: no supported init system detected, skipping checking for services
[preflight] WARNING: no supported init system detected, skipping checking for services
[preflight] WARNING: no supported init system detected, skipping checking for services
[preflight] WARNING: socat not found in system path
[preflight] No supported init system detected, won't ensure kubelet is running.
[certificates] Generated CA certificate and key.
[certificates] Generated API server certificate and key.
[certificates] API Server serving cert is signed for DNS names [ns2 kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 ip_of_my_server]
[certificates] Generated API server kubelet client certificate and key.
[certificates] Generated service account token signing key and public key.
[certificates] Generated front-proxy CA certificate and key.
[certificates] Generated front-proxy client certificate and key.
[certificates] Valid certificates and keys now exist in "/etc/kubernetes/pki"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[apiclient] Created API client, waiting for the control plane to become ready
[apiclient] All control plane components are healthy after 36.004283 seconds
[token] Using token: 62af23.9fba33a48799d425
[apiconfig] Created RBAC rules
[addons] Applied essential addon: kube-proxy
[addons] Applied essential addon: kube-dns
Your Kubernetes master has initialized successfully!
To start using your cluster, you need to run (as a regular user):
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
http://kubernetes.io/docs/admin/addons/
You can now join any number of machines by running the following on each node
as root:
kubeadm join --token [some string] [ip_of_my_server]:6443
( kubeadm join
parece estar bien)
h1 ~ # kubeadm join --token [some string] [ip_of_my_server]:6443 --skip-preflight-checks
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[preflight] Skipping pre-flight checks
[discovery] Trying to connect to API Server "192.168.0.254:6443"
[discovery] Created cluster-info discovery client, requesting info from "https://192.168.0.254:6443"
[discovery] Cluster info signature and contents are valid, will use API Server "https://192.168.0.254:6443"
[discovery] Successfully established connection with API Server "192.168.0.254:6443"
[bootstrap] Detected server version: v1.7.3
[bootstrap] The server supports the Certificates API (certificates.k8s.io/v1beta1)
[csr] Created API client to obtain unique certificate for this node, generating keys and certificate signing request
[csr] Received signed certificate from the API server, generating KubeConfig...
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
Node join complete:
* Certificate signing request sent to master and response
received.
* Kubelet informed of new secure connection details.
Run 'kubectl get nodes' on the master to see this machine join.
(pero kubectl get nodes
falla)
byungnam2<strong i="17">@ns2</strong> ~ $ kubectl get nodes
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")
¿tienes $KUBECONFIG
apuntando a /etc/kubernetes/kubelet.conf
?
export KUBECONFIG=/etc/kubernetes/kubelet.conf
kubectl get nodes
@liggitt Después de configurar $KUBECONFIG
en /etc/kubernetes/kubelet.conf
, ahora me da un error de tiempo de espera.
ns2 ~ # ./kubernetes/kubernetes/server/bin/kubectl get nodes
Error from server (ServerTimeout): the server cannot complete the requested operation at this time, try again later (get nodes)
Y ahora quiero saber de dónde provienen los $KUBECONFIG
porque no hay tal declaración en el manual al que me refiero.
Desde el resultado del comando de unión de nodo:
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
Encontré el mismo problema mientras jugaba con kubeadm.
Después de kubeadm init
y kubeadm reset
algunas veces, kubelet no se comunicará con un servidor porque certificate signed by unknown authority
(en los registros de kubelet). Y también bloques kubeadm init
para siempre.
Después de eliminar /run/kubernetes/
manualmente, todo vuelve. ¿Quizás hay problemas de limpieza de certificados cuando se ejecuta kubeadm reset
?
/ area kubeadm
Estoy en kubeadm 1.8 y este problema persiste.
ubuntu@ip-172-31-9-157:~$ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:46:41Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
ubuntu@ip-172-31-9-157:~$
ubuntu@ip-172-31-9-157:~$
ubuntu@ip-172-31-9-157:~$ kubectl get nodes
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")
ubuntu@ip-172-31-9-157:~$
ubuntu@ip-172-31-9-157:~$
ubuntu@ip-172-31-9-157:~$
Revisé manualmente /var/run/kubernetes
. Se limpió cuando ejecuté kubeadm reset
. No estoy seguro de cuál es el problema real.
ATENCIÓN: "Para comenzar a utilizar su clúster, debe ejecutar (como usuario habitual)"
[ root @ master1 ~] # kubectl obtener nodos
No se puede conectar al servidor: x509: certificado firmado por una autoridad desconocida (posiblemente debido a "crypto / rsa: error de verificación" al intentar verificar el certificado de autoridad candidata "kubernetes")
[ root @ master1 ~] # su - usuario_regular
[ usuario_regular @ master1 ~] $ mkdir -p $ HOME / .kube
[ usuario_regular @ master1 ~] $ sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config
[ usuario_regular @ master1 ~] $ sudo chown $ (id -u): $ (id -g) $ HOME / .kube / config
[ usuario_regular @ master1 ~] $ kubectl obtener nodos
NOMBRE ESTADO ROLES EDAD VERSIÓN
master1.virti.corp NotReady master 6m v1.8.1
master2.virti.corp NotReady
@ jeffbr13 Gracias. Funciona.
Actualice los documentos con esta solución alternativa
Si reinicia kubeadm y luego kubeadm init nuevamente, y si alguna vez ejecutó lo siguiente como root, debe ejecutarlo nuevamente (como root) para obtener la nueva configuración:
mkdir -p $ INICIO / .kube
sudo cp -i /etc/kubernetes/admin.conf $ INICIO / .kube / config
sudo chown $ (id -u): $ (id -g) $ HOME / .kube / config
Entonces aún puede ejecutar como root.
si descubre que si alguna vez va a ejecutar "sudo kubeadm reset", deberá eliminar su directorio .kube para borrar los directorios almacenados en caché.
Después de eso, puedes seguir a @petersonwsantos
oh, asegúrese de configurar KUBECONFIG con el nombre que (re) nombre su archivo de configuración, por ejemplo, $ HOME / .kube / config
tanques amigos verdaderos.
Configúrelo como las siguientes líneas, _ $ kubectl get nodes_ funciona:
_root: ~ / k8s # cat 04-config.sh
mkdir -p $ INICIO / .kube
sudo cp -i /etc/kubernetes/admin.conf $ INICIO / .kube / config
sudo chown $ (id -u): $ (id -g) $ HOME / .kube / config
sudo chmod 777 $ INICIO / .kube / config
exportar KUBECONFIG = / etc / kubernetes / kubelet.conf
exportar KUBECONFIG = / home / ubuntu / .kube / config
kubectl obtener nodos
Es probable que esto se deba a que tiene una configuración de varios maestros y ha generado el /etc/kubernetes/pki/ca.*
en cada uno de los maestros. En lugar de copiarlos del primer maestro al resto.
Encontré la solución en la documentación de kubernetes.
mientras seguía la documentación, no se olvidó de crear el directorio .kube con este comando
mkdir -p $HOME/.kube
Porque como necesita este comando, moverá el directorio .kube
mv $HOME/.kube $HOME/.kube.bak
https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/
Para otros que puedan tener este problema, puede intentar mover la carpeta /root/.kube a la ubicación de la copia de seguridad, si existe, y volver a intentarlo. Es muy posible que se use una versión raíz en caché que ya no sea válida, ya que ejecutará kubeadm como sudo.
Mi problema era que tenía certificados personalizados que había creado durante la guía de introducción de KubeEdge. No jugar con ssl y kubeedge lo hizo funcionar.
ATENCIÓN: "Para comenzar a utilizar su clúster, debe ejecutar (como usuario habitual)"
[ root @ master1 ~] # kubectl obtener nodos
No se puede conectar al servidor: x509: certificado firmado por una autoridad desconocida (posiblemente debido a "crypto / rsa: error de verificación" al intentar verificar el certificado de autoridad candidata "kubernetes")[ root @ master1 ~] # su - usuario_regular
[ usuario_regular @ master1 ~] $ mkdir -p $ HOME / .kube
[ usuario_regular @ master1 ~] $ sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config
[ usuario_regular @ master1 ~] $ sudo chown $ (id -u): $ (id -g) $ HOME / .kube / config
Esto funciona. Excepto que tuve que configurar mi KUBECONFIG nuevamente ya que eso fue cambiado
exportar KUBECONFIG = $ HOME / .kube / config
[ usuario_regular @ master1 ~] $ kubectl obtener nodos
NOMBRE ESTADO ROLES EDAD VERSIÓN
master1.virti.corp NotReady master 6m v1.8.1
master2.virti.corp NotReady 4m v1.8.1
¿tienes
$KUBECONFIG
apuntando a/etc/kubernetes/kubelet.conf
?export KUBECONFIG=/etc/kubernetes/kubelet.conf kubectl get nodes
eso funciona para mí, muchas gracias.
exportar KUBECONFIG = / etc / kubernetes / kubelet.conf
kubectl obtener nodos
es trabajo de mi parte
ATENCIÓN: "Para comenzar a utilizar su clúster, debe ejecutar (como usuario habitual)"
[ root @ master1 ~] # kubectl obtener nodos
No se puede conectar al servidor: x509: certificado firmado por una autoridad desconocida (posiblemente debido a "crypto / rsa: error de verificación" al intentar verificar el certificado de autoridad candidata "kubernetes")[ root @ master1 ~] # su - usuario_regular
[ usuario_regular @ master1 ~] $ mkdir -p $ HOME / .kube
[ usuario_regular @ master1 ~] $ sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config
[ usuario_regular @ master1 ~] $ sudo chown $ (id -u): $ (id -g) $ HOME / .kube / config[ usuario_regular @ master1 ~] $ kubectl obtener nodos
NOMBRE ESTADO ROLES EDAD VERSIÓN
master1.virti.corp NotReady master 6m v1.8.1
master2.virti.corp NotReady 4m v1.8.1
¡Esto funcionó!
Después de kubeadm init
, debe eliminar la carpeta $ HOME / .kube y crear una nueva:
mkdir -p $ INICIO / .kube
sudo cp -i /etc/kubernetes/admin.conf $ INICIO / .kube / config
sudo chown $ (id -u): $ (id -g) $ HOME / .kube / config
Comentario más útil
¿tienes
$KUBECONFIG
apuntando a/etc/kubernetes/kubelet.conf
?