Вы указали правильный хост или порт? ошибка на Кубернете

Я следил за учебником helloword на http://kubernetes.io/docs/hellonode/.

Когда я запускаю:

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

Получаю: Соединение с сервером localhost: 8080 было отклонено - вы указали нужный хост или порт?

Почему в командной строке пытается подключиться к localhost?

Ответы

Ответ 2

Проблема в том, что ваш kubeconfig неверен. Чтобы автоматически сгенерировать его:

gcloud container clusters get-credentials "CLUSTER NAME"

Это сработало для меня.

Ответ 3

Воспроизводите ту же ошибку при выполнении учебника Udacity под названием "Масштабируемые микросервисы" с Kubernetes https://classroom.udacity.com/courses/ud615, в точке использования Kubernetes, Part 3 урока.

Запустить один экземпляр:

kubectl run nginx --image=nginx:1.10.0

Ошибка:

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

Как я разрешил ошибку:

Войдите в Google Cloud Platform

Перейдите к контейнеру Виртуальная платформа Google, контейнерный движок

Нажмите CONNECT в кластере

Используйте учетные данные для входа в кластер [NAME] в своем Teminal

Работала!!!

Ответ 4

Убедитесь, что ваша конфигурация настроена на проект - gcloud config set project [PROJECT_ID]

  1. Запустите контрольный список кластеров в учетной записи: gcloud container clusters list

  2. Проверьте вывод: 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 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. Запустите следующий cmd -

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

  1. Следующий вывод следует:

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

  1. Попробуйте проверить детали узла, на котором запущен kubectl например as-
    kubectl get nodes -o wide

Должно быть хорошо идти.

Ответ 5

После запуска команды "kubeinit", kubernetes просит вас запустить следующий как обычный пользователь

mkdir -p $ HOME/.kube

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

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

Но если вы запустите это как обычный пользователь, вы получите "Соединение с сервером localhost: 8080 было отказано - вы указали правильный хост или порт?" при попытке получить доступ от имени пользователя root и наоборот. Поэтому попробуйте получить доступ к "kubectl" как пользователь, который выполнил вышеупомянутые команды.

Ответ 6

У меня возникла проблема с использованием локальной докеры. Дело в том, чтобы проверить журналы контейнеров своими спинами, чтобы понять, что пошло не так. Для меня выяснилось, что и т.д. Упал на

   $ 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

Ага! Я играл с Cassandra в контейнере докеров, и я отправил все порты, так как не был уверен, что это нужно, и 7001 - один из его портов. Остановить Кассандру, очистить беспорядок и перезапустить его исправленные вещи.

Ответ 7

Эти ошибки означают, что kubectl пытается подключиться к Apiserver Kubernetes, запущенному на вашем локальном компьютере, который по умолчанию используется, если вы не настроили его на общение с удаленным apiserver.

Ответ 8

Реинициализация gcloud с правильным аккаунтом и проектом сработала для меня.

gcloud init

После этой повторной попытки приведенная ниже команда была выполнена успешно и была сгенерирована запись kubeconfig.

gcloud container clusters get-credentials "cluster_name"

проверьте информацию о кластере с

kubectl cluster-info

Ответ 9

У меня была такая же проблема после перезагрузки, я следовал описанному здесь руководству

Поэтому попробуйте следующее:

$ sudo -i
# swapoff -a
# exit
$ strace -eopenat kubectl version

После этого все работает нормально.

Ответ 10

Если вы создали кластер в AWS, используя kops, то kops создаст для вас ~/.kube/config, что приятно. Но если кому-то еще нужно подключиться к этому кластеру, ему также нужно установить kops, чтобы он мог создать 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}

Ответ 11

попробуйте запустить с режимом разрешений sudo
пример sudo kubectl....

Ответ 12

Я также получаю ту же ошибку ниже:

Невозможно подключиться к серверу: наберите tcp [:: 1]: 8080: connectex: Соединение не может быть установлено, поскольку целевой компьютер активно отказал ему.

Затем я просто выполни команду ниже и обнаружил, что все работает нормально.

PS C:>.\Minikube.exe запустить

Запуск локального кластера Kubernetes v1.10.0... Запуск виртуальной машины... Загрузка Minikube ISO 150,53 МБ /150,53 МБ [====================================== ==================] 100.00% 0s Получение IP-адреса виртуальной машины... Перемещение файлов в кластер... Загрузка kubeadm v1.10.0 Загрузка kubelet v1.10.0 Завершено Загрузка kubelet v1.10.0 Закончено скачивание kubeadm v1.10.0 Настройка сертификатов... Подключение к кластеру... Настройка kubeconfig... Запуск компонентов кластера... Kubectl теперь настроен для использования кластера. Загрузка кэшированных изображений из конфигурационного файла. PS C:>.\Minikube.exe start Запуск локального кластера Kubernetes v1.10.0... Запуск VM... Получение IP-адреса виртуальной машины... Перемещение файлов в кластер... Настройка сертификатов... Подключение к кластеру.. Настройка kubeconfig... Запуск компонентов кластера... Kubectl теперь настроен на использование кластера.

Ответ 13

У меня есть проблема Smae. в моем сценарии есть сервер API kubernetes не отвечает. так что проверьте kubernetes API сервер и контроллер, а также.

Ответ 14

Независимо от вашей среды (gcloud или нет), вам нужно указать kubectl на kubeconfig. По умолчанию kubectl ожидает путь как $ HOME/.kube/config или указывает свой собственный путь как переменную env (для сценариев и т.д.) Export KUBECONFIG =/your_kubeconfig_path

Пожалуйста, обратитесь :: https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/

Если у вас нет файла kubeconfig для вашего кластера, создайте его, перейдя по ссылке: https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/

Требуется найти кластер ca.crt, ключ apiserver-kubelet-client и сертификат.

Ответ 15

Решение заключается в следующем:

minikube delete
minikube start --vm-driver none