web-dev-qa-db-fra.com

avez-vous spécifié le bon hôte ou le bon port? erreur sur Kubernetes

J'ai suivi le tutoriel helloword sur http://kubernetes.io/docs/hellonode/

Quand je cours:

kubectl run hello-node --image=gcr.io/PROJECT_ID/hello-node:v1 --port=8080

Je reçois: La connexion au serveur localhost: 8080 a été refusée - avez-vous spécifié l'hôte ou le port correct?

Pourquoi la ligne de commande essaie-t-elle de se connecter à localhost? 

29
poiuytrez

Le problème est que votre kubeconfig n’est pas correct . Pour le générer automatiquement, exécutez:

gcloud container clusters get-credentials "CLUSTER NAME"

Cela a fonctionné pour moi.

38
Alan Wagner

Reproduisez la même erreur lorsque vous effectuez un didacticiel d'Udacity appelé Scalable Microservices with Kubernetes https://classroom.udacity.com/courses/ud615 , au moment d'utiliser Kubernetes, troisième partie de la leçon. 

Lancer une seule instance:

kubectl run nginx --image=nginx:1.10.0

Erreur:

Unable to connect to the server: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it.

Comment j'ai résolu l'erreur:

Connexion à la plateforme Google Cloud

Accédez à Container Engine Google Cloud Platform, Container Engine

Cliquez sur CONNECTER sur le cluster.

Utilisez les identifiants de connexion pour accéder au cluster [NOM] dans votre Teminal

A procédé au travail !!!

4
Jason Sprouse

Assurez-vous que votre configuration est définie sur le projet - gcloud config set project [PROJECT_ID]

  1. Exécutez une liste de contrôle des clusters du compte: gcloud container clusters list

  2. Vérifiez la sortie: NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VE. alpha-cluster asia-south1-a 1.9.7-gke.6 35.200.254.78 f1-micro 1.9.7- NUM_NODES STATUS gke.6 3 RUNNING

  3. Exécutez le cmd suivant - 

gcloud container clusters get-credentials your-cluster-name --zone your-zone --project your-project

  1. La sortie suivante suit: 

Fetching cluster endpoint and auth data. kubeconfig entry generated for alpha-cluster. 

  1. Essayez de vérifier les détails du noeud qui exécute kubectl tels que
    kubectl get nodes -o wide

Devrait être bon pour aller.

1
jningthou

Après avoir exécuté la commande "kubeinit", kubernetes vous demande d’exécuter les actions suivantes en tant que utilisateur régulier

mkdir -p $ HOME/.kube

Sudo cp -i /etc/kubernetes/admin.conf $ HOME/.kube/config

Sudo chown $ (id -u): $ (id -g) $ HOME/.kube/config

Mais si vous utilisez ceci en tant qu'utilisateur normal, vous obtiendrez "La connexion au serveur localhost: 8080 a été refusée - avez-vous spécifié le bon hôte ou le bon port?" lors de la tentative d'accès en tant qu'utilisateur root et vice versa. Donc essayez d’accéder à "kubectl" en tant qu’utilisateur ayant exécuté les commandes ci-dessus .

1
Farhan Haider

Réinitialiser gcloud avec le compte et le projet appropriés a fonctionné pour moi.

gcloud init

Après cette nouvelle tentative, la commande ci-dessous a abouti et l’entrée kubeconfig a été générée.

gcloud container clusters get-credentials "cluster_name"

vérifier les informations de cluster avec

kubectl cluster-info
1
JD-V

Cette erreur signifie que kubectl tente de se connecter à un apiserver Kubernetes exécuté sur votre ordinateur local. Il s'agit de la valeur par défaut si vous ne l'avez pas configuré pour communiquer avec un apiserver distant. 

0
Robert Bailey

essayez de courir avec le mode d'autorisation Sudo 
exemple Sudo kubectl....

0
Italo José

J'ai eu ce problème en utilisant un docker local. La chose à faire est de vérifier les journaux des conteneurs pour voir ce qui ne va pas. Pour moi, il est apparu que etcd était tombé

   $ docker logs <etcdContainerId>
   <snip>
   2016-06-15 09:02:32.868569 C | etcdmain: listen tcp 127.0.0.1:7001: bind: address already in use

Aha! Je jouais avec Cassandra dans un conteneur de menu fixe et j'avais transféré tous les ports, car je ne savais pas exactement ce dont il avait besoin et 7001 en fait partie. Arrêter Cassandra, nettoyer le désordre et le redémarrer a réparé les choses.

0
Mumrah

Si vous avez créé un cluster sur AWS à l'aide de kops, alors kops crée ~/.kube/config pour vous, ce qui est Nice. Mais si quelqu'un d'autre a besoin de se connecter à ce cluster, il doit également installer kops pour qu'il puisse créer le kubeconfig:

export AWS_ACCESS_KEY_ID=$(aws configure get aws_access_key_id)
export AWS_SECRET_ACCESS_KEY=$(aws configure get aws_secret_access_key)
export CLUSTER_ALIAS=kubernetes-cluster

kubectl config set-context ${CLUSTER_ALIAS} \
    --cluster=${CLUSTER_FULL_NAME} \
    --user=${CLUSTER_FULL_NAME}

kubectl config use-context ${CLUSTER_ALIAS}

kops export cluster --name ${CLUSTER_FULL_NAME} \
  --region=${CLUSTER_REGION} \
  --state=${KOPS_STATE_STORE}
0
Roman

J'obtenais aussi la même erreur ci-dessous:

Impossible de se connecter au serveur: dial tcp [:: 1]: 8080: connectex: Aucune connexion n'a pu être établie car la machine cible l'a activement refusée.

Ensuite, j'exécute juste en-dessous de la commande et j'ai trouvé que tout fonctionnait bien.

PS C:>.\Minikube.exe start

Démarrage du cluster Kubernetes v1.10.0 local ... Démarrage de VM ... Téléchargement de l'ISO Minikube 150,53 Mo/150,53 Mo [========================================== ] 100,00% 0s Obtention de VM adresse IP ... Déplacement de fichiers dans un cluster ... v1.10.0 Terminé Téléchargement de kubeadm v1.10.0 Configuration des certs ... Connexion au cluster ... Configuration de kubeconfig ... Démarrage des composants du cluster ...Kubectl est maintenant configuré pour utiliser le cluster . Chargement des images en cache à partir du fichier de configuration PS C:>.\Minikube.exe démarrer Démarrage du cluster local Kubernetes v1.10.0 ... VM ... Obtention de VM adresse IP ... Déplacement de fichiers dans un cluster ... Configuration des certs ... Connexion à un cluster ... up kubeconfig ... Démarrage des composants du cluster ... Kubectl est maintenant configuré pour utiliser le cluster.

0
Binod Suman