我正在使用Kubernetes,我最近更新了kubeconfig
中使用的管理员证书。但是,在我这样做之后,所有helm
命令都失败了:
Error: Get https://cluster.mysite.com/api/v1/namespaces/kube-system/pods?labelSelector=app%3Dhelm%2Cname%3Dtiller: x509: certificate signed by unknown authority
kubectl
按预期工作:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-10-1-0-34.eu-central-1.compute.internal Ready master 42d v1.7.10+coreos.0
ip-10-1-1-51.eu-central-1.compute.internal Ready master 42d v1.7.10+coreos.0
ip-10-1-10-120.eu-central-1.compute.internal Ready <none> 42d v1.7.10+coreos.0
ip-10-1-10-135.eu-central-1.compute.internal Ready <none> 27d v1.7.10+coreos.0
ip-10-1-11-71.eu-central-1.compute.internal Ready <none> 42d v1.7.10+coreos.0
ip-10-1-12-199.eu-central-1.compute.internal Ready <none> 8d v1.7.10+coreos.0
ip-10-1-2-110.eu-central-1.compute.internal Ready master 42d v1.7.10+coreos.0
据我所知,helm
应该使用与kubectl
相同的证书,这让我对kubectl
如何运作感到好奇,但是{{ 1}}不是吗?
这是一个生产集群,内部版本通过头盔图处理,因此必须解决这个问题。
任何提示都将不胜感激。
答案 0 :(得分:8)
作为解决方法,您可以尝试禁用证书验证。 Helm使用kube配置文件(默认为~/.kube/config
)。您可以为insecure-skip-tls-verify: true
部分添加cluster
:
clusters:
- cluster:
server: https://cluster.mysite.com
insecure-skip-tls-verify: true
name: default
您是否已尝试重新安装helm / tiller?
kubectl delete deployment tiller-deploy --namespace kube-system
helm init
另请检查您是否在群集配置中配置了无效证书。
答案 1 :(得分:1)
在我的情况下,错误是由Helm存储库中不受信任的证书引起的。
下载证书并使用--ca-file
选项指定证书即可解决此问题(至少在Helm版本3中)。
for (int i=0;i< latlngs.size();i++) {
LatLng point=latlngs.get(i);
options.position(point);
options.title(Names.get(i));
options.snippet("someDesc");
mMap.addMarker(options);
}
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, user-scalable=no"> <style> div.ex1 { width: 100px; height: 100px; overflow-y: auto; overflow-x: auto; } </style> <script> function lockHorizontalScroll() { document.getElementById("div1").style.overflowX = "hidden"; } </script> </head> <body> <div id="div1" class="ex1"> <img src=https://www.w3schools.com/images/colorpicker.gif width=200 height=200> </div> <Button onclick=lockHorizontalScroll()>Lock H Scroll</Button> </body> </html>
字符串,使用此CA捆绑包验证启用HTTPS的服务器的证书
答案 2 :(得分:1)
在我的情况下,我正在运行一个单一的自我管理功能,并且配置文件也是容器ca文件,因此以下上述答案被抛出以下错误
Error: Kubernetes cluster unreachable: Get "https://XX.XX.85.154:6443/version?timeout=32s": x509: certificate is valid for 10.96.0.1, 172.31.25.161, not XX.XX.85.154
我的配置是
- cluster:
certificate-authority-data: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
server: https://54.176.85.154:6443
insecure-skip-tls-verify: true
所以我不得不删除certificate-authority-data
。
- cluster:
server: https://54.176.85.154:6443
insecure-skip-tls-verify: true
答案 3 :(得分:0)
尽管用--ca-file添加存储库确实可以解决问题,但是当它尝试使用下面发布的命令从该存储库下载文件时,我仍然得到了x509:未知授权机构签名的证书
helm dependency update helm/myStuff
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "myRepo" chart repository
Update Complete. ⎈Happy Helming!⎈
Saving 18 charts
Downloading myService from repo https://myCharts.me/
Save error occurred: could not download https://myCharts.me/stuff.tgz ...
x509: certificate signed by unknown authority
Deleting newly downloaded charts, restoring pre-update state
除了使用--ca-file添加回购协议外,我还需要下载存储库证书并将其安装为“当前用户”:
安装证书后,我还需要重新启动计算机。重新启动后,当您打开浏览器并粘贴回购URL时,它应该在没有警告和不信任站点的情况下进行连接(这样您就可以成功安装证书)。
您可以继续运行该命令,这一次它应该选择证书。
helm dependency update helm/myStuff
....
Saving 18 charts
Downloading service1 from repo https://myCharts.me/
Downloading service2 from repo https://myCharts.me/
....