HELM安装Jenkins无法连接到集群

问题描述 投票:-1回答:1

我使用最新的HELM stablejenkins charts安装在我的单节点集群上进行测试。

  1. 安装NFS供应器。
helm repo add stable https://kubernetes-charts.storage.googleapis.com
helm install nfs-client-provisioner stable/nfs-client-provisioner --version 1.2.8 --set nfs.server=*** --set nfs.path=/k8snfs --set storageClass.name=nfs --wait
  1. 安装稳定的jenkins。 只有自定义的值是serviceType和storageClass。
helm install jenkins stable/jenkins -f newJenkins.values -n jenkins

newJenkins.values有以下内容。

master:
  adminPassword: admin
  serviceType: NodePort
  initContainerEnv:
    - name: http_proxy
      value: "http://***:80"
    - name: https_proxy
      value: "http://***:80"
    - name: no_proxy
      value: "***"
  containerEnv:
    - name: http_proxy
      value: "http://***:80"
    - name: https_proxy
      value: "http://***:80"
    - name: no_proxy
      value: "***"
  javaOpts: >-
    -Dhttp.proxyHost=***
    -Dhttp.proxyPort=80
    -Dhttps.proxyHost=***
    -Dhttps.proxyPort=80
persistence:
  storageClass: nfs
  1. 登录Jenkins,创建 "Kubernetes服务账户 "的Jenkins凭证。
  2. 在 "Configure Clouds "下,我留下所有默认值,并按 "Test Connection"。测试失败。
  3. 在凭证下拉菜单中,我选择了 "secret-text",然后再次按下按钮。 还是失败。

报告的错误是。

Error testing connection https://kubernetes.default: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

当我在pod日志中检查时,我看到的唯一错误是以下内容。

2020-05-06 01:35:13.173+0000 [id=19]    INFO    o.c.j.p.k.KubernetesClientProvider$SaveableListenerImpl#onChange: Invalidating Kubernetes client: kubernetes null

我上网查了一下,很多网站都提到了服务账号的设置,但都没有用。

$ kubectl version --short
Client Version: v1.12.7+1.2.3.el7
Server Version: v1.12.7+1.2.3.el7
$ helm version --short
v3.1.0+gb29d20b

难道还有其他步骤吗?

jenkins kubernetes kubernetes-helm
1个回答
0
投票

该错误是Java虚拟机报告的常见错误信息。当Java环境没有关于HTTPS服务器的信息来验证它是一个有效的网站时,就会造成这种情况。有时证书是由内部的Root CA提供的,或者是自签名证书。这有时会让JVM感到困惑,因为它不是Java "受信任 "列表中可以提供这些证书的人之一。

试着将你的Java选项添加到 values.yaml 文件应该是这样的。

  javaOpts: >-
    -Dhttp.proxyHost=***
    -Dhttp.proxyPort=80
    -Dhttps.proxyHost=***
    -Dhttps.proxyPort=80
    -Djavax.net.ssl.trustStore=$JAVA_HOME/jre/lib/security/cacert 
    -Djavax.net.ssl.trustStorePassword=changeit

EDIT:

尝试更改权限文件的位置,添加调试选项(-Djavax.net.debug=ssl)用于查看更详细的日志。通常情况下,如果没有这个参数,我们将无法看到更多的详细日志。

  javaOpts: >-
    -Dhttp.proxyHost=***
    -Dhttp.proxyPort=80
    -Dhttps.proxyHost=***
    -Dhttps.proxyPort=80
    -Djavax.net.ssl.trustStore=$JAVA_HOME/lib/security/cacerts
    -Djavax.net.ssl.trustStorePassword=changeit
    -Djavax.net.debug=ssl

如果安全不是这个框的核心问题,你可以在Jenkins的web UI中到 Manage Jenkins > Manage Plugins > tab Available and search for "skip-certificate-check" plugin.

安装后,这个问题应该会得到解决。谨慎使用这个插件,因为从安全角度来看,不建议使用。

另外,repo稳定版很快就会被废弃,不再更新。我建议使用jenkins图表从 舵机枢纽.

请看一下。认证路径-jenkins, 补证, 添加路径证书.

© www.soinside.com 2019 - 2024. All rights reserved.