Kubeadm: [ADVERTENCIA FileExisting-crictl]: crictl no encontrado en la ruta del sistema

Creado en 25 dic. 2017  ·  22Comentarios  ·  Fuente: kubernetes/kubeadm

versión de kube: 1.9.0

¿Cómo resolver esta verificación previa al vuelo, qué significa esta advertencia?

triaged

Comentario más útil

Si kubeadm quiere esta herramienta cli, debe instalarla si no está presente en lugar de advertir. ¡Sospecho que una minoría muy escasa de usuarios tendrá crictl preinstalado!

Todos 22 comentarios

Es solo una advertencia, no un error. Debería poder proceder bien sin él.
Si desea deshacerse de la advertencia, simplemente instale https://github.com/kubernetes-incubator/cri-tools/tree/master/cmd/crictl

¡Gracias tenga un buen día!

@luxas ¡Muchas gracias!

Lo instalé, tanto a través del método "ir a buscar" como colocándolo directamente en mi RUTA. La advertencia sigue llegando. ¿Hay alguna razón por la que no lo encontraría?

Agregaré una miga de pan a la advertencia.

go get github.com/kubernetes-incubator/cri-tools/cmd/crictl resuelve

@chuckha

Si kubeadm quiere esta herramienta cli, debe instalarla si no está presente en lugar de advertir. ¡Sospecho que una minoría muy escasa de usuarios tendrá crictl preinstalado!

¿Enviamos crictl en los paquetes oficiales deb/rpm?

@errordeveloper no, pero podríamos.

¿Por qué no se menciona nada sobre esto en https://kubernetes.io/docs/setup/independent/install-kubeadm? ?

Debería incluir algo en la línea de lo que tenía que hacer:
Instale esta cosa go para que pueda construir esta otra cosa que necesita kubeadm:

ñam instalar ir

Actualícelo porque nunca nada funciona sin requerir más búsqueda en Google, por lo que, por supuesto, la versión instalada es demasiado antigua:

rpm --importar https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO
curl -s https://mirror.go-repo.io/centos/go-repo.repo | camiseta /etc/yum.repos.d/go-repo.repo
vi /etc/yum.repos.d/go-repo.repo

Reemplace "$releasever" con "7" y "$basearch" con "x86_64", porque, claro, esos vars no van a existir.

yum actualización vamos

Construye la cosa:

ve a github.com/kubernetes-incubator/cri-tools/cmd/crictl

Ahora intente kubeadm init y solucione los otros errores no documentados.

del mismo modo en Ubuntu 16.4... la útil sugerencia de usar "ir a buscar..." estaba ahí, pero eso requería un

sudo apt-get install golang-go

luego ejecuta el comando go-get, y luego se produce un error porque GOPATH no está configurado, lo cual arreglé, pero luego se quejó porque usé una ruta relativa, que arreglé, pero luego se quejó porque

contexto del paquete: ruta de importación no reconocida "contexto" (la ruta de importación no comienza con el nombre de host)

lo que resulta es que la última versión de golang que puede instalar usando apt-get es 1.6, y la corrección de contexto está en 1.7 y superior... lo que requiere una purga completa y una reinstalación siguiendo las sencillas instrucciones aquí . lo cual es bueno a pesar de que se equivocaron en la configuración de la variable de entorno... (suspiro)... entonces me doy cuenta de que 1.7 es realmente bastante antiguo, así que vuelvo a las instrucciones oficiales aquí ... aunque todavía me alegro de tener el wget instrucciones para descargar el tarball desde la primera ubicación útil... que modifiqué a esta

wget https://storage.googleapis.com/golang/go1.10.1.linux-amd64.tar.gz

en caso de que alguien más tropiece con esto...

Sé que esto suena como si me estuviera quejando (porque lo estoy porque estoy un poco molesto)... pero pensé que valía la pena señalar que no es tan simple como agregar una instrucción para ejecutar

ve a github.com/kubernetes-incubator/cri-tools/cmd/crictl

y creo que resolverá el problema fácilmente... este tipo de cosas probablemente no deberían enviarse a los usuarios finales.

Proporcione lo que encontré con esta advertencia:

