6
votes

Comment exécuter deux gousses dans des nœuds exclusifs?

J'aimerais exécuter deux pods dans des nœuds exclusifs. Par exemple, j'ai 4 nœuds (nœud-1, nœud-2, nœud-3, nœud-4) et 2 pods (POD-1, POD-2). Je souhaite qu'une seule pod s'exécute dans chaque nœud et chaque POD pour fonctionner dans deux nœuds, par exemple. POD-1 dans le nœud-1 et le nœud-2, POD-2 dans le nœud-3 et le nœud-4. Y a-t-il un moyen de configurer de cette façon?


4 commentaires

Cela vaincre le but de quelque chose comme Kubettes. Kubettes est censé exécuter vos conteneurs de manière à ne pas vous soucier d'où ils fonctionnent réellement, c'est-à-dire qu'ils fonctionnent.


Merci pour la réponse, chrétien. Bien que je souhaite gérer l'affectation des nœuds basée sur la ressource du nœud, Kubettes ne semble actuellement pas si intelligente ...


Oui, malheureusement, le planificateur de Kubettes n'est pas encore intelligent. Pour quelque chose qui gérera cela, vous voudrez examiner des choses comme des mésos, que certaines personnes ont essayé d'utiliser avec Kubettes. Mesos prend beaucoup plus en compte lorsque vous planifiez des choses sur le cluster.


J'ai également envisagé d'utiliser Docker sur Mesos (sur Coreos). Mais il semblait trop immaturé et légèrement trop lourd pour mes 4-8 nœuds utilise un cas d'utilisation.


4 Réponses :


8
votes

Vous pouvez forcer l'exclusivité en créant des définitions de POD incapables de planifier sur la même machine. Le moyen le plus simple de faire est d'attribuer chaque pod le même port d'hôte. Une fois que vous avez le même jeu de ports d'hôte pour les deux définitions de votre POD, si vous créez deux contrôleurs de réplication avec deux réplicas chacun, le planificateur exécutera 2 copies de 2 pods répartis sur 4 machines.


1 commentaires

Merci, Robert! Je vais essayer.



1
votes

Vous pouvez également utiliser un service sans tête - il ne garantira pas l'exécutivité, mais l'algorithme préférera le préférer pendant la planification.


5 commentaires

Merci, Clayton. Un service IP de service sans tête peut-il être résolu à l'aide de DNS comme des services non intégrés?


Si vous demandez aux enregistrements d'un service sans tête, vous obtiendrez un enregistrement pour chaque pod (sans tête n'a pas de clusterip). Je pense Nous avons fait le changement afin que SRV enregistre pour un service régulier inclurait un enregistrement pour chaque POD, mais peut-être pas. Si vous choisissez des services sans tête, vous n'obtiendrez pas non plus d'env VaR (bien qu'il y ait un bug ouvert pour cela et nous prévoyons de le réparer d'une manière ou d'une autre).


En outre, les services réguliers préfèrent également se propager de la même manière si vous avez ce prédicat configuré - je ne suggérais que des services sans tête si vous ne souhaitez pas forcer une IP de cluster


docs.openshift.org/latest/admin_guide/scheduler.html#use- CAS ES contient un exemple d'allumage de la priorité de propagation du service


Merci. Je vais essayer d'utiliser un enregistrement jusqu'à ce que j'ai besoin de ports variables. Aussi je vais plonger dans le planificateur.



2
votes

Ce que je voulais faire exactement est compassable via Sélection du nœud .


0 commentaires