为什么我从我的 docker 映像中得到 CrashLoopBackOff 并且日志没有说明出了什么问题?



我使用这个Dockerfile用Docker创建了一个映像,并将其推送到Docker集线器。

FROM gcc AS builder
RUN mkdir -p /opt
COPY ./generate-tpch-dbgen.sh /opt/generate-tpch-dbgen.sh
WORKDIR /opt
RUN chmod +x /opt/generate-tpch-dbgen.sh
ENTRYPOINT ["/bin/sh","/opt/generate-tpch-dbgen.sh"]

这是我在图像中运行的CCD_ 2脚本。

#!/bin/sh
# download
git clone https://github.com/electrum/tpch-dbgen.git
# replace variables
cd tpch-dbgen
sed -i '/CC      =/cCC=gcc' makefile.suite
sed -i '/DATABASE=/cDATABASE=INFORMIX' makefile.suite
sed -i '/MACHINE =/cMACHINE=LINUX' makefile.suite
sed -i '/WORKLOAD =/cWORKLOAD=TPCH' makefile.suite
# compile
make -f makefile.suite
# run the tpch-dbgen to generate data with database factor of 0.1GB
mkdir data && cd data
cp ../dbgen . && cp ../dists.dss .
./dbgen -f -s 0.1
ls -l
# create the datarate.txt file
mkdir -p /tmp
echo "1000000000" > /tmp/datarate.txt

