He estado teniendo el problema al implementar mojaloop .kubernetes responde con un registro de errores como
Verifiqué mi versión de Kubernetes y 1.16 es la versión, entonces, ¿cómo puedo solucionar este tipo de problema con la versión API? Después de investigar, descubrí que Kubernetes no es compatible con apps / v1beta2, apps / v1beta1, ¿cómo puedo hacer que Kubernetes funcione? uso la versión actualmente no desaprobada o la versión compatible Soy nuevo en Kubernetes y cualquier persona que pueda apoyarme estoy feliz
Error: error de validación: [no se puede reconocer "": no hay coincidencias para el tipo "Implementación" en la versión "apps / v1beta2", no se puede reconocer "": no hay coincidencias para el tipo "Implementación" en la versión "extensiones / v1beta1", no se puede reconocer "": no hay coincidencias para el tipo "StatefulSet" en la versión "apps / v1beta2", no se puede reconocer "": no hay coincidencias para el tipo "StatefulSet" en la versión "apps / v1beta1"]
fuente
Respuestas:
En Kubernetes 1.16
api
se han cambiado algunos s.Puede verificar qué apis admiten el objeto Kubernetes actual usando
Esto significa que solo apiVersion with
apps
es correcto para implementaciones (extensions
no es compatibleDeployment
). La misma situación con StatefulSet.Solo necesita cambiar la implementación de implementación y StatefuSet a
apiVersion: apps/v1
.Si esto no ayuda, agregue su YAML a la pregunta.
EDITAR Como el problema es causado por las plantillas HELM incluidas las apiVersiones antiguas en las implementaciones que no son compatibles con la versión 1.16, hay 2 posibles soluciones:
1.
git clone
repositorio completo y reemplazar apiVersionapps/v1
en todas las plantillas / despliegue.yaml usando el script2. Use la versión anterior de Kubernetes (1.15) cuando el validador acepte
extensions
comoapiVersion
paraDeployent
yStatefulSet
.fuente
extensions/v1beta1
. Como una de las soluciones posibles esgit clone
reposicionar todo y reemplazar apiVersionapps/v1
en todas las plantillas / desplieguefind . -name 'deployment.yaml' | xargs -n 1 perl -pi -e 's/(apps\/v1beta2)|(extensions\/v1beta1)/apps\/v1/g'.
.Minikube
oKubeadm
?Puede cambiar manualmente como alternativa. Obtener el gráfico del timón:
Acceda a la carpeta del gráfico:
Cambiar versión de API:
Añadir
spec.selector.matchLabels
:Finalmente instale su gráfico alterado:
¡Disfrutar!
fuente
Esto me molestó porque estoy probando muchos paquetes de timón, así que escribí un script rápido, que podría modificarse para ordenar su flujo de trabajo, tal vez vea a continuación
Nuevo flujo de trabajo Primero busque el gráfico como tgz en su directorio de trabajo
luego, en su trabajo, ejecute directamente el script bash a continuación, que denominé helmk
Contenido de helmk: necesita editar su nombre de clúster kubeconfig para que funcione
Es un truco un poco peligroso, ya que cambio manualmente a su nuevo contexto de espacio de nombres deseado y luego lo vuelvo a usar, solo para ser utilizado por desarrolladores de un solo usuario o comentarlo.
Recibirá una advertencia sobre el uso de la función de conversión de kubectl como esta
Si necesita editar el YAML para personalizarlo, simplemente reemplace uno de los archivos / dev / stdin a intermedios, pero probablemente sea mejor hacerlo usando "crear" con una configuración de guardar como lo he hecho y luego simplemente "aplicar" sus cambios lo que significa que también se grabarán en kubernetes. Buena suerte
fuente
Para simplificarlo, no obliga a la instalación actual a usar una versión desactualizada de la API, sino que simplemente arregla la versión en sus archivos de configuración si desea verificar qué versión admite kube actual, simplemente ejecute:
root @ ubn64: ~ # kubectl versiones api | grep -i apps
aplicaciones / v1
root @ ubn64: ~ #
fuente