0

我正在尝试在 Azure 中新部署的 aks Kuberbetes (1.9.6) 集群中部署 zalenium helm 图表。但我不让它工作。该吊舱正在给出以下日志:

[bram@xforce zalenium]$ kubectl logs -f zalenium-zalenium-hub-6bbd86ff78-m25t2 找到 Kubernetes 服务帐户。正在为仪表板复制文件... 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 [main] INFO oogrid.selenium.GridLauncherV3 - 在端口 4445 ...08:49:15.125 上启动 Selenium Grid 集线器 [ main] INFO dzezckKubernetesContainerClient - 初始化 Kubernetes 支持 ..08:49:15.650 [main] WARN dzezck KubernetesContainerClient - 初始化 Kubernetes 支持时出错。io.fabric8.kubernetes.client.KubernetesClientException:操作:[get] for kind:[Pod] with name: [zalenium-zalenium-hub-6bbd86ff78-m25t2] in namespace: [default] 失败。在 io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:62) 在 io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:71) 在 io.fabric8.kubernetes.client.dsl.base .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: handleResponse(OperationSupport.java:379) 在 io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:344) 在 io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleGet(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 [main] INFO dzezckKubernetesContainerClient - 即将清理任何剩余的 selenium pod由 Zalenium 创建 用法:[选项] 选项:--debug,-debug :启用 LogLevel.FINE。默认值:false --version, -version 显示版本并退出。默认值:false -browserTimeout 以秒为单位:WebDriver 命令运行时允许浏览器会话挂起的秒数(例如:driver.get(url))。如果在 WebDriver 命令仍在处理时达到超时,会话将退出。最小值为 60。未指定、零或负值表示无限期等待。-matcher, -capabilityMatcher 类名:实现 CapabilityMatcher 接口的类。指定集线器将遵循的逻辑来定义是否可以将请求分配给节点。例如,如果您希望匹配过程在指定浏览器版本时使用正则表达式而不是完全匹配。然后,网格生态系统的所有节点将使用相同的能力匹配器,如此处所定义。-cleanUpCycle in ms :指定集线器轮询正在运行的代理以查找超时(即挂起)线程的频率。还必须指定“ 等待节点可用的新测试将超时。发生这种情况时,测试将在尝试启动浏览器之前引发异常。未指定、零或负值表示无限期等待。默认值:600000 -port:服务器将使用的端口号。默认值:4445 -prioritizer 类名:实现 Prioritizer 接口的类。如果要在有队列时对处理新会话请求的顺序进行排序,请指定自定义优先级。默认为 null ( no priority = FIFO ) -registry 类名:实现 GridRegistry 接口的类。指定集线器将使用的注册表。默认值:de.zalando.ep.zalenium.registry.ZaleniumRegistry -角色选项是 [hub]、[node] 或 [standalone]。默认值:集线器 -servlet,-servlets :网格(集线器或节点)将提供的额外 servlet 列表。在命令行上指定多个:-servlet tld.company.ServletA -servlet tld.company.ServletB。servlet 必须存在于路径中: /grid/admin/ServletA /grid/admin/ServletB -timeout, -sessionTimeout in seconds :指定服务器自动终止在过去 X 秒内没有任何活动的会话之前的超时时间. 然后将释放测试槽以供另一个测试使用。这通常用于处理客户端崩溃。对于网格集线器/节点角色,还必须设置 cleanUpCycle。-throwOnCapabilityNotPresent true 或 false :如果为 true,如果当前没有注册兼容代理,集线器将拒绝所有测试请求。如果设置为 false,则请求将排队,直到支持该功能的节点向网格注册。-没有Servlet,-withoutServlets :要禁用的默认(集线器或节点)servlet 列表。仅限高级用例。并非所有默认 servlet 都可以禁用。在命令行上指定多个:-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) at org.openqa.grid.selenium.GridLauncherV3.main(GridLauncherV3.java:82) 原因:de.zalando.ep.zalenium.registry.ZaleniumRegistry.(ZaleniumRegistry. java:74) 在 de.zalando.ep.zalenium.registry.ZaleniumRegistry.(ZaleniumRegistry.

描述 pod 给出:Warning Unhealthy 4m (x12 over 6m) kubelet, aks-agentpool-93668098-0 Readiness probe failed: HTTP probe failed with statuscode: 502

Zalenium 图像版本:dosel/zalenium:3

如果使用 Kubernetes,请指定您的环境,如果相关,您的清单:我使用来自https://github.com/zalando/zalenium/tree/master/docs/k8s/helm的模板

我猜它与 rbac 有关系,因为这部分“初始化 Kubernetes 支持时出错。io.fabric8.kubernetes.client.KubernetesClientException: Operation: [get] for kind: [Pod] with name: [zalenium-zalenium-hub-命名空间中的 6bbd86ff78-m25t2]:[默认] 失败。在“

我为 Helm 图表自动创建的服务帐户 zalenium-zalenium 创建了一个 clusterrole 和 clusterrolebinding。

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
4

2 回答 2

1

问题与 Azure 的 AKS 和 Kubernetes 有关。它已被修复。见 github 问题399

于 2018-06-19T18:42:56.627 回答
0

如果伊格纳西奥(Ignacio)提到的错字不是这种情况,您为什么不这样做

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

注意:如果创建集群角色绑定,则无需指定命名空间,因为它是集群范围的(角色绑定与命名空间一起使用)。

于 2018-06-01T11:21:07.007 回答