Versión de kubeadm: &version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.2", GitCommit:"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState:"clean", BuildDate:"2018-04-27T09:10: 24Z", GoVersion:"go1.9.3", Compilador:"gc", Plataforma:"linux/amd64"}

  1. --ignore-preflight-errors no puede mitigar esta advertencia, probé varios formatos:
    --ignore-preflight-errors="cri" o --ignore-preflight-errors=cri o
    --ignore-preflight-errors "cri" o --ignore-preflight-errors cri

  2. instalar el paquete tampoco puede mitigar esta advertencia

    ve a github.com/kubernetes-incubator/cri-tools/cmd/crictl

    instalará el binario en $HOME/go/bin, y lo agregué a $PATH
    e instalé el binario tanto como usuario normal como root (por lo que aparece en ambos directorios de inicio).
    aún kubeadm informa de advertencia y no puede encontrarlo.

@heyi-arm --ignore-preflight-errors convertirá el error en advertencia, pero se seguirán mostrando advertencias.

Solo intervino aquí y me encontré con esto cuando intentaba aprovisionar una configuración multimaestro usando Ansible.

TASK [ansible-k8s : join_cluster | Joining Additional Nodes To K8s Cluster] ******************************************************************************************************
fatal: [node1]: FAILED! => {"changed": true, "cmd": ["kubeadm", "join", "--token", "8gsm4e.uv0bve5j7ec2i0qk", "--discovery-token-unsafe-skip-ca-verification", "--ignore-preflight-errors", "192.168.250.10:6443"], "delta": "0:00:00.176311", "end": "2018-05-10 19:57:28.117885", "msg": "non-zero return code", "rc": 2, "start": "2018-05-10 19:57:27.941574", "stderr": "\t[WARNING FileExisting-crictl]: crictl not found in system path\nSuggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl\n[preflight] Some fatal errors occurred:\n\t[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists\n[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`", "stderr_lines": ["\t[WARNING FileExisting-crictl]: crictl not found in system path", "Suggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl", "[preflight] Some fatal errors occurred:", "\t[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists", "[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`"], "stdout": "[preflight] Running pre-flight checks.", "stdout_lines": ["[preflight] Running pre-flight checks."]}
fatal: [node2]: FAILED! => {"changed": true, "cmd": ["kubeadm", "join", "--token", "8gsm4e.uv0bve5j7ec2i0qk", "--discovery-token-unsafe-skip-ca-verification", "--ignore-preflight-errors", "192.168.250.10:6443"], "delta": "0:00:00.183138", "end": "2018-05-10 19:57:28.171885", "msg": "non-zero return code", "rc": 2, "start": "2018-05-10 19:57:27.988747", "stderr": "\t[WARNING FileExisting-crictl]: crictl not found in system path\nSuggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl\n[preflight] Some fatal errors occurred:\n\t[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists\n[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`", "stderr_lines": ["\t[WARNING FileExisting-crictl]: crictl not found in system path", "Suggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl", "[preflight] Some fatal errors occurred:", "\t[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists", "[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`"], "stdout": "[preflight] Running pre-flight checks.", "stdout_lines": ["[preflight] Running pre-flight checks."]}

@mrlesmithjr tiene otro problema, no relacionado: [ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists . Consulte su libro de jugadas de ansible y abra un nuevo problema con los detalles, si es necesario.

Ahí es donde copié del maestro la carpeta PKI. Todavía estoy tratando de ordenar todo. Pero definitivamente lo haré.

Esta es una gran retroalimentación. Lo mencionaré en sig-cluster-lifecycle. Esto debería ser absolutamente ignorable como mínimo.

Y debería distribuirse .deb si kubeadm depende de ello. Si no es así, es solo una utilidad opcional, que aún debe empaquetarse.

Si esto va a ser necesario para la instalación, debe enviarse con los paquetes. Las herramientas de compilación de Go no pertenecen a los hosts de contenedores de producción.

En mi opinión, no debería ser necesario a menos que el usuario quiera usar CRI en lugar de Docker. Se puede hacer explícitamente introduciendo una nueva opción de línea de comando (--use-cri ?) o implícitamente como en este PR cuando el usuario especifica el zócalo CRI usando la opción --cri-socket.

@luxas para mí esto se presenta como un error. ¿Es esto un error? Si es así, entonces debería arreglarse rápidamente, porque como se ilustra arriba, instalar crictl no es tan fácil en algunas configuraciones (y requiere herramientas de compilación en el host de producción).

Creo que esto debería ser arreglado por este PR

¿Fue útil esta página
0 / 5 - 0 calificaciones