Невозможно подключиться к серверу: наберите тайм-аут ввода-вывода TCP

Когда я запускаю команду версии kubectl, я получаю следующее сообщение об ошибке.

kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.0", GitCommit:"925c127ec6b946659ad0fd596fa959be43f0cc05", GitTreeState:"clean", BuildDate:"2017-12-15T21:07:38Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
Unable to connect to the server: dial tcp 192.168.99.100:8443: i/o timeout

Как мне решить эту проблему?

Привет, можете ли вы подтвердить, что ваш клиент запрашивает исправление сервера api с помощью следующей команды kubectl config view?

Suresh Vishnoi 13.03.2018 16:40

Полагаю, что так. Я новичок и изучаю K8s. Вот результат config `apiVersion: v1 cluster: - cluster: certificate-author-data: REDACTED server: 192.168.178.24:6443 name: kubernetes context: - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin @ kubernetes current-context: kubernetes-admin @ kubernetes kind: Настройки конфигурации: {} пользователи: - name: kubernetes-admin пользователь: данные-сертификата-клиента: УДАЛЕНО данные-ключа-клиента: УДАЛЕНО`

IT_novice 13.03.2018 17:03

привет у вас кластер на миникубе или АКС?

Suresh Vishnoi 13.03.2018 17:05

у меня есть кластер на малине-пи. Один мастер и два узла

IT_novice 13.03.2018 17:06
kubectl config use-context kubernetes вам поможет
Suresh Vishnoi 13.03.2018 17:06

Спасибо. Я ранее установил minikube и просто понял, что не удаляю должным образом. Еще раз спасибо за помощь.

IT_novice 13.03.2018 17:08

так что теперь он работает? Я думаю, что когда вы удаляете minikube, он не удаляет данные из kubeconfig.

Suresh Vishnoi 13.03.2018 17:08
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
46
7
59 786
11
Перейти к ответу Данный вопрос помечен как решенный

Ответы 11

Ответ принят как подходящий

Вы можете получить соответствующую информацию о статусе клиент-сервер, используя следующую команду.

kubectl config view 

Теперь вы можете обновить или установить контекст k8s соответственно с помощью следующей команды.

kubectl config use-context kubernetes

вы можете выполнить дальнейшие действия с файлом kubeconfig. следующая команда предоставит вам всю необходимую информацию.

kubectl config --help

Если вы используете minikube, вам следует запустить kubectl config use-context minikube Если вы используете последнюю версию докера для рабочего стола, которая поставляется с кубернетами, вам следует запустить kubectl config use-context docker-for-desktop.

Ты должен бежать первым

minikube start

на вашем терминале. Это сделает для вас следующие вещи:

 Restarting existing virtualbox VM for "minikube" ...
⌛  Waiting for SSH access ...
?  "minikube" IP address is 192.168.99.100
?  Configuring Docker as the container runtime ...
?  Version of container runtime is 18.06.3-ce
⌛  Waiting for image downloads to complete ...
✨  Preparing Kubernetes environment ...
?  Pulling images required by Kubernetes v1.14.1 ...
?  Relaunching Kubernetes v1.14.1 using kubeadm ... 
⌛  Waiting for pods: apiserver proxy etcd scheduler controller dns
?  Updating kube-proxy configuration ...
?  Verifying component health ......
?  kubectl is now configured to use "minikube"
?  Done! Thank you for using minikube!

Я проверил порт брандмауэра, и он был закрыт, я открыл его, и он начал работать.

Как ты делаешь это?

Arash Outadi 09.10.2019 22:54

У меня похожая проблема, когда я бегу

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Unable to connect to the server: dial tcp 192.168.99.100:8443: i/o timeout

И вот как я попробовал и, наконец, сработал.

Сначала я установил Docker Desktop на Mac (версия 2.0.0.3). Затем я установил kubectl с помощью команды

$ brew install kubectl
.....
==> Pouring kubernetes-cli-1.16.0.high_sierra.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/kubectl
Target /usr/local/bin/kubectl
already exists. You may want to remove it:
  rm '/usr/local/bin/kubectl'

