Kuby-core: Krane::FatalDeploymentError : Échec de la validation du modèle

Créé le 11 août 2020  ·  13Commentaires  ·  Source: getkuby/kuby-core

Lors du déploiement, Krane explose. Ceci est un déploiement avec v. 0.7.0

KUBY_DOCKER_TAG=latest bundle exec rake kuby:deploy --trace J'ai défini la balise sur latest pour contourner l'autre problème :)

Voici ce que j'obtiens :

* Appelez kuby:deploy (first_time)* Exécutez kuby:deploy
Validation de la ressource globale, espace de noms 'my-app-production'
espace de noms/my-app-production configuré (essai à blanc)
Déploiement de l'espace de noms 'my-app-production'
espace de noms/my-app-production inchangé
[INFO][2020-08-11 09:15:10 +0200]
[INFO][2020-08-11 09:15:10 +0200] --------------------------------- ---Phase 1 : Initialisation du déploiement-----------------------------------------
[INFO][2020-08-11 09:15:11 +0200] Tous les paramètres et fichiers requis sont présents
[INFO][2020-08-11 09:15:11 +0200] Découvrir les ressources :
[INFO][2020-08-11 09:15:13 +0200] - Déploiement/mon-app-web
[INFO][2020-08-11 09:15:13 +0200] - Secret/mon-app-web-mysql-secret
[INFO][2020-08-11 09:15:13 +0200] - ServiceAccount/my-app-sa
[INFO][2020-08-11 09:15:13 +0200] - ConfigMap/my-app-config
[INFO][2020-08-11 09:15:13 +0200] - Secret/my-app-registry-secret
[INFO][2020-08-11 09:15:13 +0200] - Ingress/my-app-ingress
[INFO][2020-08-11 09:15:13 +0200] - Secret/my-app-secrets
[INFO][2020-08-11 09:15:13 +0200] - ClusterIssuer/letsencrypt-production
[INFO][2020-08-11 09:15:13 +0200] - MySQL/my-app-web-mysql
[INFO][2020-08-11 09:15:13 +0200] - Secret/mon-app-web-mysql-secret
[INFO][2020-08-11 09:15:13 +0200] - MySQL/my-app-web-mysql
[INFO][2020-08-11 09:15:13 +0200] - Service/mon-app-svc
[INFO][2020-08-11 09:15:15 +0200]
[INFO][2020-08-11 09:15:15 +0200] --------------------------------- ---------Résultat : ECHEC------------------------------------------- -----
[FATAL][2020-08-11 09:15:16 +0200] La validation du modèle a échoué
[FATAL][2020-08-11 09:15:16 +0200]
[FATAL][2020-08-11 09:15:16 +0200] Modèle non valide : ClusterIssuer-letsencrypt-production20200811-60914-uybj4y.yml
[FATAL][2020-08-11 09:15:16 +0200] > Message d'erreur :
[FATAL][2020-08-11 09:15:16 +0200] W0811 09:15:13.103161 60953 helpers.go:535] --dry-run est obsolète et peut être remplacé par --dry-run=client.
[FATAL][2020-08-11 09:15:16 +0200] erreur : impossible de reconnaître "/var/folders/9l/3dw7rcl51pq4jfs0kjg99f7c0000gn/T/ClusterIssuer-letsencrypt-production20200811-60914-uybj4y.yml" : aucune correspondance pour genre "ClusterIssuer" en version "cert-manager.io/v1alpha2"
[FATAL][2020-08-11 09:15:16 +0200] > Contenu du modèle :
[FATAL][2020-08-11 09:15:16 +0200] ---
[FATAL][2020-08-11 09:15:16 +0200] apiVersion : cert-manager.io/v1alpha2
[FATAL][2020-08-11 09:15:16 +0200] type : ClusterIssuer
Métadonnées [FATAL][2020-08-11 09:15:16 +0200] :
[FATAL][2020-08-11 09:15:16 +0200] nom : Letsencrypt-production
[FATAL][2020-08-11 09:15:16 +0200] espace de noms : cert-manager
Spécification [FATAL][2020-08-11 09:15:16 +0200] :
[FATAL][2020-08-11 09:15:16 +0200] abréviation :
[FATAL][2020-08-11 09:15:16 +0200] serveur : https://acme-v02.api.letsencrypt.org/directory
[FATAL][2020-08-11 09:15:16 +0200] e-mail : [email protected]
[FATAL][2020-08-11 09:15:16 +0200] privateKeySecretRef :
[FATAL][2020-08-11 09:15:16 +0200] nom : Letsencrypt-production
[FATAL][2020-08-11 09:15:16 +0200] solveurs :
[FATAL][2020-08-11 09:15:16 +0200] - http01 :
[FATAL][2020-08-11 09:15:16 +0200] entrée :
[FATAL][2020-08-11 09:15:16 +0200] classe : nginx
[FATAL][2020-08-11 09:15:16 +0200]
[FATAL][2020-08-11 09:15:16 +0200]
[FATAL][2020-08-11 09:15:16 +0200] Modèle non valide : MySQL-my-app-web-mysql20200811-60914-1rs7vqx.yml
[FATAL][2020-08-11 09:15:16 +0200] > Message d'erreur :
[FATAL][2020-08-11 09:15:16 +0200] W0811 09:15:13.122295 60956 helpers.go:535] --dry-run est obsolète et peut être remplacé par --dry-run=client.
[FATAL][2020-08-11 09:15:16 +0200] erreur : impossible de reconnaître "/var/folders/9l/3dw7rcl51pq4jfs0kjg99f7c0000gn/T/MySQL-my-app-web-mysql20200811-60914-1rs7vqx.yml" : aucune correspondance pour le genre "MySQL" dans la version "kubedb.com/v1alpha1"
[FATAL][2020-08-11 09:15:16 +0200] > Contenu du modèle :
[FATAL][2020-08-11 09:15:16 +0200] ---
[FATAL][2020-08-11 09:15:16 +0200] type : MySQL
[FATAL][2020-08-11 09:15:16 +0200] apiVersion : kubedb.com/v1alpha1
Spécification [FATAL][2020-08-11 09:15:16 +0200] :
[FATAL][2020-08-11 09:15:16 +0200] politique de terminaison : Ne pas terminer
[FATAL][2020-08-11 09:15:16 +0200] Type de stockage : Durable
[FATAL][2020-08-11 09:15:16 +0200] version : 5.7-v2
[FATAL][2020-08-11 09:15:16 +0200] stockage :
[FATAL][2020-08-11 09:15:16 +0200] Modes d'accès :
[FATAL][2020-08-11 09:15:16 +0200] - ReadWriteOnce
[FATAL][2020-08-11 09:15:16 +0200] storageClassName : do-block-storage
[FATAL][2020-08-11 09:15:16 +0200] ressources :
Requêtes [FATAL][2020-08-11 09:15:16 +0200] :
[FATAL][2020-08-11 09:15:16 +0200] stockage : 10 Gi
[FATAL][2020-08-11 09:15:16 +0200] secret de la base de données :
[FATAL][2020-08-11 09:15:16 +0200] secretName : my-app-web-mysql-secret
Métadonnées [FATAL][2020-08-11 09:15:16 +0200] :
[FATAL][2020-08-11 09:15:16 +0200] nom : my-app-web-mysql
[FATAL][2020-08-11 09:15:16 +0200] espace de noms : my-app-production
[FATAL][2020-08-11 09:15:16 +0200]
[FATAL][2020-08-11 09:15:16 +0200]
[FATAL][2020-08-11 09:15:16 +0200] Modèle non valide : MySQL-my-app-web-mysql20200811-60914-1na8no.yml
[FATAL][2020-08-11 09:15:16 +0200] > Message d'erreur :
[FATAL][2020-08-11 09:15:16 +0200] W0811 09:15:14.705164 60971 helpers.go:535] --dry-run est obsolète et peut être remplacé par --dry-run=client.
[FATAL][2020-08-11 09:15:16 +0200] erreur : impossible de reconnaître "/var/folders/9l/3dw7rcl51pq4jfs0kjg99f7c0000gn/T/MySQL-my-app-web-mysql20200811-60914-1na8no.yml" : aucune correspondance pour le genre "MySQL" dans la version "kubedb.com/v1alpha1"
[FATAL][2020-08-11 09:15:16 +0200] > Contenu du modèle :
[FATAL][2020-08-11 09:15:16 +0200] ---
[FATAL][2020-08-11 09:15:16 +0200] type : MySQL
[FATAL][2020-08-11 09:15:16 +0200] apiVersion : kubedb.com/v1alpha1
Spécification [FATAL][2020-08-11 09:15:16 +0200] :
[FATAL][2020-08-11 09:15:16 +0200] politique de terminaison : Ne pas terminer
[FATAL][2020-08-11 09:15:16 +0200] Type de stockage : Durable
[FATAL][2020-08-11 09:15:16 +0200] version : 5.7-v2
[FATAL][2020-08-11 09:15:16 +0200] stockage :
[FATAL][2020-08-11 09:15:16 +0200] Modes d'accès :
[FATAL][2020-08-11 09:15:16 +0200] - ReadWriteOnce
[FATAL][2020-08-11 09:15:16 +0200] storageClassName : do-block-storage
[FATAL][2020-08-11 09:15:16 +0200] ressources :
Requêtes [FATAL][2020-08-11 09:15:16 +0200] :
[FATAL][2020-08-11 09:15:16 +0200] stockage : 10 Gi
[FATAL][2020-08-11 09:15:16 +0200] secret de la base de données :
[FATAL][2020-08-11 09:15:16 +0200] secretName : my-app-web-mysql-secret
Métadonnées [FATAL][2020-08-11 09:15:16 +0200] :
[FATAL][2020-08-11 09:15:16 +0200] nom : my-app-web-mysql
[FATAL][2020-08-11 09:15:16 +0200] espace de noms : my-app-production
[FATAL][2020-08-11 09:15:16 +0200]
râteau avorté !
Krane::FatalDeploymentError : Échec de la validation du modèle

