解决;“快速回退”;使用Kubernetes部署docker映像时出错
实际上,我是按照手册来部署web应用程序教程的。我在本地目录下制作了docker文件和图像。我把图片上传到谷歌云平台容器注册处。成功将映像推送到注册表。然后我制作了kubernetes集群并尝试部署它。但容器出现错误“CrashLoopBackOff” 我删除了集群和播客几次,但没有任何改变。当容器刚刚启动时会显示错误消息 按照文档操作错误是“pods重复启动并崩溃”,解决方案是仔细查看日志 我搜索了其他用户的情况:如 ImagePullPolicy:always/restartPolicy:always 但是错误没有解决。。。 ps:根据pods日志..错误代码为0 pps:现在我尝试更改容器的yaml文件。解决;“快速回退”;使用Kubernetes部署docker映像时出错,kubernetes,deployment,server,google-kubernetes-engine,crashloopbackoff,Kubernetes,Deployment,Server,Google Kubernetes Engine,Crashloopbackoff,实际上,我是按照手册来部署web应用程序教程的。我在本地目录下制作了docker文件和图像。我把图片上传到谷歌云平台容器注册处。成功将映像推送到注册表。然后我制作了kubernetes集群并尝试部署它。但容器出现错误“CrashLoopBackOff” 我删除了集群和播客几次,但没有任何改变。当容器刚刚启动时会显示错误消息 按照文档操作错误是“pods重复启动并崩溃”,解决方案是仔细查看日志 我搜索了其他用户的情况:如 ImagePullPolicy:always/restartPolicy:a
imagePullPolicy if notpresent
至始终
。但是
Pod "nginx-1-99dcd4d9f-84szv" is invalid:
spec: Forbidden: pod updates may not change fields other than
`spec.containers[*].image`,
`spec.initContainers[*].image`,
`spec.activeDeadlineSeconds` or
`spec.tolerations` (only additions to existing tolerations)
core.PodSpec{
Volumes: []core.Volume{
{Name: "default-token-stk86", VolumeSource: core.VolumeSource{Secret: &core.SecretVolumeSource{SecretName: "default-token-stk86", DefaultMode: &420
}
}
}
}, InitContainers: nil, Containers: []core.Container{
{
TerminationMessagePath: "/dev/termination-log",
TerminationMessagePolicy: "File",
- ImagePullPolicy: "Always",
+ ImagePullPolicy: "IfNotPresent",
SecurityContext: nil,
Stdin: false,
},
}, EphemeralContainers: nil, RestartPolicy: "Always",
}
出现此错误消息
这是我的文件。安装测试“phptest.php”的设置和网页
为了允许phptest.php,我更改了默认文件和init.sh
FROM ubuntu
RUN apt-get update && apt-get upgrade -y && \
apt-get -y install \
nginx \
vim \
php-fpm
COPY srcs/default /
COPY srcs/phptest.php /
COPY srcs/init.sh /
EXPOSE 80
CMD bash init.sh
init.sh在这里
rm /etc/nginx/sites-available/default
mv default /etc/nginx/sites-available/
mv phptest.php /var/www/html
chown -R www-data /var/www/*
chmod -R 755 /var/www/*
service nginx start
service php7.4-fpm start
bash
我上传了新任务,因为帖子的问题不符合stackoverflow的指导原则Kubernetes容器在大多数情况下不能运行交互式Shell,但这就是容器中的主要流程。(图像的
CMD
运行init.sh
;这做了一些工作,包括启动一些助手进程,然后运行bash
;bash
没有在tty上运行,因此它会立即退出;因此容器也会退出;由于它的容器处于start和exit立即退出循环中,pod会进入CrashLoopBackOff国家。)
您应该重新设计此设置,以便有两个单独的部署,一个运行PHP应用程序,另一个运行Nginx反向代理。(和类似的两个匹配服务)每个都直接作为其映像的
CMD
(不要尝试使用服务
)运行这些进程。在将其转换回Kubernetes环境之前,您应该能够使用Docker Compose或其他更轻的工具测试类似的设置。Hi thereCrashLoopBackOff
表示容器中的代码正在崩溃。检查podkubectl日志pod/pod\u NAME\u HERE-n NAMESPACE\u HERE
。另外,更改ImagePullPolicy时出现的错误是,您需要删除pod并再次创建它