kubernetes configmap崩溃pod

时间:2018-04-30 18:45:50

标签: kubernetes kubectl minikube

我使用命令行kubectl创建configmap,如下所示

 kubectl create configmap nginx-config --from-file=./site.conf

在我的site.conf中,我有一个简单的nginx conf

server {
    listen       80;

    index index.php index.html;
    location / {
        try_files $uri $uri/ /index.php?$args;
        access_log off;
        expires max;
    }
}

在我的nginx-pod.yaml中我有正常的pod设置

apiVersion: v1
kind: Pod
metadata:
  name: www
  labels:
    app: nginx
spec:
  containers:
    - name: proxy
      image: nginx
      ports:
        - containerPort: 80
      volumeMounts:
        - mountPath: /etc/nginx/conf.d
          name: nginx-config
  volumes:
    - name: nginx-config
      configMap:
        name: nginx-config

当像这样启动pod时

kubectl create -f nginx-pod.yaml

我的吊舱是创建但是他的状态CrashLoopBackOff 2-3秒后但如果我删除了这一行

volumeMounts:
        - mountPath: /etc/nginx/conf.d
          name: nginx-config
  volumes:
    - name: nginx-config
      configMap:
        name: nginx-config

我没有问题

2 个答案:

答案 0 :(得分:1)

我最近遇到的问题是site.conf。当nginx加载她的conf时,你的pod正确加载你的配置图你的nginx崩溃结束你的pod崩溃。检查你的site.conf end add de default value like this

server {
    listen 80;
    listen [::]:80;

    root /var/www/html/quickstart/public;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name example.com www.example.com;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
}

答案 1 :(得分:0)

还有其他东西搞砸了你。我只是简单地复制了你的conf和yaml文件(除了用-n test-namespace运行它以进行分离)并且它完美无缺。

运行正常,跳转到pod,并且site.conf按照预期安装在/etc/nginx/conf.d文件夹中。 Baremetal k8s版本I使用的是1.9.2,配置方面这是正确的。

编辑:在Mac上也尝试使用minikube(客户端1.9.3服务器1.9.0),它也可以正常工作(甚至不是命名空间,完全按照你描述的步骤)。

你能看到处于失败状态的scheduler / api或pod的日志吗?也许它可以为防止它启动的内容提供更多的启示?您是否没有RBAC配置错误或跨命名空间的某些内容会阻止配置映射被读取?