web-dev-qa-db-ja.com

kubernetes helm:「ポッドへの接続が失われました」および「トランスポートが閉じています」エラー

走る 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

私だけではないようで、さまざまなヘルムコマンドで発生するようです。これらのgithubの問題にはすべて、「ポッドへの接続が失われました」または「トランスポートが閉じています」というエラー(通常は両方)についての説明またはコメントがあります。

何百ものgithubの問題のコメントを読むことは教育に役立ちますが、通常は、stackoverflowの追跡に切り込む方が速く、この質問はまだ存在していないようでした。うまくいけば、いくつかの迅速な症状の修正と、最終的には1つ以上の根本原因の診断が回答に含まれます。

9
burnettk

Helm installコマンドにtiller Host情報を追加することで、これを修正できました。

--Host=10.111.221.14:443

この方法でTiller 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の他のすべての機能は、この方法でインストールした後に適切に実行されています。アップグレードまたはロールバックを実行するために、初期インストール後にホスト情報を再度追加する必要はありませんでした。お役に立てれば!

1
CastIronClay

Tillerデプロイメントを削除して再作成するのは、githubで見た修正だけです( here および here )。これは、同じhelmコマンドが繰り返し失敗する場合に役立ちます(断続的な失敗ではなく、試行することはできます)。

tiller(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
burnettk

メモリの制限が原因でこのエラーが発生しました。次のように修正しました:

kubectl set resources deployment tiller-deploy --limits=memory=200Mi
1
Eric Nelson