2017-06-06 66 views
0

我最初试图运行一个似乎卡在CrashBackoffLoop中的Job。这里曾是服务文件: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 

我会在错误状态下得到一个TON的豆荚,我看不到清理它们的方法。这里只是输出的一个小样本,当我运行Get荚:

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 get jobs --all-namespaces                    
NAMESPACE  NAME    DESIRED SUCCESSFUL AGE 
kube-system configure-calico 1   1   46d 

我也注意到, kubectl似乎反应缓慢。我不知道这些豆荚是不断尝试重新启动还是处于某种不稳定的状态,但如果有人能让我知道如何排除故障,那么这将非常棒,因为我还没有在kubernetes中遇到类似的问题。

库贝信息:

$ 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所以我最终运行了这个命令。我看到他们运行的节点,进入这些节点并手动删除所有与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}') 

注:我有大约9292豆荚,花了约1-2小时,以将它们全部删除。

0

给你一个快速的方法来解决它:)

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

谢谢。是的,我应该先使用xargs,这样它才能与串行并行完成。 – xamox