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?
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.
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 !!!
Assurez-vous que votre configuration est définie sur le projet - gcloud config set project [PROJECT_ID]
Exécutez une liste de contrôle des clusters du compte: gcloud container clusters list
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
Exécutez le cmd suivant -
gcloud container clusters get-credentials your-cluster-name --zone your-zone --project your-project
Fetching cluster endpoint and auth data.
kubeconfig entry generated for alpha-cluster.
kubectl
tels quekubectl get nodes -o wide
Devrait être bon pour aller.
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 .
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
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.
essayez de courir avec le mode d'autorisation Sudo
exemple Sudo kubectl....
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.
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}
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.