2017-10-30 20 views
2

ICP V2.1がRHEL VMWareイメージにインストールされています。イメージを再起動した後、ICPがドキュメントの最初の既知の問題であると思われるもので起動できません(Kubernetesコントローラマネージャは、マスタまたはクラスタの再起動後に起動できません)。しかし、規定された解決策は、私のシステムを稼働させません。ここでマシンの再起動後にICPが起動しない

が実行されているポッドのリストです:

NAME READY STATUSは8つの20H K8Sを実行している14 20H filebeat-DS-AMD64-mvcsj 1/1を実行AGE 更紗・ノードのamd64-dtl47 2/2を再起動します7つの20H K8S-mariadb-192.168.232.131 1/1 7を実行して実行1/1 -etcd-192.168.232.131 20H K8S-マスター192.168.232.131 2/3 CrashLoopBackOff 15 17メートル K8S-プロキシ192.168.232.131 1/1ランニング7 20h 計量リーダー-amd64-gkwt4 1/1ランニング7 20h 監視プロメテウス-nodeexporter-AMD64-sghrv 1/1 K8S-マスター192.168.232.131ポッドを取り外し7 20H

を実行し、それが唯一の再起動CrashLoopBackOff状態に戻ってそれを置くことを可能にします。コントローラマネージャのログの最後の行がどのように表示されるかを次に示します。

F1029 23:55:07.345341 1 controllermanager.go:176エラーのビルドエラー:サーバからサポートされているリソースを取得できませんでした:サーバの完全なリストを取得できませんAPI:servicecatalog.k8s.io/v1alpha1:サーバでエラーが発生しました(「エラー: 'ダイヤルTCP 10.0.0.145:443:getsockopt:接続が拒否されました」\ n到達しようとしています:' https://10.0.0.145:443/apis/servicecatalog.k8s.io/v1alpha1 '」)、要求が成功するのを妨げました

ポッドを取り外したり、故障したコントローラのマスタードッカーコンテナを直接取り外すことは効果がありません。別のサービスがまだ開始されていないか、開始されていないようです。問題が解決するかどうかを確認するために数時間待ったが、役に立たなかった。

おかげで... https://github.com/kubernetes/kubernetes/pull/49495の修正前

答えて

1

は、コントローラマネージャはregistered extension-apiserverの準備ができていない場合は起動に失敗しましたkuberentes。 ICPでは、サービスカタログは拡張APIとして実装されています。

通常、ICPマスターを再起動した後、kubeletはk8s管理サービスを静的ポッドとして開始します。その後、kubernetes apiサーバーからポッド/ノード/サービス情報を取得し、カタログapiサービスを含むすべてのポッドを起動します。その場合、クラスタ全体が回復されます。

しかし、kubeletがkuberentes apiサーバーからポッド情報を取得してすべてのポッドを開始すると、kubernetes apiサーバーからのノード情報がまだ取得されていない競合状態が発生します。その結果、kubeletは、nodeSelectorが満たされていないためカタログAPIサービスを開始できませんでした。クラスタ全体が回復できませんでした。

ICP 2.1.0.1の次のリリースでは、kuberentesはhttps://github.com/kubernetes/kubernetes/pull/49495の修正で1.8.2にアップグレードされます。問題は完全に解決されます。

これまでに、次の回避方法を試すことができました。

Use the -s flag form of the kubectl command if your token has expired after restart and you no longer have access to the GUI to re-establish it.

  1. v1alpha1.servicecatalog.k8sのapiservicesを削除します。サービスカタログはrでサービスカタログapiservicesを回復

  2. を開始するまで

    kubectl delete apiservices v1alpha1.servicecatalog.k8s.io

    kubectl -s 127.0.0.1:8888 delete apiservices v1alpha1.servicecatalog.k8s.io

  3. 死んコントローラマネージャを削除

    docker rm <k8s controller manager>

  4. をioを待ちv1alpha1.servicecatalog.k8s.io

    kubectl apply -f cluster/cfc-components/service-catalog/apiregistration.yaml

    kubectl -s 127.0.0.1:8888 apply -f cluster/cfc-components/service-catalog/apiregistration.yaml

+0

のapiserviceちょうどあなたにログを電子メールで送信電子レジスター。興味深いことに、ps -aは、最後に終了したのが41時間前であることを示し、複数の再起動時から再起動していないことを示しています。 – robo

+0

ありがとう、それは問題を解決しました。 – robo

関連する問題