2016-11-01 2 views
1

Par la composition suivante, openshift-origin, utilisant playbook dans ansible, l'environnement a été construit.deploy router status En attente

[node] 
openshift-master.example.com<br> 
openshift-node01.example.com<br> 
openshift-node02.example.com<br> 
openshift-etcd.example.com<br> 


[/etc/ansible/hosts] 
[OSEv3:children] 
masters 
nodes 
etcd 

# Set variables common for all OSEv3 hosts 
[OSEv3:vars] 
ansible_ssh_user=root 
deployment_type=origin 

[masters] 
openshift-master.example.com 

[etcd] 
openshift-etcd.example.com 

# host group for nodes, includes region info 
[nodes] 
openshift-master.example.com openshift_node_labels="{'region': 'infra', 'zone': 'default'}" 
openshift-node01.example.com openshift_node_labels="{'region': 'primary', 'zone': 'east'}" 
openshift-node02.example.com openshift_node_labels="{'region': 'primary', 'zone': 'west'}" 

Dans la commande suivante, en OpenShift, connectez-vous, oh, il a été fait.

[login command] 
oc login -u system:admin -n default 

Et Replica dans le routeur, il a été fait dans la commande suivante. L'événement suivant se produit et un emplacement ne peut pas créer de réplique dans le routeur.

[create router command] 
Failed scheduling 
pod (router-2-ievkl) failed to fit in any node fit failure on node (openshift-node01.example.com): CheckServiceAffinity fit failure on node (openshift-node02.example.com): CheckServiceAffinity fit failure on node (openshift-master.example.com): PodFitsHostPorts 

Il est telle situation, mais quand, comment faire correspondre, je serais en mesure de faire réplique à droite du routeur?

+0

JE PENSE (je ne suis pas sûr) que le problème ici est le suivant. Vous pouvez exécuter 'oc get nodes' et je pense que vous aurez un noeud (sur la même machine que votre maître) qui sera imprévisible. Cela signifie que le planificateur n'attribuera pas de pods à ce nœud. C'est le nœud avec l'étiquette: 'region: 'infra'. Maintenant, je ne suis pas sûr si les pod de registre/routeur etc. sont automatiquement déployés sur les nœuds qui ont l'étiquette «infra». Si c'est le cas, cela pourrait être le problème. Il doit créer des pods sur un nœud avec label infra mais le nœud avec l'infra label est non programmable. Faites-moi savoir si ça aide. – lvthillo

Répondre

3

Vous avez le même problème après l'installation propre de l'origine. Les maîtres non-concordants font la chose. Thnx à lorenzvth7

Lors de l'installation avancée, les openshift_hosted_router_selector et openshift_registry_selector paramètres Ansible sont définis à la région = infra par défaut. Le routeur et le registre par défaut ne seront déployés automatiquement que s'il existe un nœud correspondant à l'étiquette region = infra.

En outre, selon un sujet d'erreur cas de démarrage "PodFitsHostPorts"

Les routeurs directement connectable sur le port 80 et 443 sur toutes les interfaces sur un hôte. Limiter les routeurs aux hôtes où le port 80/443 est disponible et n'est pas consommé par un autre service, et définissez-le en utilisant les sélecteurs de nœud et la configuration du planificateur. À titre d'exemple, vous pouvez y parvenir en dédiant des nœuds d'infrastructure pour exécuter des services tels que les routeurs.

Ainsi, cela signifie que vous devez ré-étiqueter, par ex. openshift-node01.example.com comme région: infra