To force the link and overwrite all conflicting files:
  brew link --overwrite kubernetes-cli

To list all files that would be deleted:
  brew link --overwrite --dry-run kubernetes-cli

Possible conflicting files are:
/usr/local/bin/kubectl -> /Applications/Docker.app/Contents/Resources/bin/kubectl
.....

Это не имеет значения, у нас уже есть kubectl. Затем я устанавливаю minikube с помощью команды

$ brew cask install minikube
...
==> Linking Binary 'minikube-darwin-amd64' to '/usr/local/bin/minikube'.
?  minikube was successfully installed!

запустить minikube в первый раз (VirtualBox не установлен)

$ minikube start
?  minikube v1.4.0 on Darwin 10.13.6
?  Downloading VM boot image ...
    > minikube-v1.4.0.iso.sha256: 65 B / 65 B [--------------] 100.00% ? p/s 0s
    > minikube-v1.4.0.iso: 135.73 MiB / 135.73 MiB [-] 100.00% 7.75 MiB p/s 18s
?  Creating virtualbox VM (CPUs=2, Memory=2000MB, Disk=20000MB) ...
?  Retriable failure: create: precreate: VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path
...
?  Unable to start VM
❌  Error: [VBOX_NOT_FOUND] create: precreate: VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path
?  Suggestion: Install VirtualBox, or select an alternative value for --vm-driver
?  Documentation: https://minikube.sigs.k8s.io/docs/start/
⁉️   Related issues:
    ▪ https://github.com/kubernetes/minikube/issues/3784

Установите VirtualBox, затем запустите minikube второй раз (VirtualBox установлен)

$ minikube start
?  13:37:01.006849   35511 cache_images.go:79] CacheImage kubernetesui/dashboard:v2.0.0-beta4 -> /Users/kaka.go/.minikube/cache/images/kubernetesui/dashboard_v2.0.0-beta4 failed: read tcp 10.49.52.206:50350->104.18.125.25:443: read: operation timed out
?  Preparing Kubernetes v1.16.0 on Docker 18.09.9 ...
E1002 13:37:33.632298   35511 start.go:706] Error caching images:  Caching images for kubeadm: caching images: caching image /Users/kaka.go/.minikube/cache/images/kubernetesui/dashboard_v2.0.0-beta4: read tcp 10.49.52.206:50350->104.18.125.25:443: read: operation timed out
❌  Unable to load cached images: loading cached images: loading image /Users/kaka.go/.minikube/cache/images/kubernetesui/dashboard_v2.0.0-beta4: stat /Users/kaka.go/.minikube/cache/images/kubernetesui/dashboard_v2.0.0-beta4: no such file or directoryminikube v1.4.0 on Darwin 10.13.6
?  Creating virtualbox VM (CPUs=2, Memory=2000MB, Disk=20000MB) ...
E1002 
?  Downloading kubeadm v1.16.0
?  Downloading kubelet v1.16.0
?  Pulling images ...
?  Launching Kubernetes ... 

?  Error starting cluster: timed out waiting to elevate kube-system RBAC privileges: Temporary Error: creating clusterrolebinding: Post https://192.168.99.100:8443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings: dial tcp 192.168.99.100:8443: i/o timeout

?  Sorry that minikube crashed. If this was unexpected, we would love to hear from you:
?  https://github.com/kubernetes/minikube/issues/new/choose
❌  Problems detected in kube-addon-manager [b17d460ddbab]:
    error: no objects passeINFO:d  == Kuto apberneply
    error: no objectNsF Op:a == Kubernetssed tes ado appdon ely

запустить миникубе в третий раз

$ minikube start
?  minikube v1.4.0 on Darwin 10.13.6
?  Tip: Use 'minikube start -p <name>' to create a new cluster, or 'minikube delete' to delete this one.
?  Using the running virtualbox "minikube" VM ...
⌛  Waiting for the host to be provisioned ...
?  Preparing Kubernetes v1.16.0 on Docker 18.09.9 ...
?  Relaunching Kubernetes using kubeadm ... 

! все еще застрял при перезапуске

