2016-07-09 4 views
4

Все еще испытывают аналогичные проблемы, 1.3.0 и 1.4.0 ДО-alpha.0Kubernetes на докере создает контейнеры с пустым ServiceAccount и никаких маркеров, ведущими к контейнерным аварии и перезапускает

В моем случае (докер на основе настройку) , либо trusty, либо kubedns будут несанкционированы с сервера api.

и странно я вижу, что тайны не существует в случаях, по пути /var/run/secrets/kubernetes.io/serviceaccount

[[email protected] ... ]# kubectl exec -it kube-dns-v13-htfjo ls /bin/sh 
/# 
/# ls /var/run/secrets/kubernetes.io/serviceaccount 
/# 

В то время как кажется, что они находятся в узле и в экземпляр прокси

tmpfs on /var/lib/kubelet/pods/3de53b0c-45bb-11e6-9f03-08002776167a/volumes/kubernetes.io~secret/default-token-8axd8 type 
tmpfs on /var/lib/kubelet/pods/3de5591e-45bb-11e6-9f03-08002776167a/volumes/kubernetes.io~secret/default-token-8axd8 type 
tmpfs on /var/lib/kubelet/pods/f29f35c7-45cc-11e6-9f03-08002776167a/volumes/kubernetes.io~secret/default-token-ql88q type 
  • Удаление секрета и удаление стручков затем воссоздавать их не имеет никакого эффекта
  • Перезапуск кластера после ОНДА ounting & удаление папок не имеет никакого эффекта

Естественно, это приводит к невозможности запуска kubedns. Войти под

I0709 09:04:11.578816  1 dns.go:394] Received DNS Request:kubernetes.default.svc.cluster.local., exact:false 
I0709 09:04:11.578873  1 dns.go:427] records:[], retval:[], path:[local cluster svc default kubernetes] 
I0709 09:04:11.579657  1 dns.go:394] Received DNS Request:kubernetes.default.svc.cluster.local., exact:false 
I0709 09:04:11.579677  1 dns.go:427] records:[], retval:[], path:[local cluster svc default kubernetes] 
E0709 09:04:11.786646  1 reflector.go:216] pkg/dns/dns.go:128: Failed to list *api.Service: serializer for text/html; charset=utf-8 doesn't exist 
E0709 09:04:11.786995  1 reflector.go:216] pkg/dns/dns.go:127: Failed to list *api.Endpoints: serializer for text/html; charset=utf-8 doesn't exist 
I0709 09:04:12.488674  1 dns.go:145] Ignoring error while waiting for service default/kubernetes: serializer for text/html; charset=utf-8 doesn't exist. Sleeping 1s before retrying. 
E0709 09:04:12.879701  1 reflector.go:216] pkg/dns/dns.go:128: Failed to list *api.Service: serializer for text/html; charset=utf-8 doesn't exist 
E0709 09:04:12.880000  1 reflector.go:216] pkg/dns/dns.go:127: Failed to list *api.Endpoints: serializer for text/html; charset=utf-8 doesn't exist 
I0709 09:04:13.582561  1 dns.go:145] Ignoring error while waiting for service default/kubernetes: serializer for text/html; charset=utf-8 doesn't exist. Sleeping 1s before retrying. 

ответ

5

Это один, кажется, ошибка все еще открытой

https://github.com/kubernetes/kubernetes/issues/26943

Обходной, который работает, чтобы добавить rslave опцию в kubelet смонтировать как --volume =/вар/Lib/kubelet:/var/lib/kubelet: rw, rslave, как показано ниже.

Это решение также зависит от платформы. Прочитайте заметки в отчете об ошибке.

## Start kubernetes master 
sudo docker run \ 
--volume=/:/rootfs:ro \ 
--volume=/sys:/sys:ro \ 
--volume=/var/lib/docker/:/var/lib/docker:rw \ 
**--volume=/var/lib/kubelet:/var/lib/kubelet:rw,rslave** \ 
--volume=/var/run:/var/run:rw \ 
--net=host \ 
--privileged=true \ 
--pid=host \ 
-d \ 
gcr.io/google_containers/hyperkube-amd64:${K8S_VERSION} \ 
/hyperkube kubelet \ 
    --allow-privileged=true \ 
    --api-servers=http://localhost:8080 \ 
    --v=2 \ 
    --address=0.0.0.0 \ 
    --enable-server \ 
    --hostname-override=127.0.0.1 \ 
    --config=/etc/kubernetes/manifests-multi \ 
    --containerized \ 
    --cluster-dns=10.0.0.10 \ 
    --cluster-domain=cluster.local