Fluxcd ничего не применяет с err=running kubectl: ошибка: невозможно распознать \STDIN\:

Недавно я установил FluxCD 1.19.0 в кластере Azure AKS k8s с помощью fluxctl install. Мы используем частный git (самостоятельный битбакет), который Flux может получить и проверить.

Теперь Flux ничего не применяет с сообщением об ошибке:

ts=2020-06-10T09:07:42.7589883Z caller=loop.go:133 component=sync-loop event=refreshed url=ssh://[email protected]:7999/infra/k8s-gitops.git branch=master HEAD=7bb83d1753a814c510b1583da6867408a5f7e21b
ts=2020-06-10T09:09:00.631764Z caller=sync.go:73 component=daemon info="trying to sync git changes to the cluster" old=7bb83d1753a814c510b1583da6867408a5f7e21b new=7bb83d1753a814c510b1583da6867408a5f7e21b
ts=2020-06-10T09:09:01.6130559Z caller=sync.go:539 method=Sync cmd=apply args= count=3
ts=2020-06-10T09:09:20.2097034Z caller=sync.go:605 method=Sync cmd="kubectl apply -f -" took=18.5965923s err="running kubectl: error: unable to recognize \"STDIN\": an error on the server (\"\") has prevented the request from succeeding" output=
ts=2020-06-10T09:09:38.7432182Z caller=sync.go:605 method=Sync cmd="kubectl apply -f -" took=18.5334244s err="running kubectl: error: unable to recognize \"STDIN\": an error on the server (\"\") has prevented the request from succeeding" output=
ts=2020-06-10T09:09:57.277918Z caller=sync.go:605 method=Sync cmd="kubectl apply -f -" took=18.5346491s err="running kubectl: error: unable to recognize \"STDIN\": an error on the server (\"\") has prevented the request from succeeding" output=
ts=2020-06-10T09:09:57.2779965Z caller=sync.go:167 component=daemon err="<cluster>:namespace/dev: running kubectl: error: unable to recognize \"STDIN\": an error on the server (\"\") has prevented the request from succeeding; <cluster>:namespace/prod: running kubectl: error: unable to recognize \"STDIN\": an error on the server (\"\") has prevented the request from succeeding; dev:service/hello-world: running kubectl: error: unable to recognize \"STDIN\": an error on the server (\"\") has prevented the request from succeeding"
ts=2020-06-10T09:09:57.2879489Z caller=images.go:17 component=sync-loop msg="polling for new images for automated workloads"
ts=2020-06-10T09:09:57.3002208Z caller=images.go:27 component=sync-loop msg="no automated workloads"

Насколько я понимаю, Flux передает определения ресурсов в kubectl, который затем их применяет?

То, как я интерпретирую ошибку, означает, что kubectl ничего не передается. Однако я открыл оболочку в контейнере и убедился, что Flux действительно что-то проверяет, что он и сделал.

Я попытался увеличить уровень детализации до 9, но он не вернул ничего, что я считал важным (подробные выходные данные http-запросов и ответов для Kubernetes API).

Так что же здесь происходит?


person Michael Niemand    schedule 11.06.2020    source источник
comment
есть ли у Flux разрешения на фактическое применение изменений к кластеру?   -  person 4c74356b41    schedule 11.06.2020
comment
тоже думал об этом. Версия, которую я установил, создает Clusterrole с * для глаголов и *.* для ресурсов, которые затем применяются к соответствующей учетной записи службы. Я не эксперт, но это выглядит достаточно?   -  person Michael Niemand    schedule 11.06.2020
comment
Вы уверены, что в репозитории git есть что применить?   -  person 4c74356b41    schedule 11.06.2020
comment
Да, конечно. Я скопировал yaml из другого проекта, который я уже развернул (это развертывание и служба с док-контейнером hello-world). Предполагается, что он будет развернут в пространстве имен, которое также настроено под флагом разрешенных пространств имен.   -  person Michael Niemand    schedule 11.06.2020
comment
они .yaml (не .yml)?   -  person 4c74356b41    schedule 11.06.2020
comment
да, hello-world.yaml в папке, которая была передана как --git-path для fluxd. Я только что заметил, что простая версия kubectl в контейнере Flux также выдает указанную ошибку. Я пытаюсь получить доступ к журналам kube-apiserver прямо сейчас (которых у меня сейчас нет). Спасибо за ваши постоянные усилия, я очень ценю это!!   -  person Michael Niemand    schedule 11.06.2020
comment
можете ли вы проверить с контейнером kubectl, работает ли kubectl? просто дайте ему ту же учетную запись службы   -  person 4c74356b41    schedule 11.06.2020
comment
@ 4c74356b41 Развернул задание, с той же учетной записью службы, с тем же пространством имен, с контейнером bitnami/kubectl, с запущенной версией kubectl, которая отлично работала для клиентских и серверных версий ...   -  person Michael Niemand    schedule 12.06.2020
comment
вот что интересно: версия kubectl с bitnami:latest вернула версии правильно, однако bitnami/kubectl:1.15.3 (у fluxcd 1.15.9) возвращает ту же ошибку, что и контейнер flux...   -  person Michael Niemand    schedule 12.06.2020
comment
какая у тебя версия акса? попробовать обновить это?*   -  person 4c74356b41    schedule 12.06.2020
comment
1.16.9 — это последняя непредварительная версия в Azure.   -  person Michael Niemand    schedule 12.06.2020


Ответы (1)


Проблема заключалась в версии kubectl, используемой в выпуске Flux 1.19, поэтому я исправил ее с помощью предварительной версии: https://hub.docker.com/r/fluxcd/flux-prerelease/tags

person Michael Niemand    schedule 15.06.2020