安装Helm Tiller Kubernetes时使用的内部证书

时间:2019-01-12 20:14:07

标签: kubernetes gitlab kubernetes-helm

执行kubectl -n gitlab-managed-apps logs install-helm时触发以下错误。

我尝试重新生成证书,并绕过证书检查。不知何故,它使用了我的内部证书而不是源证书。

root@dev # kubectl -n gitlab-managed-apps logs install-helm
+ helm init --tiller-tls --tiller-tls-verify --tls-ca-cert /data/helm/helm/config/ca.pem --tiller-tls-cert /data/helm/helm/config/cert.pem --tiller-tls-key /data/helm/helm/config/key.pem
Creating /root/.helm 
Creating /root/.helm/repository 
Creating /root/.helm/repository/cache 
Creating /root/.helm/repository/local 
Creating /root/.helm/plugins 
Creating /root/.helm/starters 
Creating /root/.helm/cache/archive 
Creating /root/.helm/repository/repositories.yaml 
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com 
Error: Looks like "https://kubernetes-charts.storage.googleapis.com" is not a valid chart repository or cannot be reached: Get https://kubernetes-charts.storage.googleapis.com/index.yaml: x509: certificate is valid for *.tdebv.nl, not kubernetes-charts.storage.googleapis.com

这里可能是什么问题?下面的屏幕截图是Gitlab给我的错误(信息也不多)。

enter image description here

3 个答案:

答案 0 :(得分:2)

遇到相同的问题后,我终于找到了解决方案:

必须在主节点和工作节点上的/etc/resolv.conf文件中搜索并删除search XYZ.com条目。

如果您使用的是Jelastic,则每次重新启动后都必须删除此条目。它会被Jelastic自动添加。我已经联系过他们,所以也许他们会尽快解决。

答案 1 :(得分:1)

使用以下内容创建“〜/ .helm / repository / repositories.yaml”即可解决问题。

cat << EOF >> ~/.helm/repository/repositories.yaml
apiVersion: v1
repositories:
- caFile: ""
  cache: ~/.helm/repository/cache/stable-index.yaml
  certFile: ""
  keyFile: ""
  name: stable
  password: ""
  url: https://kubernetes-charts.storage.googleapis.com
  username: ""
- caFile: ""
  cache: ~/.helm/repository/cache/local-index.yaml
  certFile: ""
  keyFile: ""
  name: local
  password: ""
  url: http://127.0.0.1:8879/charts
  username: ""
EOF

#helm init

答案 2 :(得分:0)

在Debian Buster的Calico网络堆栈上,我在Kubernetes上遇到了同样的问题。

检查了许多配置和参数后,我最终通过将转发规则的策略更改为ACCEPT使其生效。这清楚表明问题出在防火墙周围。

运行iptables -L给了我以下警告:#警告:iptables-legacy表存在,使用iptables-legacy查看它们

list命令给出的输出不包含任何Calico规则。运行iptables-legacy -L向我展示了印花布规则,因此现在看来为什么它不起作用了。因此Calico似乎使用了旧版界面。

问题是Debian替代了iptables-nft,您可以通过以下方式进行检查:

ls -l / etc / alternatives | grep iptables

执行以下操作:

update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
update-alternatives --set arptables /usr/sbin/arptables-legacy
update-alternatives --set ebtables /usr/sbin/ebtables-legacy

现在一切正常!感谢Kubernetes Slack频道的 Long 指出了解决之道。