Ошибка проверки готовности Zalenium: ошибка HTTP-проверки с кодом состояния: 502

Я пытаюсь развернуть диаграмму zalenium helm в моем недавно развернутом кластере aks Kuberbetes (1.9.6) в Azure. Но я не могу заставить его работать. Модуль дает журнал ниже:

Модуль описания дает: Предупреждение Неработоспособный кубелет 4 м (x12 более 6 м), aks-agentpool-93668098-0 Ошибка проверки готовности: сбой проверки HTTP с кодом состояния: 502

Zalenium Image Version (s): дозель / залениум: 3

Если вы используете Kubernetes, укажите свою среду и, если необходимо, ваши манифесты: я использую шаблоны как есть из https://github.com/zalando/zalenium/tree/master/docs/k8s/helm

Я предполагаю, что это должно что-то делать с rbac из-за этой части »Ошибка инициализации поддержки Kubernetes. Io.fabric8.kubernetes.client.KubernetesClientException: Операция: [get] для вида: [Pod] с именем: [zalenium-zalenium-hub- 6bbd86ff78-m25t2] в пространстве имен: [по умолчанию] не удалось. В "

Я создал роль кластера и привязку кластера для учетной записи службы zalenium-zalenium, которая автоматически создается диаграммой Helm.

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

kubectl create clusterrole zalenium --verb=get,list,watch,update,delete,create,patch --resource=pods,deployments,secrets

kubectl create clusterrolebinding zalenium --clusterrole=zalnium --serviceaccount=zalenium-zalenium --namespace=default

person bramvdk    schedule 01.06.2018    source источник
comment
я действительно допустил опечатку, но исправление опечатки безнадежно не помогло   -  person Ignacio Millán    schedule 01.06.2018
comment
Исправление опечатки не помогло. И с вашим вариантом привязки zalenium SA к роли администратора кластера, к сожалению, тоже не помогло. По-прежнему получаю сообщение об ошибке: _1_   -  person bramvdk    schedule 01.06.2018


Ответы (2)


Примечание: нет необходимости указывать пространство имен при создании привязки роли кластера, так как она распространяется на весь кластер (привязка роли связана с пространствами имен).

kubectl create clusterrolebinding zalenium --clusterrole=cluster-admin serviceaccount=zalenium-zalenium

Проблема была связана с AKS и Kubernetes Azure. Это было исправлено. См. Проблему с github 399

