k8s启动nginx容器错误CrashLoopBackOff

这里主要是因为是自己做的一个的一个nginx镜像(这里就不重复了)

~]# kubectl apply -f mynginx.yaml 
daemonset.apps/mynginx created

CrashLoopBackoff

~]# kubectl get pods -o wide
NAME            READY   STATUS             RESTARTS      AGE     IP            NODE              NOMINATED NODE   READINESS GATES
mynginx-2qcvt   0/1     CrashLoopBackOff   5 (94s ago)   4m24s   10.244.1.24   vm-0-114-centos   <none>           <none>
mynginx-drpq9   0/1     CrashLoopBackOff   5 (85s ago)   4m24s   10.244.2.32   vm-0-142-centos   <none>           <none>
# 查看报错
~]# kubectl describe pods -n default mynginx-2qcvt 

.......

Warning  BackOff    38s (x9 over 2m21s)  kubelet            Back-off restarting failed container

~]# kubectl logs -n default mynginx-2qcvt

# 此时发现没有有用的报错
# 随便找一台节点的容器是否启动,

~]# docker ps -a
CONTAINER ID   IMAGE                                            COMMAND                  CREATED              STATUS                          PORTS     NAMES
53d55b422a04   f276e0f4fb5b                                     "/bin/bash"              About a minute ago   Exited (0) About a minute ago             k8s_nginxcluster_mynginx-2qcvt_default_f1552f7b-85f2-42cb-9425-d5e4ae851075_6

# 这里发现是我的容器启动失败了,然后尝试手动启动
~]# docker start 53d55b422a04
~]# docker ps -a
CONTAINER ID   IMAGE                                            COMMAND                  CREATED              STATUS                          PORTS     NAMES
53d55b422a04   f276e0f4fb5b                                     "/bin/bash"              About a minute ago   Exited (0) About a minute ago             k8s_nginxcluster_mynginx-2qcvt_default_f1552f7b-85f2-42cb-9425-d5e4ae851075_6 
# 发现还是没起来,这里突然想到nginx的启动会杀死他爹的,也就是system上帝京进程,然后我的yaml文件没有写启动命令,也就是默认启动,自然是失败的,所以这里再yaml文件中修改一下

~]# vim mynginx.yaml
---
kind: DaemonSet
apiVersion: apps/v1
metadata:
   name: mynginx
spec:
   selector:
      matchLabels:
         myapp: nginx
   template:
      metadata:
        labels:
           myapp: nginx
      spec:
        containers:
        - name: nginxcluster
          image: 172.17.0.98:5000/myos:nginx2
          command: ["/data/nginx/sbin/nginx", "-g", "daemon off;"]   # 增加一个启动命令
          stdin: false
          tty: false
          ports:
          - protocol: TCP
            containerPort: 80
        restartPolicy: Always

~]# kubectl apply -f mynginx.yaml                             
daemonset.apps/mynginx configured

~]# kubectl get pods -o wide
NAME            READY   STATUS    RESTARTS   AGE   IP            NODE              NOMINATED NODE   READINESS GATES
mynginx-4qwl8   1/1     Running   0          3s    10.244.2.34   vm-0-142-centos   <none>           <none>
mynginx-tzs48   1/1     Running   0          3s    10.244.1.26   vm-0-114-centos   <none>           <none>

# 此时问题解决

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes (k8s) 是一个流行的容器编排和管理工具,它能够自动部署、扩展和管理容器化应用程序。在Kubernetes中,容器一般是通过服务发现的方式来进行通信,在这个过程中,域名解析是至关重要的一环。 容器中的应用程序通常会使用DNS进行域名解析来定位其他容器或外部服务。Nginx作为一个常用的容器化Web服务器,也需要通过DNS解析来将域名转换为IP地址,以便与其他容器或外部服务进行通信。 然而,有时候在Kubernetes集群中,容器的域名解析可能会出现不稳定性的问题。这可能导致Nginx无法解析需要的域名,使得容器间的网络通信出现故障或不可靠。 引起这种不稳定性的原因可能是多种多样的。首先,DNS解析问题可能与Kubernetes集群的配置有关。如果DNS服务配置不正确或不稳定,容器中的Nginx就无法准确地解析域名。 其次,网络问题也可能导致DNS解析不稳定。如果网络延迟高或者网络带宽不足,DNS解析可能会超时或失败,从而影响到Nginx的正常运行。 最后,应用程序本身的问题也可能导致DNS解析的不稳定性。如果应用程序没有正确地处理域名解析失败的情况,可能会导致Nginx无法正常工作。 要解决这个问题,我们可以采取以下措施: 1. 检查Kubernetes集群的DNS配置,确保DNS服务正常运行并配置正确。 2. 检查网络状况,确保网络延迟低、带宽充足,减少DNS解析超时的可能性。 3. 在应用程序中添加域名解析失败的错误处理机制,例如进行重试或回退到备用解析方案。 综上所述,k8s容器中的Nginx DNS解析不稳定的问题可能与Kubernetes集群的配置、网络问题或应用程序本身相关。通过检查和调整配置,优化网络状况以及合理处理解析失败,我们可以提高Nginx DNS解析的稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值