走る 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つ以上の根本原因の診断が回答に含まれます。
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の他のすべての機能は、この方法でインストールした後に適切に実行されています。アップグレードまたはロールバックを実行するために、初期インストール後にホスト情報を再度追加する必要はありませんでした。お役に立てれば!
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の問題です。
メモリの制限が原因でこのエラーが発生しました。次のように修正しました:
kubectl set resources deployment tiller-deploy --limits=memory=200Mi