Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解决;“快速回退”;使用Kubernetes部署docker映像时出错_Kubernetes_Deployment_Server_Google Kubernetes Engine_Crashloopbackoff - Fatal编程技术网

解决;“快速回退”;使用Kubernetes部署docker映像时出错

解决;“快速回退”;使用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

实际上,我是按照手册来部署web应用程序教程的。我在本地目录下制作了docker文件和图像。我把图片上传到谷歌云平台容器注册处。成功将映像推送到注册表。然后我制作了kubernetes集群并尝试部署它。但容器出现错误“CrashLoopBackOff”

我删除了集群和播客几次,但没有任何改变。当容器刚刚启动时会显示错误消息

按照文档操作错误是“pods重复启动并崩溃”,解决方案是仔细查看日志

我搜索了其他用户的情况:如 ImagePullPolicy:always/restartPolicy:always 但是错误没有解决。。。

ps:根据pods日志..错误代码为0

pps:现在我尝试更改容器的yaml文件。
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 there
CrashLoopBackOff
表示容器中的代码正在崩溃。检查pod
kubectl日志pod/pod\u NAME\u HERE-n NAMESPACE\u HERE
。另外,更改ImagePullPolicy时出现的错误是,您需要删除pod并再次创建它