我运行helm upgrade --install
来修改我的kubernetes集群的状态,有时会出现这样的错误:
22:24:34 StdErr: E0126 17:24:28.472048 48084 portforward.go:178] lost connection to pod
22:24:34 Error: UPGRADE FAILED: transport is closing
似乎我不是唯一一个,它似乎发生在许多不同的helm命令中。所有这些github问题都有描述或评论提及"失去与pod的连接"或者"运输正在关闭"错误(通常是两者):
虽然阅读数百个github问题评论可能具有教育意义,但通常在切换到堆栈溢出时更快,并且看起来这个问题似乎不存在,所以这里是。希望一些快速症状修复,最终一个或多个根本原因诊断最终会出现在答案中。
答案 0 :(得分:1)
删除分蘖部署并重新创建它只是我在github(here和here)上看到的修复方法。当相同的helm命令反复失败时,这对人们最有帮助(不是间歇性失败,尽管你可以试试)。
删除分蘖(helm'服务器端组件):
kubectl delete deployment -n kube-system tiller-deploy
# deployment "tiller-deploy" deleted
并重新创建它:
helm init --upgrade
# $HELM_HOME has been configured at /root/.helm.
# Tiller (the helm server side component) has been upgraded to the current version.
# Happy Helming!
弹跳分蘖显然无法解决根本原因。希望有一个比这更好的答案,可能来自https://github.com/kubernetes/helm/issues/2025。这是截至2018年2月13日唯一开放的github问题。
答案 1 :(得分:1)
通过将分host主机信息添加到helm install命令中,我得以纠正此问题。
--host=10.111.221.14:443
您可以通过这种方式获得分till IP
$ kubectl get svc -n kube-system tiller-deploy
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
tiller-deploy ClusterIP 10.111.221.14 <none> 44134/TCP 34h
完整命令示例
helm install stable/grafana --name=grafana --host=10.111.221.14:4413
我知道这是个变通办法,但是通过此方法安装后,Helm的所有其他功能都可以正常运行。初始安装后,我无需再次添加主机信息即可执行升级或回滚。希望这会有所帮助!
答案 2 :(得分:0)
内存限制对我造成了此错误。修复了以下问题:
kubectl set resources deployment tiller-deploy --limits=memory=200Mi