Я настроил openshift, и все работает правильно на хосте, на котором запущен docker-register. Когда я добавил новый узел и пытаюсь развернуть на нем контейнеры, у меня в журналах появляется такая ошибка:
E0519 10:51:38.574152 2135 pod_workers.go:138] Error syncing pod 083b958e-1dc0-11e6-8ca2-525400c36a07, skipping: failed to "StartContainer" for "testapp4" with ImagePullBackOff: "Back-off pulling image \"172.30.236.174:5000/test/testapp4@sha256:64c3dc4cb983986a1dd5a7979f03f449b089f4baaf979b67363a92aac43e49cd\""
E0519 11:00:09.099712 2098 pod_workers.go:138] Error syncing pod 5d3c48a1-1dd2-11e6-a164-525400c36a07, skipping: failed to "StartContainer" for "testapp4" with ErrImagePull: "API error (500): Get http://172.30.236.174:5000/v2/: dial tcp 172.30.236.174:5000: getsockopt: no route to host\n"
Я предполагаю, что проблема в том, что новый узел не «видит» адрес в реестре докеров 172.30.236.174, который развернут на другом узле. Должен ли я сделать что-то еще с новым узлом (я только что начал openshift с конфигурацией узла)?
172.30.0.0/16
используется OpenShift для выделения виртуальных IP-адресов для Kubernetes Services. Реестр докеров доступен через Службу и, по-видимому, привязан 172.30.236.174
в вашем кластере. Адреса служб обычно не маршрутизируются - вместо этого kube-proxy
перехватывает исходящий трафик, адресованный этому IP-адресу, и перенаправляет его (см. Виртуальные IP-адреса и служебные прокси).
Сообщение об ошибке «Нет маршрута к хосту», связанное с виртуальным IP-адресом, указывает, что kube-proxy
не работает на новом узле. Вы должны быть в состоянии обнаружить, что процесс запущен, и вы сможете найти его правила в iptables -L
вывод.