Исправление развертывания контроллера nginx на мини-кубе приводит к откату к предыдущей конфигурации - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь исправить входной контроллер nginx, следующий за мини-кубом vm.

Исправление ошибок выполнено с помощью этой команды:

$ kubectl patch deployment nginx-ingress-controller --type 'json' --namespace kube-system -p '[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--profiling"}]'

#-> deployment.extensions/nginx-ingress-controller patched

После исправления предыдущее состояние откатывается автоматически. Я вижу, что конфигурация сохраняется, если я проверяю сразу после развертывания (как показано ниже)

$ kubectl describe deployment/nginx-ingress-controller --namespace kube-system
#--- snip
    Args:
      /nginx-ingress-controller
      --default-backend-service=$(POD_NAMESPACE)/default-http-backend
      --configmap=$(POD_NAMESPACE)/nginx-load-balancer-conf
      --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
      --udp-services-configmap=$(POD_NAMESPACE)/udp-services
      --annotations-prefix=nginx.ingress.kubernetes.io
      --report-node-internal-ip-address
      --profiling

#---

После отката конфигурация сбрасывается:

$ kubectl describe deployment/nginx-ingress-controller --namespace kube-system
#--- snip
    Args:
      /nginx-ingress-controller
      --default-backend-service=$(POD_NAMESPACE)/default-http-backend
      --configmap=$(POD_NAMESPACE)/nginx-load-balancer-conf
      --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
      --udp-services-configmap=$(POD_NAMESPACE)/udp-services
      --annotations-prefix=nginx.ingress.kubernetes.io
      --report-node-internal-ip-address

#---

Я не вижу ошибок в журналах, которые должны вызвать откат. Единственное, что я вижу перед откатом, - это развертывание, инициирующее завершение работы модулей, из-за изменения конфигурации.

1 Ответ

1 голос
/ 22 марта 2019

Из-за того, что мини-куб работает только с 1 узлом, и вход с использованием hostPort, скользящие обновления не будут работать для входного развертывания.

После исправления входного файла для использования воссоздания, исправление входного конфига работает как положено.

Команда для установки входного контроллера на «воссоздание»:

kubectl patch deployment nginx-ingress-controller --type 'json' --namespace kube-system -p '[{"op": "replace", "path": "/spec/strategy/type", "value": "Recreate"}, {"op": "replace", "path": "/spec/strategy/rollingUpdate", "value": null }]'

Команда для установки регистрации отладочного вывода на nginx-ingress-controller:

kubectl patch deployment nginx-ingress-controller --type 'json' --namespace kube-system -p '[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "-v=5"}]'

Входной контроллер теперь имеет выходные данные журнала отладки и настроен на воссоздание при изменении конфигурации или образа.

...