Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >k8s-nginx二进制报Illegal instruction (core dumped)

k8s-nginx二进制报Illegal instruction (core dumped)

作者头像
yaohong
发布于 2021-06-24 01:56:31
发布于 2021-06-24 01:56:31
1K00
代码可运行
举报
文章被收录于专栏:姚红专栏姚红专栏
运行总次数:0
代码可运行

1.环境

系统:CentOS 7.3

内核:x86

环境:虚拟机

2.问题

收到一个现场问题,k8s环境中nginx的pod都启动异常。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#kubectl get pod |grep nginx
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nginx-7945cf468c-z7z9r            0/1     Running     0          10m17m

看pod日志无任何有效信息,于是进入nginx的pod,执行nginx二进制,报错Illegal instruction (core dumped)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
~# kubectl exec -ti nginx-7945cf468c-z7z9r bash
bash-4.4# /usr/local/openresty/nginx/sbin/nginx -h
Illegal instruction (core dumped)

3.猜想及答案

针对上述问题于是产生如下猜想:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.镜像损坏

2.系统安装了安全软件

3.系统做过内核或参数升级

判断问题1:镜像损坏,于是找到nginx pod编译前的nginx base镜像,直接docker run启动后执行nginx二进制,问题相同; 判断问题2:根据一番了解,现场环境之前装过三合一,和瑞星杀毒,但都已经关闭,没有相关进程; 判断问题3:了解到现场环境未做内核升级及修改系统参数。

在一番思考和查到后得到下面这句话:

于是用如下命令查了一下cpu指令集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#grep -q sse4_2 /proc/cpuinfo && echo “SSE 4.2 supported” || echo “SSE 4.2 not supported”
SSE 4.2 not supportedj

竟然CPU不支持SSE 4.2指令集。查看正常运行的环境是支持的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# grep -q sse4_2 /proc/cpuinfo && echo “SSE 4.2 supported” || echo “SSE 4.2 not supported”
“SSE 4.2 supported”

于是咨询现场是否迁移过虚拟机,果然迁移过。

于是再找到支持SSE 4.2指令集的物理机进行迁移后,环境恢复,nginx正常启动,问题得到解决。

