76 votes

Déploiement de VS de Replication Controller dans Kubernetes

Je voulais savoir quelle est la différence entre une réplique et d'un Contrôleur de Déploiement au sein de Kubernetes (1.2). En passant par la mise en route du document (http://kubernetes.io/docs/hellonode/) j'ai créé un déploiement, mais il n'apparaît pas sur l'INTERFACE web.

Lorsque je créer des applications à partir de l'INTERFACE web - ils sont créés comme la réplication des contrôleurs. Fonctionnellement, cependant, ils semblent très similaires (ils ont tous les deux gérer les gousses et les services).

Alors, quelle est la différence et quand dois-je utiliser?

64voto

Pixel Elephant Points 6902

Les déploiements sont un nouveau et plus haut niveau du concept que de la Réplication des Contrôleurs. Ils gérer le déploiement des Jeux de Réplicas (également un nouveau concept, mais à peu près équivalent à la Réplication des Contrôleurs), et permettent de faciliter la mise à jour d'un Jeu de Réplicas ainsi que la possibilité de revenir à un déploiement précédent.

Auparavant, cela aurait à faire avec kubectl rolling-update qui n'a pas été déclaratif et n'a pas à fournir la restauration des fonctionnalités.

Kubernetes tableau de bord n'a pas encore été mis à jour pour soutenir les Déploiements, et aujourd'hui seulement prend en charge la Réplication Contrôleurs (voir les Déploiements ne sont pas visibles dans Kubernetes tableau de bord).

EDIT: Le tableau de bord prend désormais en charge les Déploiements.

8voto

kichik Points 7249

Les déploiements sont encore en version bêta (leur API est en vertu de l' extensions/v1beta1), ce qui est probablement la raison pour laquelle ils n'apparaissent pas dans l'INTERFACE utilisateur. Ils automatiser les transitions de l'état sur le haut de juste garder les gousses vivant. À partir de la page du lien:

Un Déploiement offre déclarative des mises à jour pour les Gousses et les Jeux de Réplicas (la prochaine génération de la Réplication du Contrôleur). Vous avez seulement besoin de décrire l'état souhaité dans un Déploiement de l'objet, et le Déploiement contrôleur de changer l'état actuel à l'état désiré à un le débit est contrôlé pour vous. Vous pouvez définir les Déploiements de créer de nouveaux ressources, ou de remplacer ceux existants par de nouveaux.

Ils fournissent également le déploiement de l'histoire et d'autres fonctionnalités utiles.

$ kubectl rollout history deployment/nginx-deployment
deployments "nginx-deployment":
REVISION    CHANGE-CAUSE
1           kubectl create -f docs/user-guide/nginx-deployment.yaml --record
2           kubectl apply -f docs/user-guide/new-nginx-deployment.yaml
3           kubectl apply -f docs/user-guide/bad-nginx-deployment.yaml

Il assure le suivi des modifications.

$ kubectl rollout history deployment/nginx-deployment --revision=2
deployments "nginx-deployment" revision 2
Labels:     app=nginx,pod-template-hash=1564180365
Annotations:    kubernetes.io/change-cause=kubectl apply -f docs/user-guide/new-nginx-deployment.yaml
Image(s):   nginx:1.9.1
No volumes.

7voto

puja Points 231

Maintenant avec la version 1.1 du tableau de bord prend en charge les Déploiements. Vous pouvez déployer ou mettre à jour votre tableau de bord sans avoir à attendre pour la version 1.3 de k8s. Vous pouvez par exemple utiliser l' officiel YAML, nous avons juste changé d'utiliser les Déploiements d'aujourd'hui.

Généralement, je le recommande (et les gens de Google et de Kubernetes contributeurs aussi le faire) à l'aide de Déploiements au cours des RCs, car ils sont beaucoup plus puissant primitive (inclure les mises à jour régulières, la gestion des versions/audit, canaray/vert-bleu, les déploiements, les retours en arrière, etc.).

2voto

janetkuo Points 1283

Le tableau de bord (interface utilisateur Web) a été considérablement repensé pour prendre en charge la gestion de davantage de ressources (comme Deployments et DaemonSets , etc.) et le tableau de bord actuel ne permet pas grand chose à propos de Deployments .

La gestion des déploiements dans le tableau de bord sera bientôt prise en charge dans kubernetes 1.3 (voir le problème Demande de fonctionnalité: gérer les déploiements ).

2voto

Tomas Šatas Points 61

De mon expérience des déploiements offrent pas toutes les fonctionnalités dont j'ai besoin. Ou, peut-être, je suis de les utiliser dans un mauvais mode.

Lorsqu'il est nécessaire de redémarrer le nœud du serveur - tous les gousses en cours d'exécution sur le serveur commencé par le déploiement - faire échouer. Et je ne peux pas trouver un moyen d'éviter cela.

Mais,

Pense que la solution est une réplication du contrôleur. Au moins dans la description il est écrit qu'il gère de tels cas.

Déploiement principal avantage, comme je le vois, c'est quand vous avez besoin de changer de version de votre application en permanence.

Donc, les deux façons sont bonnes, mais pour des raisons différentes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X