2017-06-06 7 views
0

私はもともとCrashBackoffLoopに詰まっているようなジョブを実行しようとしていました。Kubernetesには、クリアされていないようなエラー状態のポッドがたくさんあります。

apiVersion: batch/v1 
kind: Job 
metadata: 
    name: es-setup-indexes 
    namespace: elk-test 
spec: 
    template: 
    metadata: 
     name: es-setup-indexes 
    spec: 
     containers: 
     - name: es-setup-indexes 
     image: appropriate/curl 
     command: ['curl -H "Content-Type: application/json" -XPUT http://elasticsearch.elk-test.svc.cluster.local:9200/_template/filebeat [email protected]/etc/filebeat/filebeat.template.json'] 
     volumeMounts: 
     - name: configmap-volume 
      mountPath: /etc/filebeat/filebeat.template.json 
      subPath: filebeat.template.json 
     restartPolicy: Never 

     volumes: 
     - name: configmap-volume 
      configMap: 
      name: elasticsearch-configmap-indexes 

私は仕事を削除しようとしたが、それだけで私は、次のコマンドを実行した場合に動作します:その後

kubectl delete job es-setup-indexes --cascade=false 

を実行しているときに私は気づいた:

kubectl get pods -w 
ここでサービスファイルでした

エラー状態のポッドがたくさんあるので、それらをきれいにする方法がありません。私も気づいた

$ kubectl get jobs --all-namespaces                    
NAMESPACE  NAME    DESIRED SUCCESSFUL AGE 
kube-system configure-calico 1   1   46d 

es-setup-indexes-zvx9c 0/1  Error  0   20h 
es-setup-indexes-zw23w 0/1  Error  0   15h 
es-setup-indexes-zw57h 0/1  Error  0   21h 
es-setup-indexes-zw6l9 0/1  Error  0   16h 
es-setup-indexes-zw7fc 0/1  Error  0   22h 
es-setup-indexes-zw9bw 0/1  Error  0   12h 
es-setup-indexes-zw9ck 0/1  Error  0   1d 
es-setup-indexes-zwf54 0/1  Error  0   18h 
es-setup-indexes-zwlmg 0/1  Error  0   16h 
es-setup-indexes-zwmsm 0/1  Error  0   21h 
es-setup-indexes-zwp37 0/1  Error  0   22h 
es-setup-indexes-zwzln 0/1  Error  0   22h 
es-setup-indexes-zx4g3 0/1  Error  0   11h 
es-setup-indexes-zx4hd 0/1  Error  0   21h 
es-setup-indexes-zx512 0/1  Error  0   1d 
es-setup-indexes-zx638 0/1  Error  0   17h 
es-setup-indexes-zx64c 0/1  Error  0   21h 
es-setup-indexes-zxczt 0/1  Error  0   15h 
es-setup-indexes-zxdzf 0/1  Error  0   14h 
es-setup-indexes-zxf56 0/1  Error  0   1d 
es-setup-indexes-zxf9r 0/1  Error  0   16h 
es-setup-indexes-zxg0m 0/1  Error  0   14h 
es-setup-indexes-zxg71 0/1  Error  0   1d 
es-setup-indexes-zxgwz 0/1  Error  0   19h 
es-setup-indexes-zxkpm 0/1  Error  0   23h 
es-setup-indexes-zxkvb 0/1  Error  0   15h 
es-setup-indexes-zxpgg 0/1  Error  0   20h 
es-setup-indexes-zxqh3 0/1  Error  0   1d 
es-setup-indexes-zxr7f 0/1  Error  0   22h 
es-setup-indexes-zxxbs 0/1  Error  0   13h 
es-setup-indexes-zz7xr 0/1  Error  0   12h 
es-setup-indexes-zzbjq 0/1  Error  0   13h 
es-setup-indexes-zzc0z 0/1  Error  0   16h 
es-setup-indexes-zzdb6 0/1  Error  0   1d 
es-setup-indexes-zzjh2 0/1  Error  0   21h 
es-setup-indexes-zzm77 0/1  Error  0   1d 
es-setup-indexes-zzqt5 0/1  Error  0   12h 
es-setup-indexes-zzr79 0/1  Error  0   16h 
es-setup-indexes-zzsfx 0/1  Error  0   1d 
es-setup-indexes-zzx1r 0/1  Error  0   21h 
es-setup-indexes-zzx6j 0/1  Error  0   1d 
kibana-kq51v 1/1  Running 0   10h 

しかし、私は仕事を見れば私はもうそれに関連する何を取得:私はポッドを取得し実行したときにここでは、出力のほんの小さなサンプルですkubectlは応答が非常に遅いようです。ポッドが継続的に再起動しようとしているのか、何らかの壊れている状態にあるのかどうかはわかりませんが、もし私がkubernetesのような別の問題に遭遇していないのでトラブルシューティングの方法を知らせることができれば素晴らしいでしょう。

KUBE情報:

$ kubectl version 
Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.1", GitCommit:"b0b7a323cc5a4a2019b2e9520c21c7830b7f708e", GitTreeState:"clean", BuildDate:"2017-04-03T20:44:38Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"} 
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.1", GitCommit:"b0b7a323cc5a4a2019b2e9520c21c7830b7f708e", GitTreeState:"clean", BuildDate:"2017-04-03T20:33:27Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"} 
+0

の出力について何: $ kubectlあなたはポッドを削除しようとしましたどのようにポッド turkenh

+0

を記述する? '' --cascade = false' 'だけでうまくいくとはどういう意味ですか?エラーはありましたか? – johnharris85

+0

@turkenhだから私はそのコマンドを実行してしまった。私はどのノードが走っているのかを見て、それらをssh'dして、docker ps -aでそのイメージとマッチした古いドッカー画像を手動ですべて削除しました。古いコンテナを削除した後、kubectlは手作業で削除したにもかかわらずまだそれらを報告しているようです。もし私が多分もっと多くのノードを回転させて新しいノードへの移行を試み、古いものを分解しなければならないのか、あるいはkubeに状態を同期させる方法を見つけ出すべきかどうかはわかりません。ドッカー。 – xamox

答えて

0

ソリューションは、@ johnharris85コメントで述べたようでした。私はすべてのポッドを手動で削除しなければならなかった。

kubectl get pods -w | tee all-pods.txt 

その後、フィルタリングし、私が望んでいたものだけで削除するには、すべての私のポッドをダンプ:私は次のように実行されたことをすることができません。

kubectl delete pod $(more all-pods.txt | grep es-setup-index | awk '{print $1}') 

注:は、私はそれがそれらをすべて削除するには、約1〜2時間かかった、およそ9292ポッドを持っていました。ここで

0

あなたはそれを修正する簡単な方法です:)

kubectl get pods -a | grep Error | cut -d' ' -f 1 | xargs kubectl delete pod 
+0

ありがとうございます。ああ、私は前にxargsを使っていたはずだったので、それは並行して実行されていたのと比べて、 – xamox

関連する問題