参考文档:https://github.com/openresty/docker-openresty/issues/49

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
k8s实践(十四):Pod驱逐迁移和Node节点维护
emptyDir详见:存储卷和数据持久化(Volumes and Persistent Storage)
loong576
2019/12/11
11K0
k8s实践(十四):Pod驱逐迁移和Node节点维护
搭建k8s高可用集群 - 二进制方式
这五台机器均需事先安装好Docker,由于安装过程比较简单这里不进行介绍,可以参考官方文档:
端碗吹水
2020/09/23
2K1
搭建k8s高可用集群 - 二进制方式
人生苦短,我用k8s--------------k8s集群二进制部署
下面拓扑图还有一个harbor仓库没有说明,到时候部署在单独的一台服务器上即可
不吃小白菜
2020/10/09
4720
二进制安装k8s集群(1)-开篇
本篇文章是一个系列,介绍如何用binary的方式手动安装k8s集群,目的是来更好的理解学习k8s。以学习和理解为目的,所以这里的每个组件都是一步一步手动来安装,以便有实践和理解。对于生产环境,如果host在自己的data center里,那么请专业的infrastructure架构师和devops团队来搭建生产级别的集群。如果是在公有云(AWS/GCP/Azure/阿里云/腾讯云)上搭建生产环境,请仔细阅读相关文档,不清楚的问题及时提交工单。
TA码字
2020/04/01
1.1K0
k8s二进制集群安装-二进制安装
可以在http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/ 找到各版本kernel安装包
堕落飞鸟
2022/02/25
1.9K2
K8S二进制部署过程-v1.17.0
到 https://github.com/coreos/etcd/releases 页面下载最新版本的发布包:
cuijianzhe
2022/06/14
7440
K8S二进制部署过程-v1.17.0
K8s二进制升级从1.14.2至1.16.2
升级前准备 master节点组件: kubectl,kube-apiserver,kube-controller-manager,kube-scheduler
院长技术
2020/06/11
1K0
二进制安装k8s集群(17)-安装kubectl-debug
在上一篇文章里我们主要介绍安装k8s集群内的基础服务nginx-ingress-controller,这里我们介绍一下k8s的pod调试工具。在k8s的容器环境中,去排查问题是避免不了的,这就需要在pod里有各种工具,例如top,ps,pidstat,vmstat,nslookup,netstat,tcpdump,dig,traceroute等。可是有些pod里就没有这些工具(当然从制作image的角度来说确实是不应该把和应用自身无关的tools放到image里),这无疑给我们调试排查问题带来巨大的困难。kubectl-debug就是为了解决这个问题的,它不是k8s官方工具,是个人项目,但是用起来却比较方便,这里我们用0.1.1本版。kubectl-debug具体原理不在这里详细展开,有兴趣的同学可以到github的项目里看一下(https://github.com/aylei/kubectl-debug)。
TA码字
2020/04/01
8610
二进制安装k8s集群(17)-安装kubectl-debug
003.Kubernetes二进制部署准备
其他更多前置准备见:https://kubernetes.io/zh/docs/setup/independent/install-kubeadm/
木二
2019/11/15
5330
k8s实践(八):ConfigMap and Secret
  在实际的应用部署中, 经常需要为各种应用/中间件配置各种参数, 如数据库地址、 用户名、 密码等, 而且大多数生产环境中的应用程序配置较为复杂, 可能是多个 Config 文件、 命令行参数和环境变量的组合。 要完成这样的任务有很多种方案, 比如:
loong576
2019/09/18
1.9K0
k8s实践(八):ConfigMap and Secret
关于 KVM 虚拟化的二三事整理
在 KVM 虚拟化中,大家对 CPU mode 的关注相对较少,多采用默认值。其实,CPU mode 的选取对 VM 的影响却很大,如果考虑不周,可能会导致稳定性差,维护成本高,影响业务等一系列问题。本文从性能,热迁移,稳定性,应用移植四个角度对 CPU mode 进行分析。
高楼Zee
2020/12/29
4.4K0
关于 KVM 虚拟化的二三事整理
二进制安装k8s v1.25.4 IPv4/IPv6双栈
https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了
小陈运维
2022/12/20
9550
全网最详细 二进制 k8s v1.25.x文档
若不要IPv6 ,不给网卡配置IPv6即可,不要对IPv6相关配置删除或操作,否则会出问题。
小陈运维
2022/12/20
1.8K0
k8s配置管理
https://kubernetes.io/zh-cn/docs/concepts/configuration/configmap/
张哥编程
2024/12/07
840
k8s配置管理
社区实践|基于Kube-OVN多租户虚拟机+容器隔离
随Kubernetes的普及,容器环境对于大多数业务已经足够,但某些特殊业务涉及对内核的修改,还需要运行在虚拟机里,K8s将容器和虚拟机统一管理是将来的趋势。
灵雀云
2024/05/14
4770
社区实践|基于Kube-OVN多租户虚拟机+容器隔离
二进制安装k8s集群(16)-安装nginx-ingress-controller
在上一篇文章里我们主要介绍安装k8s集群内的基础服务kube-dashboard,这里我们继续介绍安装k8s集群内基础服务nginx-ingress,这个基础服务也创建在kube-system namesapce里,是以deployment的方式运行。当然 daemonset也是可以的,这里没有硬性要求。image镜像从我们的private repo pull(以前文章里介绍过harbor private repo的创建,以及镜像的push和pull)。当然原始image来源于官方的quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.25.1,不过要下载它需要科学上网或者搭个梯子。另外对于ingress方案,一般有nginx-ingress,traefik ingress(traefik2.0也已经问世了,都是可以选择的),haproxy ingress等,实际情况用哪种请根据团队和实际的需求来选择。
TA码字
2020/04/01
1.3K0
二进制安装k8s集群(16)-安装nginx-ingress-controller
【云原生 | Kubernetes篇】深入Kubernetes(k8s)概念(四)
可以使用 kubectl 命令行创建对象,也可以编写 .yaml 格式的文件进行创建
Lansonli
2022/06/07
1.3K0
【云原生 | Kubernetes篇】深入Kubernetes(k8s)概念(四)
K8S学习笔记之二进制部署Kubernetes v1.13.4 高可用集群
本次采用二进制文件方式部署,本文过程写成了更详细更多可选方案的ansible部署方案 https://github.com/zhangguanzhang/Kubernetes-ansible 和之前的步骤差不多都是和kubeadm步骤一样,不过这次所有kubelet全部走bootstrap不会像之前master上的kubelet生成证书,另外证书换成openssl生成
Jetpropelledsnake21
2019/04/01
2K0
K8S学习笔记之二进制部署Kubernetes v1.13.4 高可用集群
k8s 二进制集群平滑升级 1.15.2升级至1.16.4
我们到 github 上面下载需要的二进制安装包 https://github.com/kubernetes/kubernetes/releases/tag/v1.16.14
张琳兮
2020/09/23
1.2K0
二进制安装Kubernetes(k8s) v1.27.3 IPv4/IPv6双栈 可脱离互联网
https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了
小陈运维
2023/08/18
2K0
二进制安装Kubernetes(k8s) v1.27.3 IPv4/IPv6双栈 可脱离互联网
相关推荐
k8s实践(十四):Pod驱逐迁移和Node节点维护
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验