Я включаю конфигурацию Kubernetes в настройках Docker Preferences, перезагружаю Mac и переключаю контекст Kubernetes на докер для рабочего стола.

О, версия kubectl на этот раз работает, но с контекстом docker-for-desktop

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:25:46Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

запустить minikube 4-й раз (возможно, после перезапуска системы)

$ minikube start
?  minikube v1.4.0 on Darwin 10.13.6
?  Tip: Use 'minikube start -p <name>' to create a new cluster, or 'minikube delete' to delete this one.
?  Starting existing virtualbox VM for "minikube" ...
⌛  Waiting for the host to be provisioned ...
?  Preparing Kubernetes v1.16.0 on Docker 18.09.9 ...
?  Relaunching Kubernetes using kubeadm ... 
⌛  Waiting for: apiserver proxy etcd scheduler controller dns
?  Done! kubectl is now configured to use "minikube"

Наконец, он работает с контекстом minikube ...

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:27:17Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}

Я столкнулся с той же проблемой в Ubuntu 18.04.1 LTS.

Решение, предоставленное здесь, сработало для меня.

Просто поместите сюда те же данные:

  1. Получить текущее имя кластера и зону:

    gcloud container clusters list

  2. Настройте Kubernetes для использования вашего текущего кластера:

    gcloud container clusters get-credentials [cluster name] --zone [zone]

Надеюсь, поможет.

в gcloud, при подключении к кластеру через пользовательский интерфейс, первая выполняемая команда "кластеры контейнеров gcloud ... --zone ... --project ..". После этого kubectl работает.

Chris 02.11.2019 14:21

Даже если имя кластера и зона настроены правильно, как указано в O / P списка кластеров. Пожалуйста, запустите вторую команду еще раз. Это случилось со мной, когда я создал новый кластер.

asim 08.12.2019 16:41

Это спасло мою задницу. Вот еще несколько подробностей о том, почему: если я использую kubectl config view, я вижу, что срок действия моего поставщика аутентификации истек (expiry: "--yesterday--"). Вывод: на gcloud kube истечение срока авторизации не отображается внятно.

Kevin Won 04.03.2021 23:07

У меня была такая же проблема, когда я попытался использовать kubrnetes, установленный с Docker. Оказалось, что по умолчанию не включили.

Сначала я включил kubrnetes в параметрах Docker, а затем изменил контекст для docker-for-desktop

kubectl config get-contexts
kubectl config use-context docker-for-desktop

Это решило проблему.

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

Yakov Burtsev 13.05.2021 11:48

Столкнулся с той же проблемой с доступом к мастеру GKE из Google Cloud Shell.

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

  1. Откройте GCloud Shell

  2. Получите внешний IP-адрес текущей оболочки GCloud с помощью:

    dig +short myip.opendns.com @resolver1.opendns.com

  3. Добавьте этот внешний IP-адрес в раздел «Мастер авторизованных сетей» кластера GKE - с суффиксом CIDR /32.

После этого запуск kubectl get nodes из GCloud Shell сразу заработал.

Если вы используете лазурный и недавно изменили свой пароль, попробуйте следующее:

az account clear
az login

После успешного входа в систему:

az aks get-credentials --name project_name --resource-group resource_group_name

Теперь, когда ты бежишь

kubectl get nodes

вы должны что-то увидеть. Также убедитесь, что вы используете правильный контекст kubectl.

Эта проблема возникает из-за миникубе. Перезапустите minikube, чтобы решить эту проблему. Запустите команду ниже, и все заработает.

minikube stop
minikube delete
minikube start

Моя проблема заключалась в том, что я использую 2 виртуальные сети на своей виртуальной машине. Сеть, которую использует Kubernetes, всегда является шлюзом по умолчанию. Однако сеть связи между моими виртуальными машинами была другой.

Вы можете заставить Kubernetes использовать другую сеть, используя следующие флаги:

sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-cert-extra-sans=xxx.xxx.xxx.xxx --apiserver-advertise-address=xxx.xxx.xxx.xxx

Измените xxx.xxx.xxx.xxx на коммуникационный IP-адрес вашего мастера K8S.

Другие вопросы по теме