我正在使用安装在单节点群集上的最新HELM稳定/詹金斯图表进行测试。
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
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
报告的错误是。
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
还有另外一步吗?
答案 0 :(得分:0)
该错误是Java虚拟机报告的常见错误消息。当Java环境没有有关HTTPS服务器的信息以验证其为有效网站时,会导致这种情况。有时,证书是由内部根CA提供的,或者是自签名证书。有时这会使JVM感到困惑,因为它不是Java“受信任”列表中可以提供这些证书的人之一。
尝试在values.yaml
文件中添加Java选项应如下所示:
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
编辑:
尝试更改授权文件的位置,添加调试选项(-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
。
在安装此组件时,应解决此问题。请谨慎使用此插件,因为从安全角度来看,建议不要使用它。
也将很快弃用该存储库,并且不会对其进行更新。我建议使用Helm Hub 中的詹金斯图表。
请查看:certification-path-jenkins,adding-ca-cert,adding-path-certs。