2016-10-07 6 views
6

Недавно я начал изучать Кубернетес, используя Minikube локально на своем Mac. Раньше я смог запустить локальный кластер Kubernetes с Minikube 0.10.0, создал развертывание и просмотрел панель инструментов Kubernetes.Minikube застрял при создании контейнера

Вчера я попытался удалить кластер и переделать все с нуля. Тем не менее, я обнаружил, что не могу развернуть активы и не могу просмотреть панель. Из того, что я видел, все, казалось, застревало во время создания контейнера.

После того как я побежал minikube start, он сообщил

Starting local Kubernetes cluster... 
Kubectl is now configured to use the cluster. 

Когда я побежал kubectl get pods --all-namespaces, он сообщил (обратите внимание на столбец STATUS):

kubectl get pods --all-namespaces 
NAMESPACE  NAME       READY  STATUS    RESTARTS AGE 
kube-system kube-addon-manager-minikube 0/1  ContainerCreating 0   51s 

docker ps ничего не показал:

docker ps 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES 

minikube status сообщает мне VM и кластер работает:

minikubeVM: Running 
localkube: Running 

Если бы я попытался создать развертывание и autoscaler, мне сказали, что они были успешно созданы

kubectl create -f configs 
deployment "hello-minikube" created 
horizontalpodautoscaler "hello-minikube-autoscaler" created 

$ kubectl get pods --all-namespaces 
NAMESPACE  NAME        READY  STATUS    RESTARTS AGE 
default  hello-minikube-661011369-1pgey 0/1  ContainerCreating 0   1m 
default  hello-minikube-661011369-91iyw 0/1  ContainerCreating 0   1m 
kube-system kube-addon-manager-minikube  0/1  ContainerCreating 0   21m 

При экспонировании службы, он сказал:

$ kubectl expose deployment hello-minikube --type=NodePort 
service "hello-minikube" exposed 

$ kubectl get service 
NAME    CLUSTER-IP EXTERNAL-IP PORT(S) AGE 
hello-minikube 10.0.0.32 <nodes>  8080/TCP 6s 
kubernetes  10.0.0.1  <none>  443/TCP 22m 

Когда я попытался получить доступ к службе, мне сказали:

curl $(minikube service hello-minikube --url) 
Waiting, endpoint for service is not ready yet... 

docker ps все еще ничего не показывал. Мне казалось, что при создании контейнера все застряло. Я пробовал некоторые другие способы решения этой проблемы:

  1. Модернизированный minikube 0.11.0
  2. Используйте xhyve драйвер вместо драйвера VirtualBox
  3. Удалить все кэшируются, как ~/.minikube, ~/.kube и кластер и повторите попытку

Ни один из них не работал для меня.

Kubernetes еще ново для меня, и я хотел бы знать:

  1. Как я могу устранить такого рода проблемы?
  2. Что может быть причиной этой проблемы?

Любая помощь приветствуется. Благодарю.

ответ

3

Оказалось проблемой сети в моем случае.

Статус контейнера - «ContainerCreating», и я обнаружил, что при создании контейнера изображение докера будет вытащено из gcr.io, который недоступен в Китае (заблокирован GFW). В предыдущее время это работало для меня, потому что мне довелось подключиться к VPN.

+0

я обращенную тот же вопрос. Не могли бы вы рассказать мне, как вы решили эту проблему? Это было бы очень полезно – NSP

+0

@NSP Для меня, поскольку это вызвано проблемой доступности сети, я просто подключаюсь к VPN, чтобы обойти эту проблему. – nybon

+0

, так что я должен удалить существующую настройку minikube, а затем начать новую установку, подключившись к VPN? (minikube delete, за которым следует запуск minikube?) – NSP

3

Я не пробовал minikube, но я использую кубернеты. С предоставленной информацией трудно сказать причину проблемы. У вашего мини-куба нет проблем при создании ресурсов, но ContainerCreating - это проблема, связанная с демонами докеров или неправильной связью между кубе-api и докером-демоном или с какой-либо проблемой с kubelet.

Вы можете попробовать kubectl описывают ро POD_NAME Это даст вам событие. Возможно, это обеспечит путь к первопричине проблемы.

ИЛИ

Проверьте журналы kubelet, чтобы получить событие.

0

Горизонтальный указатель (hpa) требует использования heapster. Для этого вам нужно запустить кузницу в мини-кубе. Вы всегда можете отлаживать эти проблемы с помощью minikube logs или интерактивно через панель мониторинга, найденную по адресу minikube dashboard.

Вы можете найти шаги для запуска heapster и графана на https://github.com/kubernetes/heapster

0

Для меня это sevral mins, прежде чем я осознаю проблемы ContainerCreating. После выполнения ЦМД systemctl status kube-controller-manager.service, я получаю ошибку

Sync «по умолчанию/Redis-мастер-2229813293» Сбой удалось не создать стручки: Нет фишку API найденную для учетной записи службы «по умолчанию», повторите попытку после того, как маркер автоматически создается и добавлен в учетную запись службы.

Так два способа решить:

  • настройки учетной записи службы с маркерами
  • удалить ServiceAccount установки KUBE_ADMISSION_CONTROL в апи-сервере
0

Я имел эту проблему на Windows, но он был связан с прокси-сервером NTLM. Я удалил minikube VM затем воссоздал его с правильными настройками прокси для моей установки CNTLM:

minikube start --docker-env http_proxy=http://10.0.2.2:3128 --docker-env https_proxy=http://10.0.2.2:3128 --docker-env no_proxy=localhost,127.0.0.1,::1,192.168.99.100 

См https://blog.alexellis.io/minikube-behind-proxy/