Kubernetes configmap аварийный модуль - PullRequest
0 голосов
/ 30 апреля 2018

Я создаю configmap с помощью командной строки kubectl следующим образом:

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

В моем site.conf у меня есть простой конфиг nginx:

server {
    listen       80;

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

В моем nginx-pod.yaml у меня нормальная настройка модуля:

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

При запуске стручка вот так:

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 голосов
/ 01 мая 2018

У меня недавно возникла проблема, кажется, проблема была site.conf. Ваш модуль загружает ваш configmap правильно, когда nginx загружает ее, ваш сбой nginx завершает сбой вашего модуля. Проверьте ваш site.conf end add de default значение как это

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;
    }
}
0 голосов
/ 01 мая 2018

Что-то еще мешает тебе. Я буквально скопировал ваш файл conf и yaml (кроме запуска его с -n test-namespace для разделения), и он работал безупречно.

Работает нормально, перешел на pod, и site.conf успешно смонтирован в папке /etc/nginx/conf.d, как и предполагалось. Я использую версию Baremetal K8S 1.9.2, и конфигурация правильная.

Редактировать: только что попробовал это с minikube на Mac (клиент 1.9.3 сервер 1.9.0), и он также просто работает (даже не пространства имен, точно ваши шаги, описанные).

Можете ли вы просмотреть журналы для планировщика / API или модуля в неисправном состоянии? Может быть, это может пролить больше света на то, что мешает ему начать? У вас нет неправильно настроенного RBAC или чего-то другого в пространствах имен, которое могло бы помешать чтению карты конфигурации?

...