2016-03-30 2 views
1

J'ai essayé de créer un contrôleur de réplication via un fichier JSON et je l'ai mentionné restartPolicy comme « Jamais » pour pod restartPolicy.Création Kubernetes ReplicationController échoue en raison d'restartPolicy

mais je reçois une erreur,

Erreur: Le ReplicationController "ngnix-rc" est invalide. * spec.template.spec.restartPolicy: valeur non prise en charge: « Jamais »: valeurs prises en charge: Toujours

Y at-il changement v1.2 qu'il ne supporte que « toujours » comme une option pour restartPolicy ? Je suis confus.

J'ai essayé un autre scénario où j'ai fait face à un comportement étrange. Je spécifié la politique de redémarrage comme « jamais » et j'ai eu l'erreur,

Erreur: Le ReplicationController « ngnix-rc » est invalide. * spec.template.spec.restartPolicy: valeur non prise en charge: "jamais": valeurs prises en charge: Toujours, onFailure, jamais * spec.template.spec.restartPolicy: valeur non prise en charge: "jamais": valeurs pris en charge: Toujours

Comme trouvé, il existe deux erreurs dans ce scénario. Je ne sais pas quel est le problème exact.

Le fichier JSON que je l'ai utilisé pour créer RC est donnée ci-dessous

{ 
    "kind":"ReplicationController", 
    "apiVersion":"v1", 
    "metadata":{ 
    "name":"ngnix-rc", 
    "labels":{ 
     "app":"webserver" 
    } 
    }, 
    "spec":{ 
    "replicas":1, 
    "selector":{ 
     "app":"webserver1" 
    }, 
    "template":{ 
     "metadata":{ 
     "name":"ngnix-pod", 
     "labels":{ 
      "app":"webserver1" 
     } 
     }, 
     "spec":{ 
     "containers":[ 
      { 
      "image":"ngnix", 
      "name":"nginx" 
      } 
     ], 
     "restartPolicy":"Never" 
     } 
    } 
    } 
} 
+1

Je trouve que le ** ReplicationController ** permettra seulement ** restartPolicy ** qui est égal à ** « Toujours » **. Est-ce un valide? Sinon, je dois utiliser Job pour l'option ** OnFailure ** ou ** Jamais **. Mais j'ai besoin de déployer un serveur web que je ne peux pas déployer comme ** Job ** et il devrait être déployé comme ** RC **. Dans ce scénario lors d'un déploiement en tant que ** RC **, le conteneur redémarre fréquemment, ce qui rend le serveur Web inutile. Quelle est la solution pour cela? –

Répondre

4

Pour développer la réponse de ZHB: alors que différentes stratégies de redémarrage sens pour dosettes ou même pour des tâches exécutées de bout en bout, l'unique but d'un contrôleur de réplication est de garder N instances d'un pod en cours d'exécution. Par conséquent, dire que vous ne voulez pas que les pods soient redémarrés ne correspond pas parfaitement au concept.

La partie de la documentation qui explique cela est: http://kubernetes.io/docs/user-guide/pod-states/#restartpolicy

+1

Je l'ai eu. Mais le problème ici est que le pod est redémarré fréquemment. J'ai utilisé la même image de conteneur précédemment avec v1.1, je n'ai pas fait face à ce problème. Maintenant, j'utilise la même image avec v1.2, et le conteneur redémarre fréquemment. Je vais déboguer et essayer de trouver le problème avec le serveur web s'il en existe. –

+1

Si le pod redémarre, il doit y avoir quelque chose qui ne va pas, ce qui empêche les redémarrages de se corriger. Je vous recommande de regarder le guide de dépannage: http: // kubernetes.io/docs/user-guide/débogage-pods-et-réplication-contrôleurs/ –

+1

J'ai essayé de déboguer le pod et j'ai constaté que le démon docker qui s'exécute dans un nœud redémarre lui-même ce qui entraîne le redémarrage des conteneurs. –