Zalenium Readiness探测失败:HTTP探测失败,状态码为:502

时间:2018-06-01 09:46:37

标签: kubernetes kubernetes-helm zalenium

我正在尝试在Azure中新部署的aks Kuberbetes(1.9.6)群集中部署zalenium helm图表。但我不能让它发挥作用。该pod正在提供以下日志:

  

[bram @ xforce zalenium] $ kubectl logs -f zalenium-zalenium-hub-6bbd86ff78-m25t2找到Kubernetes服务帐户。复制Dashboard的文件... cp:无法创建常规文件' /home/seluser/videos/index.html' ;:权限被拒绝cp:无法创建目录' / home / seluser / videos / css& #39;:权限被拒绝cp:无法创建目录' / home / seluser / videos / js':权限被拒绝启动Nginx反向代理...启动Selenium Hub ... ........ ..08:49:14.052 [主要] INFO oogrid.selenium.GridLauncherV3 - Selenium构建信息:版本:' 3.12.0',版本:'未知' 08:49:14.120 [主要] INFO oogrid.selenium.GridLauncherV3 - 在端口4445上启动Selenium Grid hub ... 08:49:15.125 [main] INFO dzezckKubernetesContainerClient - 初始化Kubernetes支持..08:49:15.650 [main ] WARN dzezckKubernetesContainerClient - 初始化Kubernetes支持时出错。 io.fabric8.kubernetes.client.KubernetesClientException:操作:[get] for kind:[Pod]名称:[zalenium-zalenium-hub-6bbd86ff78-m25t2]在命名空间中:[default]失败。 at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:62)at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:71)at io.fabric8.kubernetes.client.dsl.base .baseOperation.getMandatory(BaseOperation.java:206)at io.fabric8.kubernetes.client.dsl.base.BaseOperation.get(BaseOperation.java:162)at de.zalando.ep.zalenium.container.kubernetes.KubernetesContainerClient。( KubernetesContainerClient.java:87)at dezaza.ep.z. .zalando.ep.zalenium.proxy.DockeredSeleniumStarter。(DockeredSeleniumStarter.java:59)at de.zalando.ep.zalenium.registry.ZaleniumRegistry。(ZaleniumRegistry.java:74)at dezaza.ep.zalenium.registry.ZaleniumRegistry 。(ZaleniumRegistry.java:62)at sun.reflect.NativeConstructorAccesso位于sun.reflect.NalConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)的sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)的java.lang.reflect.Constructor.newInstance(构造函数)中的rImpl.newInstance0(Native Method)。 java:423)在org.openqa.grid.web.Hub。(Hub.java:93)的java.lang.Class.newInstance(Class.java:442)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)引起:javax。 net.ssl.SSLPeerUnverifiedException:主机名kubernetes.default.svc未经验证:证书:sha256 / OyzkRILuc6LAX4YnMAIGrRKLmVnDgLRvCasxGXDhSoc = DN:CN = client,O = system:masters subjectAltNames:[10.0.0.1] at okhttp3.internal.connection.RealConnection.connectTls( RealConnection.java:308)okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.ja) va:268)okhttp3.internal.connection.RealConnection.connect(RealConnection.java:160)at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:256)okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation) .java:134)okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:113)at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)at okhttp3.internal.http.RealInterceptorChain.proceed( RealInterceptorChain.java:147)okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:147)okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)at okhttp3.internal.http.RealInterceptorChain。继续( RealInterceptorChain.java:147)okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125)at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)at okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121)位于okhttp3.internal的okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)的io.fabric8.kubernetes.client.utils.ImpersonatorInterceptor.intercept(ImpersonatorInterceptor.java:56)。 http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)at io.fabric8.kubernetes.client.utils.HttpClientUtils $ 2.intercept(HttpClientUtils.java:107)at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) )okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)at okhttp3.RealCall.execute(RealCall.java:77)at io.fabric8.kubernetes .client.dsl.base.Ope rationSupport.handleResponse(OperationSupport.java:379)at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:344)at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleGet( OperationSupport.java:313)at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleGet(OperationSupport.java:296)at io.fabric8.kubernetes.client.dsl.base.BaseOperation.handleGet(BaseOperation.java: 770)at io.fabric8.kubernetes.client.dsl.base.BaseOperation.getMandatory(BaseOperation.java:195)... 16个常见帧省略08:49:15.651 [main] INFO dzezckKubernetesContainerClient - 即将清理任何左边Zalenium创建的selenium pod用法:[options]选项: - debug,-debug:启用LogLevel.FINE。默认值:false --version,-version显示版本并退出。默认值:false -browserTimeout(以秒为单位):WebDriver命令运行时允许浏览器会话挂起的秒数(例如:driver.get(url))。如果在WebDriver命令仍在处理时达到超时,则会话将退出。最小值为60.未指定,零或负值意味着无限期等待。 -matcher,-capabilityMatcher类名:实现CapabilityMatcher接口的类。指定集线器将遵循的逻辑,以定义是否可以将请求分配给节点。例如,如果您希望匹配进程在指定浏览器版本时使用正则表达式而不是完全匹配。然后,网格生态系统的所有节点将使用相同的capabilityMatcher,如此处所定义。 -cleanUpCycle in ms:指定集线器为超时(即挂起)线程轮询运行代理的频率。还必须指定"超时"选项-custom:自定义网格扩展的逗号分隔键=值对。不推荐 - 可能会在将来的修订版中弃用。示例:-custom myParamA = Value1,myParamB = Value2 -host IP或主机名:通常自动确定。最常用于异国网络配置(例如,带VPN的网络)默认值:0.0.0.0 -hubConfig文件名:JSON文件(遵循grid2格式),它定义集线器属性-jettyThreads,-jettyMaxThreads:Jetty的最大线程数。未指定,零或负值表示将使用Jetty默认值(200)。 -log filename:用于记录的文件名。如果省略,将记录到STDOUT -maxSession可以在节点上同时运行的最大测试次数,而不管浏览器使用的是-newSessionWaitTimeout,以毫秒为单位:等待节点可用的新测试的时间将是时间出。发生这种情况时,测试将在尝试启动浏览器之前抛出异常。未指定,零或负值意味着无限期等待。默认值:600000 -port:服务器将使用的端口号。默认值:4445 -prioritizer类名:实现Prioritizer接口的类。如果要对存在队列时处理新会话请求的顺序进行排序,请指定自定义优先级。默认为null(无优先级= FIFO)-registry类名:实现GridRegistry接口的类。指定集线器将使用的注册表。默认值:de.zalando.ep.zalenium.registry.ZaleniumRegistry -role选项是[hub],[node]或[standalone]。默认值:hub -servlet,-servlets:网格(集线器或节点)将提供的额外servlet列表。在命令行上指定multiple:-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,则请求将排队,直到支持该功能的节点向网格注册。 -withoutServlet,-withoutServlets:要禁用的默认(中心或节点)servlet的列表。仅限高级用例。并非所有默认servlet都可以禁用。在命令行上指定multiple:-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)引起:de.zalando.ep.zalenium.registry.ZaleniumRegistry的java.lang.ExceptionInInitializerError。(ZaleniumRegistry。 java:74)at de.zalando.ep.zalenium.registry.ZaleniumRegistry。(ZaleniumRegistry.java:62)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62 )at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at java.lang.Class.newInstance(Class.java:442)at org.openqa.grid.web.Hub。(Hub.java:93) ... 3更多引起:java.util.TreeMap.putAll(TreeMap.java:313)的java.lang.NullPointerException at io.fabric8.kubernetes.client.dsl.base.BaseOperation.withLabels(BaseOperation.java:411 )来自de.zalando.ep.zalenium.container.kubernetes.KubernetesContainerClient.deleteSeleniumPods(KubernetesContainerClient.java:393)的io.fabric8.kubernetes.client.dsl.base.BaseOperation.withLabels(BaseOperation.java:48)。 zalando.ep.zalenium.container.kubernetes.KubernetesContainerClient.initialiseContainerEnvironment(KubernetesContainerClient.java:339),位于de.zalando.ep.zalenium的de.zalando.ep.zalenium.container.ContainerFactory.createKubernetesContainerClient(ContainerFactory.java:38)。 de.zalando.ep.zalenium.proxy.DockeredSeleniumStarter上的container.ContainerFactory.getContainerClient(ContainerFactory.java:22)。(DockeredSeleniumStarter.java:59) ... 11更多............................................. .................................................. .................................................. .......................................... GridLauncher 1分钟后无法启动,失败...%收到的总百分比%Xferd平均速度时间时间时间当前Dload上传总剩余速度100 182 100 182 0 0 36103 0 - : - : - - : - : - - : - - : - 45500

描述窗格给出: 警告不健康的4米(x12超过6米)kubelet,aks-agentpool-93668098-0准备就绪探测失败:HTTP探测失败,状态码为:502

Zalenium Image Version(s): dosel / zalenium:3

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

中的模板

我想由于这部分,它必须与rbac做点什么 "初始化Kubernetes支持时出错。 io.fabric8.kubernetes.client.KubernetesClientException:操作:[get] for kind:[Pod]名称:[zalenium-zalenium-hub-6bbd86ff78-m25t2]在命名空间中:[default]失败。 at"

我为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

2 个答案:

答案 0 :(得分:0)

如果伊格纳西奥提到的拼写错误,那么为什么不这么做呢

@Document(collection = "consumer")
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class ConsumerEntity extends AbstractAuditEntity {

    @Id
    private ObjectId id;
}

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

答案 1 :(得分:0)

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