#kubernetes #kubernetes-ingress
#kubernetes #kubernetes-ingress
Вопрос:
После обновления входных путей с ‘/’ на ‘/ test’ новый путь не работает, и я все еще продолжаю перенаправляться на старый путь ‘/’. Есть идеи о том, как обновить контроллер nginx-ingress для обновленных входов?
Обновление: я получаю следующее в своих журналах ingress-controller
kubectl logs --tail=10 nginx-ingress-controller-6b5498d8dc-vsdpl
E0923 17:03:11.440951 9 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.5/tools/cache/reflector.go:125: Failed to list *v1.Service: services is forbidden: User "system:serviceaccount:default:nginx-ingress" cannot list resource "services" in API group "" at the cluster scope
E0923 17:03:25.947663 9 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.5/tools/cache/reflector.go:125: Failed to list *v1.Endpoints: endpoints is forbidden: User "system:serviceaccount:default:nginx-ingress" cannot list resource "endpoints" in API group "" at the cluster scope
E0923 17:03:35.337064 9 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.5/tools/cache/reflector.go:125: Failed to list *v1beta1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:default:nginx-ingress" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
E0923 17:03:39.800610 9 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.5/tools/cache/reflector.go:125: Failed to list *v1.Secret: secrets is forbidden: User "system:serviceaccount:default:nginx-ingress" cannot list resource "secrets" in API group "" at the cluster scope
E0923 17:03:45.983141 9 main.go:49] Error getting node 192.168.0.81: nodes "192.168.0.81" is forbidden: User "system:serviceaccount:default:nginx-ingress" cannot get resource "nodes" in API group "" at the cluster scope
E0923 17:03:57.179763 9 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.5/tools/cache/reflector.go:125: Failed to list *v1.ConfigMap: configmaps is forbidden: User "system:serviceaccount:default:nginx-ingress" cannot list resource "configmaps" in API group "" at the cluster scope
E0923 17:03:57.609798 9 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.5/tools/cache/reflector.go:125: Failed to list *v1.Endpoints: endpoints is forbidden: User "system:serviceaccount:default:nginx-ingress" cannot list resource "endpoints" in API group "" at the cluster scope
E0923 17:04:10.422852 9 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.5/tools/cache/reflector.go:125: Failed to list *v1.Service: services is forbidden: User "system:serviceaccount:default:nginx-ingress" cannot list resource "services" in API group "" at the cluster scope
E0923 17:04:20.552808 9 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.5/tools/cache/reflector.go:125: Failed to list *v1.Secret: secrets is forbidden: User "system:serviceaccount:default:nginx-ingress" cannot list resource "secrets" in API group "" at the cluster scope
E0923 17:04:24.767965 9 reflector.go:178] pkg/mod/k8s.io/client-go@v0.18.5/tools/cache/reflector.go:125: Failed to list *v1beta1.Ingress: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:default:nginx-ingress" cannot list resource "ingresses" in API group "networking.k8s.io" at the cluster scope
Комментарии:
1. Проверьте
nginx.conf
файл в модуле nginx ingress controller2. @arghyasadhuth благодарю вас за ответ. В файле nginx.conf был старый путь ‘/’, поэтому я изменил его на ‘/ dev’, но все равно не работал. Может быть, мне нужно перезапустить контроллер nginx после обновления nginx.conf?
3. Вы обновили
nginx.conf
файл или входной ресурс? Вы обновили все реплики модуля nginx?4. @ArghyaSadhu сначала я обновил свой вход новыми путями. Но я все еще перенаправлялся на старый путь. Итак, затем я проверил nginx.conf, и у него все еще были старые пути, поэтому я также обновил nginx.conf. Существует только одна копия модуля nginx
5. AFAIK nginx может обнаруживать обновления в nginx.conf без перезапуска. Вы проверяли журналы модуля контроллера входа nginx?
Ответ №1:
Похоже, что учетная запись службы, используемая контроллером входа nginx, не имеет разрешения. используйте следующее clusterrolebinding
kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --serviceaccount=default:nginx-ingress
Просто обратите внимание, что это, по сути, дает привилегии администратора кластера для этой учетной записи службы и может быть сделано более детализированным.
Комментарии:
1. Да, теперь в журналах я видел, что он обновился. Но теперь /static работает, но /test выдает, что запрошенный ресурс не найден на этом сервере.
2. Я бы предложил задать новый вопрос для этого с помощью ingress yamls и журналов из модулей nginx ingress controller
3. Это сработало, когда контроллер входа перезагрузился после определения привязки кластерной роли. Большое спасибо!