Tous les 13 commentaires

Il semble que votre cluster ne connaisse pas les objets ClusterIssuer ou MySQL . Avez-vous exécuté rake kuby:setup avant le déploiement ?

Ahhh, j'ai raté cette étape du guide ! Merci!

@traels avez-vous réussi à faire fonctionner les choses ?

Désolé, j'ai oublié de vous répondre !
J'ai réussi à exécuter kuby:setup - puis mon cluster s'est écrasé sur Digital Ocean, alors maintenant je pense que je dois créer un nouveau cluster kubernetes pour réessayer. En espérant avoir plus de temps pour jouer la semaine prochaine.

@traels oh merde, wow ! Que s'est-il passé, si je puis me permettre ?

Je ne sais pas - Kuby vient de dire que kubernetes ne répondait pas. J'ai essayé de redémarrer sur DO mais cela n'a pas aidé.

Hum ... intéressant. J'ai certainement vu des blocages lorsque j'essayais de communiquer avec des clusters DOKS. Il se répare généralement en une heure environ. Expérience assez merdique, peut-être que Linode serait mieux?

Je me suis levé tôt aujourd'hui - et maintenant mon cluster fonctionne, et le déploiement a été un succès :)
... prochain numéro, comment gérer les actifs Rails dans Docker ? tous mes atouts manquent

