1今天发现我的pod 建后:状态是 CrashLoopBackOff
[root@test3 ~]# oc get pod
NAME READY STATUS RESTARTS AGE
mysql01-1-qs0n7 0/1 CrashLoopBackOff 9 31m
2: 查看一些pod 的状态:
[root@test3 ~]# oc describe pod mysql01-1-qs0n7
21m 1s 96 {kubelet test3} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "mysql01" with CrashLoopBackOff: "Back-off 5m0s restarting failed container=mysql01 pod=mysql01-1-qs0n7_shp(0a37825a-2624-11ea-b48a-525400e21bea)"
27m 1s 123 {kubelet test3} spec.containers{mysql01} Warning BackOff Back-off restarting failed docker container
3: 登入到openshift 的console 上面看event log, 发现报错: back-off fafiled:

我看了一些, image 都push 成功啦阿,container 也是create 成功啦,为什么会back-off failed 呢。下面看一些log:
4: 发现原来是参数没有设全:
[root@test3 ~]# oc log mysql01-1-qs0n7
W1224 03:19:22.089457 22103 cmd.go:357] log is DEPRECATED and will be removed in a future version. Use logs instead.
=> sourcing 20-validate-variables.sh ...
You must either specify the following environment variables:
MYSQL_USER (regex: '^[a-zA-Z0-9_]+$')
MYSQL_PASSWORD (regex: '^[a-zA-Z0-9_~!@#$%^&*()-=<>,.?;:|]+$')
MYSQL_DATABASE (regex: '^[a-zA-Z0-9_]+$')
Or the following environment variable:
MYSQL_ROOT_PASSWORD (regex: '^[a-zA-Z0-9_~!@#$%^&*()-=<>,.?;:|]+$')
Or both.
5: 下面进行增加参数:

进入deployment 页面里面,进入这个deployment: mysql01, 然后点右上角的action --> edit, 出现如下界面:

增加上面的"Environment Variables" 添加:MYSQL_USER , MYSQL_PASSWORD, MYSQL_DATABASE, 然后保存。就可以看到pod 运行正常啦。
本文详细记录了在OpenShift中遇到Pod状态显示为CrashLoopBackOff的问题及解决过程。通过检查Pod日志,发现是因为环境变量未正确设置导致容器启动失败。最终通过在Deployment中添加必要的环境变量,如MYSQL_USER、MYSQL_PASSWORD和MYSQL_DATABASE,成功解决了问题。
7105

被折叠的 条评论
为什么被折叠?