然后,我使用Kubernetes(minikube(从部署对象创建一个pod。我希望此映像可用,而不是终止,因为我将共享脚本/opt/generate-tpch-dbgen.sh生成的映像中的目录/opt/tpch-dbgen/data

apiVersion: apps/v1
kind: Deployment
metadata:
name: tpch-dbgen-deployment
spec:
replicas: 1
selector:
matchLabels:
component: tpch-dbgen
template:
metadata:
labels:
component: tpch-dbgen
spec:
containers:
- name: tpch-dbgen
image: felipeogutierrez/tpch-dbgen
imagePullPolicy: Always

我在吊舱上收到CrashLoopBackOff错误。但日志显示我的文件在那里,我看不到任何其他需要修复的相关错误。我想我的部署文件有问题,但日志没有给我任何提示,或者我不知道去哪里找。我的部署有什么问题?

felipe@cow-11:~/workspace-scala/explore-flink$ kubectl get pods
NAME                                     READY   STATUS             RESTARTS   AGE
tpch-dbgen-deployment-57587d8748-gd4xs   0/1     CrashLoopBackOff   6          7m34s
felipe@cow-11:~/workspace-scala/explore-flink$ kubectl describe pods tpch-dbgen-deployment-57587d8748-gd4xs
Name:         tpch-dbgen-deployment-57587d8748-gd4xs
Namespace:    default
Priority:     0
Node:         minikube/192.168.99.100
Start Time:   Wed, 23 Sep 2020 09:38:11 +0200
Labels:       component=tpch-dbgen
pod-template-hash=57587d8748
Annotations:  <none>
Status:       Running
IP:           172.17.0.3
IPs:
IP:           172.17.0.3
Controlled By:  ReplicaSet/tpch-dbgen-deployment-57587d8748
Containers:
tpch-dbgen:
Container ID:  docker://3ddf1b5306707f4ba60a35f08306f1a621a744e5ce08c7e5806594ba80865fba
Image:         felipeogutierrez/tpch-dbgen
Image ID:      docker-pullable://felipeogutierrez/tpch-dbgen@sha256:079c7f009a8cb93830cb11ff71bdba122795b7c8750e65f308dc43174252f71a
Port:          <none>
Host Port:     <none>
Command:
/bin/sh
-c
Args:
ls ; pwd ; ./generate-tpch-dbgen.sh ; ls
State:          Waiting
Reason:       CrashLoopBackOff
Last State:     Terminated
Reason:       Completed
Exit Code:    0
Started:      Wed, 23 Sep 2020 09:45:10 +0200
Finished:     Wed, 23 Sep 2020 09:45:20 +0200
Ready:          False
Restart Count:  6
Environment:    <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-7snfd (ro)
Conditions:
Type              Status
Initialized       True 
Ready             False 
ContainersReady   False 
PodScheduled      True 
Volumes:
default-token-7snfd:
Type:        Secret (a volume populated by a Secret)
SecretName:  default-token-7snfd
Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type     Reason     Age                     From               Message
----     ------     ----                    ----               -------
Normal   Scheduled  7m43s                   default-scheduler  Successfully assigned default/tpch-dbgen-deployment-57587d8748-gd4xs to minikube
Normal   Pulled     7m40s                   kubelet, minikube  Successfully pulled image "felipeogutierrez/tpch-dbgen" in 1.732811715s
Normal   Pulled     7m24s                   kubelet, minikube  Successfully pulled image "felipeogutierrez/tpch-dbgen" in 1.522490498s
Normal   Pulled     6m58s                   kubelet, minikube  Successfully pulled image "felipeogutierrez/tpch-dbgen" in 1.570829385s
Normal   Created    6m23s (x4 over 7m40s)   kubelet, minikube  Created container tpch-dbgen
Normal   Pulled     6m23s                   kubelet, minikube  Successfully pulled image "felipeogutierrez/tpch-dbgen" in 3.077114721s
Normal   Started    6m22s (x4 over 7m40s)   kubelet, minikube  Started container tpch-dbgen
Normal   Pulling    5m23s (x5 over 7m42s)   kubelet, minikube  Pulling image "felipeogutierrez/tpch-dbgen"
Normal   Pulled     5m21s                   kubelet, minikube  Successfully pulled image "felipeogutierrez/tpch-dbgen" in 1.834155671s
Warning  BackOff    2m33s (x19 over 7m13s)  kubelet, minikube  Back-off restarting failed container
felipe@cow-11:~/workspace-scala/explore-flink$ kubectl logs tpch-dbgen-deployment-57587d8748-gd4xs
Cloning into 'tpch-dbgen'...
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o build.o build.c
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o driver.o driver.c
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o bm_utils.o bm_utils.c
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o rnd.o rnd.c
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o print.o print.c
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o load_stub.o load_stub.c
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o bcd2.o bcd2.c
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o speed_seed.o speed_seed.c
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o text.o text.c
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o permute.o permute.c
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o rng64.o rng64.c
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64  -O -o dbgen build.o driver.o bm_utils.o rnd.o print.o load_stub.o bcd2.o speed_seed.o text.o permute.o rng64.o -lm
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o qgen.o qgen.c
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o varsub.o varsub.c
gcc -g -DDBNAME="dss" -DLINUX -DINFORMIX -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64  -O -o qgen build.o bm_utils.o qgen.o rnd.o varsub.o text.o bcd2.o permute.o speed_seed.o rng64.o -lm
TPC-H Population Generator (Version 2.14.0)
Copyright Transaction Processing Performance Council 1994 - 2010
total 105448
-rw-r--r-- 1 root root  2426114 Sep 23 07:45 customer.tbl
-rwxr-xr-x 1 root root   116600 Sep 23 07:45 dbgen
-rw-r--r-- 1 root root    11815 Sep 23 07:45 dists.dss
-rw-r--r-- 1 root root 74246996 Sep 23 07:45 lineitem.tbl
-rw-r--r-- 1 root root     2224 Sep 23 07:45 nation.tbl
-rw-r--r-- 1 root root 16893122 Sep 23 07:45 orders.tbl
-rw-r--r-- 1 root root  2391090 Sep 23 07:45 part.tbl
-rw-r--r-- 1 root root 11728193 Sep 23 07:45 partsupp.tbl
-rw-r--r-- 1 root root      389 Sep 23 07:45 region.tbl
-rw-r--r-- 1 root root   139625 Sep 23 07:45 supplier.tbl

pod中的容器退出,状态为0,这意味着容器中的命令已成功完成。您尚未为容器指定任何restartPolicy,因此默认值为Always。自从你的容器完成后——由于它的重新启动策略,它将被重新启动(实际上,在使用部署时,你甚至无法更改它——它总是Always.

当您有一些长时间运行的进程,并且您希望确保这些进程的所有实例都已启动,并且可以在需要时推出到新版本时,应该使用该部署。

对于那些做了某件事然后退出的一次性流程,你最好使用Jobs。

最新更新