Hmm c'est curieux... les ressources doivent être compilées dans l'image Docker. Oh, mais je parie que rien ne les sert ! Pouvez-vous essayer de définir config.public_file_server.enabled = true dans votre production.rb ? Cela devrait arranger les choses. Je vais également signaler un bogue, car cela devrait probablement fonctionner immédiatement :)

Donc, sur kubernetes, les gens servent des actifs avec le serveur Web ruby ?

Non, mais c'est la solution la plus rapide à laquelle je pouvais penser hehe. Kuby devrait avoir une meilleure option, mais cela demandera du travail.

Je devrais développer un peu : la plupart des utilisateurs d'applications Rails, quelle que soit leur taille, ont tendance à servir des actifs statiques à partir d'un CDN. L'origine de ces actifs est généralement quelque chose comme un compartiment S3, mais pourrait bien être l'application Rails elle-même. Étant donné que 99 % du temps, le CDN servira les actifs, interroger l'application Rails pour eux au départ ne devrait pas trop affecter les performances.

A déposé un problème hier pour suivre cela : https://github.com/getkuby/kuby-core/issues/12

Kuby v0.8.0 est livré avec un serveur d'actifs entièrement fonctionnel (nginx), il ne devrait donc plus être nécessaire que l'application elle-même serve les actifs :)

Cette page vous a été utile?
0 / 5 - 0 notes