проблемы. Я не понимаю, в чём дело, но он у меня не поднимается никак.
Делал и по ручному мануалу и по готовым скриптам, которые сами всё поднимают - результат один и тот же всегда.
Поднимаю на короси, которая заливается по PXE.
етсд, фланел и докер стартуют нормально.
далее стартую кублет, он подтягивает конфиги и запускает аписервер, контроллер, прокси и шедулер.
контейнер с апи-сервером постоянно перезапускается.
в логах ноды ничего осмысленного:
1427 reflector.go:190] k8s.io/kubernetes/pkg/kubelet/kubelet.go:382: Failed to list *v1.Service: Get http://127.0.0.1:8080/api/v1/services?resourceV
1427 reflector.go:190] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:46: Failed to list *v1.Pod: Get http://127.0.0.1:8080/api/v1/pods?fieldSele
1427 reflector.go:190] k8s.io/kubernetes/pkg/kubelet/kubelet.go:390: Failed to list *v1.Node: Get http://127.0.0.1:8080/api/v1/nodes?fieldSelector=m
1427 kubelet_node_status.go:230] Setting node annotation to enable volume controller attach/detach
ну типа он сам к себе подключиться не может.
в логах контейнера тоже фигня
E0922 07:37:47.729469 1 status.go:62] apiserver received an error that is not an metav1.Status: rpc error: code = 13 desc = transport is closing
E0922 07:37:50.553370 1 status.go:62] apiserver received an error that is not an metav1.Status: rpc error: code = 13 desc = transport: write tcp 10.1.29.11:52106->10.1.29.12:2379: write: connection reset by peer
но вот что нашёл интересное - в каком то мануале заметил проверку того, что контейнер с апи-сервером жив, таким образом:
curl http://127.0.0.1:8080/healthz
так вот, у меня оно (пока контейнер не упал) выдаёт всегда следующее:
[+]ping ok
[-]poststarthook/bootstrap-controller failed: reason withheld
[+]poststarthook/extensions/third-party-resources ok
[-]poststarthook/rbac/bootstrap-roles failed: reason withheld
[+]poststarthook/ca-registration ok
healthz check failed
я так подозреваю, что тут надо копать глубоко в кишки апи-сервера, но какой либо инфы я на эту тему вообще не нашёл.
кому интересно - решил проблему. оказывается в kube-apiserver.yaml нехватало опции - —storage-backend=etcd2 🤘
Обсуждают сегодня