问题:
通过yaml文件创建pod时,执行完yaml文件,过一会就开始报错说Back-off restarting failed container
。
查看pod状态一致处于CrashLoopBackOff
原理:
Back-off restarting failed container的Warning事件,一般是由于通过指定的镜像启动容器后,容器内部没有常驻进程,导致容器启动成功后即退出,从而进行了持续的重启。
解决办法:
如果是通过yaml文件创建的pod,找到对应的deployment,增加命令command: ["/bin/bash", "-ce", "tail -f /dev/null"]
apiVersion: apps/v1 kind: Deployment metadata: namespace: test name: pipeline labels: app: pipeline spec: replicas: 2 selector: matchLabels: app: pipeline template: metadata: labels: app: pipeline spec: containers: - name: pipeline image: 192.168.2.211:80/repo/pipeline:v3.0.0 # 在harbor仓库中复制一个镜像取得 command: ["/bin/bash", "-ce", "tail -f /dev/null"] imagePullPolicy: Always ports: - containerPort: 8080
修改完yaml文件再次执行,就好了。