我使用这个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。