person suren    schedule 01.06.2018
comment
Просто подумайте о том, что RBAC не включен в AKS (Azure), а кластерная роль cluster-admon не существует. - person bramvdk; 01.06.2018
comment
локально с помощью minikube я заставляю его работать, когда я создаю кластерную привязку учетной записи службы zalenium-zalenium с помощью clusterrole cluster-admin. - person bramvdk; 01.06.2018
comment
Просто мысль. Первоначальное сообщение об ошибке - java. Я считаю, что это ошибка zalenium. Новый говорит, что капсула с таким именем не найдена. Вы сделали это _1_? - person bramvdk; 04.06.2018
comment
привет @suren, когда я выполняю установку Helm, модуль описания выдает ошибку, связанную с ошибкой доступа к модулю. имя модуля в журнале совпадает с именем запущенного модуля. при связывании роли cluser-admin с учетной записью SA это работает. К сожалению, на AKS нет учетной записи администратора кластера. - person suren; 04.06.2018
comment
Я развернул приложение точно так же в кластере ACS (Azure), и оно работает. - person bramvdk; 04.06.2018
comment
[bram @ xforce zalenium] $ kubectl logs -f zalenium-zalenium-hub-6bbd86ff78-m25t2 Обнаружен сервисный аккаунт Kubernetes. Копирование файлов для Dashboard ... cp: невозможно создать обычный файл '/home/seluser/videos/index.html': в разрешении отказано cp: невозможно создать каталог '/ home / seluser / videos / css': в разрешении отказано cp: невозможно создать каталог '/ home / seluser / videos / js': в доступе отказано Запуск обратного прокси Nginx ... Запуск Selenium Hub ... .......... 08: 49: 14.052 [main] INFO oogrid.selenium .GridLauncherV3 - Информация о сборке Selenium: версия: '3.12.0', ревизия: 'unknown' 08: 49: 14.120 [основная] ИНФОРМАЦИЯ oogrid.selenium.GridLauncherV3 - Запуск хаба Selenium Grid на порту 4445 ... 08:49: 15.125 [основная] ИНФОРМАЦИЯ dzezckKubernetesContainerClient - Инициализация поддержки Kubernetes ..08: 49: 15.650 [main] ПРЕДУПРЕЖДЕНИЕ dzezckKubernetesContainerClient - Ошибка при инициализации поддержки Kubernetes. io.fabric8.kubernetes.client.KubernetesClientException: Операция: [get] для вида: [Pod] с именем: [zalenium-zalenium-hub-6bbd86ff78-m25t2] в пространстве имен: [по умолчанию] не выполнена. в io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable (KubernetesClientException.java:62) в io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable (KubernetesClientException.java:71.base.kase.kz.kz.kz.kz. .BaseOperation.getMandatory (BaseOperation.java:206) в io.fabric8.kubernetes.client.dsl.base.BaseOperation.get (BaseOperation.java:162) в de.zalando.ep.zalenium.container.kubernetes.KubernetesContainerClient. ( KubernetesContainerClient.java:87) в de.zalando.ep.zalenium.container.ContainerFactory.createKubernetesContainerClient (ContainerFactory.java:35) в de.zalando.ep.zalenium.container.ContainerFactory.getContainerClient.javaerFactory.getContainerClient. .zalando.ep.zalenium.proxy.DockeredSeleniumStarter. (DockeredSeleniumStarter.java:59) в de.zalando.ep.zalenium.registry.ZaleniumRegistry. (ZaleniumRegistry.java:74) в de.zalando.ep.zalenium.registry.ZaleniumRegistry. . (ZaleniumRegistry.java:62) в sun.reflect.NativeConstructorAccesso rImpl.newInstance0 (собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.newInstance) (DelegatingConstructorAccessorImpl.newInstance) (ConstructorAccessorImpl. java: 423) в java.lang.Class.newInstance (Class.java:442) в org.openqa.grid.web.Hub. (Hub.java:93) в org.openqa.grid.selenium.GridLauncherV3 $ 2.launch (GridLauncherV3.java:291) по адресу org.openqa.grid.selenium. GridLauncherV3.launch (GridLauncherV3.java:122) по адресу org.openqa.grid.selenium.GridLauncherV3.main (GridLauncherV3.java:82) Вызвано: javax.net.ssl.SSLPeerUnverifiedException: Hostnamecfault.surflyntesv : sha256 / OyzkRILuc6LAX4YnMAIGrRKLmVnDgLRvCasxGXDhSoc = DN: CN = client, O = system: masters subjectAltNames: [10.0.0.1] в okhttp3.internal.connection.RealConnection.connectTls3. (RealConnection.java:268) в okhttp3.internal.connection.RealConnection.connect (RealConnection.java:160) в okhttp3.internal.connection.StreamAllocation.findConnection (StreamAllocation.java:256) в okhttp3.internal.connection.StreamA находите .п roceed (RealInterceptorChain.java:147) на okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121) на okhttp3.internal.cache.CacheInterceptor.ttintercept (CacheInterceptor.java:93) athaInterceptor.java:93. .proceed (RealInterceptorChain.java:147) на okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121) на okhttp3.internal.http.BridgeInterceptor.intercept (BridgeInterceptor.hava:93) на okhttp3.internal.http.BridgeInterceptor.intercept (BridgeInterceptor.hava:93) RealInterceptorChain.proceed (RealInterceptorChain.java:147) на okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept (RetryAndFollowUpInterceptor.java:125) на okhttp3.internal.httporceptor.java:125) на okhttp3.internal.httporceptor.interceptor.java:125) на okhttp3.internal.httporceptor.interprceptor.inter.http.index.внутривнутри .RealInterceptorChain.proceed (RealInterceptorChain.java:121) в io.fabric8.kubernetes.client.utils.ImpersonatorInterceptor.intercept (ImpersonatorInterceptor.java:56) в okhttp3.internal.http.14RealInterceptor.at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121) в io.fabric8.kubernetes.client.utils.HttpClientUtils $ 2.intercept (HttpClientUtils. .java: 147) на okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121) на okhttp3.RealCall.getResponseWithInterceptorChain (RealCall.java:200) на okhttpute3.RealCall.exe .fabric8.kubernetes.client.dsl.base. OperationSupport.handleResponse (OperationSupport.java:379) в io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse (OperationSupport.java:344) в io.fabric8.kubernetes.client.dsl.base.Option OperationSupport.java:313) в io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleGet (OperationSupport.java:296) в io.fabric8.kubernetes.client.dsl.base.BaseOperation.handleGet (BaseOperation.java: 770) в io.fabric8.kubernetes.client.dsl.base.BaseOperation.getMandatory (BaseOperation.java:195) ... 16 общих кадров пропущено 08: 49: 15.651 [основная] ИНФОРМАЦИЯ dzezckKubernetesContainerClient - собирается очистить все, что осталось над стручками селена, созданными Zalenium. Использование: [параметры] Параметры: --debug, -debug: включает LogLevel.FINE. По умолчанию: false --version, -version Отображает версию и завершает работу. По умолчанию: false -browserTimeout в секундах: количество секунд, в течение которых сеанс браузера может зависать во время выполнения команды WebDriver (пример: driver.get (url)). Если время ожидания истекает, пока команда WebDriver все еще обрабатывается, сеанс завершается. Минимальное значение - 60. Неуказанное, нулевое или отрицательное значение означает ожидание бесконечно. -matcher, -capabilityMatcher имя класса: класс, реализующий интерфейс CapabilityMatcher. Определяет логику, которой будет следовать концентратор, чтобы определить, может ли запрос быть назначен узлу. Например, если вы хотите, чтобы процесс сопоставления использовал регулярные выражения вместо точного совпадения при указании версии браузера. ВСЕ узлы грид-экосистемы затем будут использовать один и тот же параметр featuresMatcher, как определено здесь. -cleanUpCycle в мс: указывает, как часто концентратор будет опрашивать запущенные прокси-серверы на предмет истечения времени ожидания (т. е. зависших) потоков. Также необходимо указать параметр «тайм-аут» -custom: пары ключ = значение, разделенные запятыми, для настраиваемых расширений сетки. НЕ РЕКОМЕНДУЕТСЯ - может быть объявлен устаревшим в будущих версиях. Пример: -custom myParamA = Value1, myParamB = Value2 -host IP или имя хоста: обычно определяется автоматически. Наиболее часто используется в экзотических сетевых конфигурациях (например, в сети с VPN). По умолчанию: 0.0.0.0 -hubConfig filename: файл JSON (следующий формат grid2), который определяет свойства концентратора -jettyThreads, -jettyMaxThreads: максимальное количество потоков для Jetty. Неуказанное, нулевое или отрицательное значение означает, что будет использоваться значение Jetty по умолчанию (200). -log filename: имя файла для ведения журнала. Если не указано, будет регистрироваться в STDOUT -maxSession максимальное количество тестов, которые могут выполняться одновременно на узле, независимо от используемого браузера -newSessionWaitTimeout в мс: время, по истечении которого новый тест, ожидающий доступности узла, будет из. Когда это произойдет, тест вызовет исключение перед попыткой запустить браузер. Неуказанное, нулевое или отрицательное значение означает ожидание бесконечно. По умолчанию: 600000 -port: номер порта, который будет использовать сервер. По умолчанию: 4445 -prioritizer class name: класс, реализующий интерфейс Prioritizer. Укажите настраиваемый приоритет, если вы хотите отсортировать порядок, в котором новые запросы сеанса обрабатываются при наличии очереди. По умолчанию установлено значение null (без приоритета = FIFO) - имя класса реестра: класс, реализующий интерфейс GridRegistry. Задает реестр, который будет использовать концентратор. По умолчанию: de.zalando.ep.zalenium.registry.ZaleniumRegistry -role параметры: [hub], [node] или [standalone]. По умолчанию: hub -servlet, -servlets: список дополнительных сервлетов, которые сетка (концентратор или узел) сделает доступными. Укажите несколько в командной строке: -servlet tld.company.ServletA -servlet tld.company.ServletB. Сервлет должен существовать по пути: / grid / admin / ServletA / grid / admin / ServletB -timeout, -sessionTimeout в секундах: указывает тайм-аут до того, как сервер автоматически завершит сеанс, в котором не было активности в течение последних X секунд. . Затем тестовый слот будет освобожден для использования в другом тесте. Обычно это используется для устранения сбоев клиента. Для ролей концентратора / узла сетки также необходимо установить cleanUpCycle. -throwOnCapabilityNotPresent true или false: если true, концентратор отклонит все тестовые запросы, если в настоящее время не зарегистрирован совместимый прокси-сервер. Если установлено значение false, запрос будет стоять в очереди до тех пор, пока узел, поддерживающий возможность, не будет зарегистрирован в сетке. -withoutServlet, -withoutServlets: список отключаемых сервлетов по умолчанию (концентратора или узла). Только сложные варианты использования. Не все сервлеты по умолчанию можно отключить. Укажите несколько в командной строке: -withoutServlet tld.company.ServletA -withoutServlet tld.company.ServletB org.openqa.grid.common.exception.GridConfigurationException: Ошибка создания класса с de.zalando.ep.zalenium.registry.ZaleniumRegistry: null на org.openqa.grid.web.Hub. (Hub.java:97) на org.openqa.grid.selenium.GridLauncherV3 $ 2.launch (GridLauncherV3.java:291) на org.openqa.grid.selenium.GridLauncherV3.launch (GridLauncherV3.java:122) в org.openqa.grid.selenium.GridLauncherV3.main (GridLauncherV3.java:82) Вызвано: java.lang.ExceptionInInitializerError в de.zalando.ep.zalenium.registry.ZaleniumRegistry. java: 74) в de.zalando.ep.zalenium.registry.ZaleniumRegistry. (ZaleniumRegistry.java:62) в sun.reflect.NativeConstructorAccessorImpl.newInstance0 (собственный метод) в sun.reflect. NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62) по адресу sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) в java.lang.reflect.Constructor.newInstance.java.lang.reflect.Constructor.newInstance.java.java.lang.reflect.Constructor. (Class.java:442) at org.openqa.grid.web.Hub. (Hub.java:93) ... еще 3 Причина: java.lang.NullPointerException в java.util.TreeMap.putAll (TreeMap.java : 313) в io.fabric8.kubernetes.client.dsl.base.BaseOperation.withLabels (BaseOperation.java:411) в io.fabric8.kubernetes.client.dsl.base.BaseOperation.withLabels (BaseOperation.java:48) в de.zalando.ep.zalenium.container.kubernetes.KubernetesContainerClient.deleteSeleniumPods (KubernetesContainerClient.java:393) в de.zalando.ep.zalenium.container.kubernetes.KubernetesContainerClientClient. ep.zalenium.container.ContainerFactory.createKubernetesContainerClient (ContainerFactory.java:38) в de.zalando.ep.zalenium.container.ContainerFactory.getContainerClient (ContainerFactory.java:22) at de.zalando.ep.zalenium.proxy.DockeredSeleniumStarter. (DockeredSeleniumStarter.java:59) ... еще 11 ..... .................................................. .................................................. .................................................. ................................ GridLauncher не запустился через 1 минуту, сбой ...% Total% Received% Xferd Средняя скорость Время Время Время Текущая загрузка Загрузка Всего затрачено Оставшаяся скорость 100 182 100 182 0 0 36103 0 -: -: - -: -: - -: -: - 45500 - person bramvdk; 05.06.2018

Я вижу опечатку в вашей последней команде: --clusterrole = zalnium

person bramvdk    schedule 19.06.2018