Я удалил миникуб и удалил все файлы в ~ / .minikube и переустановил миникуб. Сейчас работает нормально. Я не получил вывод раньше, но я приложил его после того, как он работает с вопросом. Можете ли вы сказать мне, что говорит вывод этой команды?
Будет очень трудно или даже невозможно сказать, что именно не так с вашим кластером Minikube Kubernetes , когда онуже удален и настроен заново.
По сути, есть несколько вещей, которые вы могли бы сделать, чтобы правильно устранить неполадки или отладить вашу проблему.
Добавление вывода команды, который был задан в комментариях
Вывод, который вы опубликовали, на самом деле является лишь частью задачи, которую @Eduardo Baitello попросил вас выполнить. Команда kubectl get po -n kube-system
просто показывает вам список Pods
в kube-system
пространстве имен. Другими словами, это список системных модулей, формирующих ваш кластер Kubernetes, и, как вы можете себе представить, правильное функционирование каждого из этих компонентов имеет решающее значение. Как вы видите в выводе, STATUS
вашего модуля kube-proxy
равен Running
:
kube-proxy-7ndvl 1/1 Running 0 5m
В вопросе @ Eduardo вас также попросили проверить его логи. Вы можете сделать это, набрав:
kubectl logs kube-proxy-7ndvl
Это может сказать вам, что не так с этим конкретным модулем в то время, когда возникла проблема. Кроме того, в таком случае вы можете использовать команду describe
для просмотра других сведений о модуле (иногда для выяснения того, что с ним происходит, иногда полезно посмотреть на события модуля):
kubectl describe pod kube-proxy-7ndvl
Предложение проверить этоконкретный статус Pod
и журналы, скорее всего, были мотивированы этим фрагментом сообщений об ошибках, отображаемых в процессе запуска Minikube:
E0912 17:39:12.486830 17689 start.go:305] Error restarting
cluster: restarting kube-proxy: waiting for kube-proxy to be
up for configmap update: timed out waiting for the condition
Как вы можете видеть, это сообщение ясно указывает на то, что вкратце «что-то не так»"с kube-proxy
, поэтому имеет смысл сначала проверить его.
Есть еще одна вещь, которую вы, возможно, не заметили:
kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-minikube LoadBalancer 10.102.236.236 <pending> 8080:31825/TCP 15m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 19h
Ваша hello-minikube
служба не былаполностью готов. В столбце EXTERNAL-IP
вы можете видеть, что его состояние было pending
. Поскольку вы можете использовать команду describe
для описания Pods
, вы можете сделать это, чтобы получить подробную информацию об услуге. Просто:
describe service hello-minikube
может сказать вам многое в таком случае.
1) Если во время запуска кластер minikube вышел из строя, как kubectl смог подключиться к minikube дляделать развертывания и услуги? 2) Если с кластером все в порядке, то почему я получаю отказ в соединении?
Помните, что Kubernetes Cluster не является монолитной структурой и состоит из множества частей, которые зависят друг от друга. Тот факт, что kubectl
работал, и вы могли создать развертывание, не означает, что весь кластер работал нормально, и, как вы можете видеть в сообщении об ошибке, он предполагал, что один из его компонентов, а именно kube-proxy
, на самом деле не мог функционировать
Возвращаясь к началу вашего вопроса ...
Я выполнил приведенные здесь инструкции по установке https://kubernetes.io/docs/setup/learning-environment/minikube/#using-minikube-with-an-http-proxy
Проблема 1: После установки kubectl, virtualbox и minikube Я выполнил команду
minikube start --vm-driver=virtualbox
, насколько я понял, вы не используете прокси-сервер http, поэтому вы не следовали инструкциям этого конкретного фрагмента документов, которые выопубликовал, а вы?
У меня сложилось впечатление, что вы смешиваете 2 понятия. kube-proxy
, который является Kubernetes cluster
компонентом и который развернут как pod в kube-system
пространстве и http прокси-сервере , упомянутом в этом фрагменте документации.
Я искал этот прокси (https://kubernetes.io/docs/setup/learning-environment/minikube/#starting-a-cluster) что такое my_proxy в этом?
Если вы не знаете, какой у вас httpадрес прокси , скорее всего, вы просто не используете его, и если вы не используете его для подключения к Интернету со своего компьютера, это никак не относится к вашему делу .
В противном случае вам необходимо настроить его для Minikube на , предоставляя дополнительные флаги при запуске следующим образом:
minikube start --docker-env http_proxy=http://$YOURPROXY:PORT \
--docker-env https_proxy=https://$YOURPROXY:PORT
Если вы смогли запустить Minikube и теперь он работает правильно только с помощью команды:
minikube start --vm-driver=virtualbox
ваша проблема была вызвана чем-то другим, а вы не делаетевам нужно предоставить вышеупомянутые флаги, чтобы сообщить вашему Minikube , какой ваш http прокси-сервер вы используете .
Насколько я понимаю, в настоящее время все работает и работаети вы можете без проблем получить доступ к URL, возвращенному командой minikube service hello-minikube --url
, верно? Вы также можете запустить команду kubectl get service hello-minikube
и проверить, отличается ли ее вывод от того, что вы опубликовали ранее. Поскольку вы не прикрепляли какие-либо файлы определения yaml, трудно сказать, не было ли ничего плохого в определении вашего сервиса. Также обратите внимание, что Load Balancer
- это тип сервиса, разработанный для работы с внешними балансировщиками нагрузки, предоставляемыми облачными провайдерами, и вместо него в мини-кубе используется NodePort
.